Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro soll auch ."xlsm" und ".xlsx" Dateien öffnen
#1
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
Mit freundlichen Grüßen
Alooha
Antworten Top
#2
Hi
Schon mal xls* probiert ?
Igel
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#3
Hallo,
Danke für den Tipp.
Das ändert leider nichts am Problem.
MfG
Alooha
Antworten Top
#4
Dieser Code bedeutet


Code:
strPattern = "\s+[A-Z]+.xls$"


das am Ende einer Zeile (das $) ".xls" steht.

Versuche:


Code:
strPattern = "\s+[A-Z]+xls.$"


Der Punk vor $ bedeutet "jedes Zeichen".

Der "Replace"-Befehl muss auch noch geändert werden.
Antworten Top
#5
Hallo,
du meinst das:

Code:
simpleCellRegex = Trim(Replace(Replace(strInput, Zwischen, ""), ".xls", ""))
?
Was bedeuten eigentlich die Gänsefüsschen hinter dem xls?

Muß ich es so ändern:

Code:
simpleCellRegex = Trim(Replace(Replace(strInput, Zwischen, ""), "+xls.$", ""))
?  oder die Gänsefüßchen weg?

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
Antworten Top
#6
Hallo Alloha

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.

mfg  Gast 123


Angehängte Dateien
.xlsm   WB with macros F-5.xlsm (Größe: 23,84 KB / Downloads: 2)
Antworten Top
#7
Big Grin 
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.

Mit freundlichen Grüßen
Alooha


Angehängte Dateien
.xlsx   Monatliche Blätter.xlsx (Größe: 19,05 KB / Downloads: 2)
.xlsx   Jährliche Blätter.xlsx (Größe: 73,32 KB / Downloads: 2)
Antworten Top
#8
Hallo

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
     
    WbSht.Range("F5:AC66").Copy
    .Cells(lz, 2).PasteSpecial xlPasteValues
     Application.CutCopyMode = False

  'Was soll in Spalte A kopiert werden ??
  'in Monatliche Blaetter gibt es A + B !!
End With
End Sub
Antworten Top
#9
Hallo,

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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste