26.01.2018, 12:03 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2018, 12:04 von Alooha.)
Hallo, ein Makro das vor mehr als 10 Jahren geschrieben wurde, zur Zeit der ".xls" Endung, müsste auch Dateien mit den aktuellen Endungen öffnen. Da es zu komplex ist als dass ich es wirklich verstehen könnte, verstehe ich nicht, welche Aenderungen vorgenommen werden müssen. In dem Makro wird eine Funktion aufgerufen, in der die Endung ".xls" zweimal vorkommt. Ich habe schon mit ".xlsm" und ".xlsx" experimentiert, aber ohne Erfolg. Ist es in dieser Funktion wo das festgelegt wird? Ich finde sonst nirgendwo eine Stelle mit der Endung.
Code:
Function simpleCellRegex(quelle As String) As String Dim regEx As New RegExp Dim strPattern As String Dim strInput As String Dim strReplace As String Dim strOutput As String Dim Zwischen As String
strPattern = "\s+[A-Z]+.xls$"
If strPattern <> "" Then strInput = quelle strReplace = ""
With regEx .Global = True .MultiLine = True .IgnoreCase = False .Pattern = strPattern End With
If regEx.test(strInput) Then Zwischen = regEx.Replace(strInput, strReplace) simpleCellRegex = Trim(Replace(Replace(strInput, Zwischen, ""), ".xls", "")) Else simpleCellRegex = "" End If End If End Function
Diese Sache blockiert mich total; es hat funktioniert, tut es jetzt aber nicht mehr, d.h. die Dateien die geöffnet werden sollen werden es nicht (es geht darum, Daten aus monatlichen Blättern in jährlichen zu sammeln, weil man für verschiedene Berechnungen wissen muß wie es die ersten Tage vom nächsten Monat aussieht was die Arbeitszeiten anbelangt). MfG Alooha
der Code den du da mit dem Kollegen entwickelst ist mir einfach zu hoch. Dafür habe ich eina andere Idee, weiss aber nicht ob sie dir gefaellt. Alternative Lösung ist, den ganzen Sorurce Ordner mit allen Dateien aufzulisten, und durch ein "X" die Datei markieren die man danach Öffnen will. Anbei eine Beispieldatei mit umgeschriebenem Code.
28.01.2018, 09:45 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2018, 09:46 von Alooha.)
Hallo,
jeder Code der seine Aufgabe erfüllt gefällt mir!
Ein Wort zur Erklärung: Bei der anderen Aufgabe bei der du geholfen hast, ging es darum, den Inhalt von Blättern in identische (ausser die Formeln, die nicht die selben sind wie in den alten) rüberzukopieren. Dies ist die nächste Etappe: Kopieren der selben Daten von den monatlichen in jährliche Blätter, da es Berechnungen gibt, die sich nicht strikt auf einen Monat beschränken können; auf diese Weise hat man immer, mit einem Monat Verspätung, auch die Daten der ersten Tage des nächsten Monats zur Verfügung. Es müssen auch wieder für alle Personen für die es kein Blatt gibt, Blätter erstellt werden. Eine Besonderheit: in den monatlichen Blättern sind die Zellen, die die Daten enthalten, zwei zu zwei vertikal verbunden; diese Verbindung muß zuerst gelöst werden (unmerge), da die Zellen in den Zielblättern nicht verbunden sind.
im Prinzip sieht ein Code zum anhaengen der Daten aus monatlichen Blaetter in die Jahres Übersicht wie unten aus: Wie man die monatlichen Blaetter festlegen kann, z.B. die monatlichen Workbook Namen aus den Zellen der Sourceliste zu laden, wurde bereits beschrieben. Einen Code der das ganze automatisiert kannst du damit selbst zusammenbasteln. Viel Erfolg...
mfg Gast 123
Code:
Sub Moatlich_kopieren() Dim WbM As Workbook Dim WbSht As Worksheet Set WbM = Workbooks("Monatliche Blätter.xlsx") Set WbSht = WbM.Worksheets("Name des Blattes")
With ThisWorkbook.Worksheets("Modèle") lz = .Cells(Rows.Count, 2).End(xlUp).Row + 1
ich hatte vergessen, die Aera zu definieren, die kopiert werden muß: Nach dem Lösen der Verbindungen in dem monatlichen Blatt müssen die Daten dort sortiert werden, und dann die Zellen F5:AC36 der monatlichen Blätter in die Zellen ab B16:Y16 in die jährlichen kopiert werden. MfG Alooha