[VBA] Alle Dateien öffnen ausser sich selbst

Diskutiere und helfe bei [VBA] Alle Dateien öffnen ausser sich selbst im Bereich Microsoft Office im Windows Info bei einer Lösung; Guten Morgen. Ich habe ein Verzeichnis, in dem neben meiner Makro.xlsm weitere XLSM-Files liegen. Die Aufgabe meines Makros ist, in einer Schleife... Dieses Thema im Forum "Microsoft Office" wurde erstellt von Dura Cell, 12. Januar 2020.

  1. Dura Cell
    Dura Cell Gast

    [VBA] Alle Dateien öffnen ausser sich selbst


    Guten Morgen.


    Ich habe ein Verzeichnis, in dem neben meiner Makro.xlsm weitere XLSM-Files liegen. Die Aufgabe meines Makros ist, in einer Schleife alle XLSM-Files zu öffnen und etwas zu machen. Das einzige, was nicht funktioniert: Das Makro soll natürlich nicht auf sich selbst wirken. Der grundlegende Code sieht so aus.


    Sub Makro
    Dim wbkFormular As Workbook
    Dim strFormular As String


    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    strFormular = DirThisWorkbook.Path & "\*.xlsm"

    Do While LenstrFormular > 0
    Application.Calculation = xlCalculationManual
    Set wbkFormular = Workbooks.OpenThisWorkbook.Path & "\" & strFormular

    With wbkFormular.Worksheets"Entnahme"

    'Das soll im Formular abgearbeitet werden

    End With

    wbkFormular.Close SaveChanges:=False
    strFormular = Dir
    Loop

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    ThisWorkbook.Close SaveChanges:=True
    End Sub


    Um die Schleife nicht auf die Makrodatei selbst anzuwenden, war mein Ansatz, die DO WHILE-Schleife in eine IF THEN ELSE-Schleife zu setzen. Ich hätte da gedacht:


    If strFormular = ThisWorkbook.Name Then

    MsgBox "Das ist ThisWorkbook"

    '*** Gehe zum nächsten strFormular

    ElseIf strFormular <> ThisWorkbook.Name Then

    Do While LenstrFormular > 0

    ...


    Das würde im Grunde auch funktionieren. Nur fällt mir nichts ein, wie ich "'*** Gehe zum nächsten strFormular" formulieren soll. FOR NEXT scheint hier nicht zu funktionieren und Sprungmarken außer On Error GoTo [Sprungmarke] gibt es nicht. Hat jemand eine Idee?
     
  2. Dura Cell Win User

    [VBA] Alle Dateien öffnen ausser sich selbst

    Hallo Claus. Vielen Dank.

    Hat funktioniert. Wieso plötzlich jetzt, ist mir nicht klar. Das selbe hatte ich schon versucht. Aber egal. Das Makro stoppte zwar mit einem Fehler, als strFormular = ThisWorkbook war und zwar in der Zeile wbkFormular.Close SaveChanges:=False.
    Dies habe ich jetzt mit On Error GoTo abgefangen. Das würde soweit funktionieren, wenn bis dahin alle anderen Dateien abgearbeitet wurden. Ob meine XLSM immer die letzte im Verzeichnis ist, kann ich gerade nicht sagen. Erst wieder, wenn ich in der Arbeit bin.
    Werde das prüfen und beobachten und Bescheid geben.
  3. Dura Cell Win User

    [VBA] Alle Dateien öffnen ausser sich selbst

    Ein kleines Feedback für alle, die vielleicht davon profitieren.

    Nach ein paar Tagen und diversen Durchläufen: Funktioniert tadellos.
  4. Claus Busch Win User

    [VBA] Alle Dateien öffnen ausser sich selbst

    Hallo,

    du kannst nicht strFormular mit ThisWorkbook gleichsetzen. Das eine ist ein String, das andere ein Workbook-Objekt.

    Da diese Workbook schon geöffnet ist, fehlt ihm der Pfad. Du musst also nur nach dem Namen der Workbooks abfragen:

    If strFormular <> ThisWorkbook.Name

    und dann deine Aktionen durchführen.

    Außerdem gehört

    wbkFormular.Close SaveChanges:=False

    in diese IF-Abfrage, da eine Datei nicht geschlossen werden kann, wenn sie erst gar nicht geöffnet ist.

    Claus
  5. Claus Busch Win User

    [VBA] Alle Dateien öffnen ausser sich selbst

    Hallo,

    probiere es mal so:

    Sub Makro()
    
    Dim wbkFormular As Workbook
    
    Dim strFormular As StringWith Application
    
        .DisplayAlerts = False
    
        .ScreenUpdating = False
    
        .Calculation = xlCalculationManual
    
    End With
    
      
    
    strFormular = Dir(ThisWorkbook.Path & "\*.xlsm")
    
        Do While Len(strFormular) > 0
    
            If strFormular <> ThisWorkbook.Name Then
    
                Set wbkFormular = Workbooks.Open(strFormular)
    
                With wbkFormular.Worksheets("Entnahme")
    
                    'Das soll im Formular abgearbeitet werden
    
                End With
    
                wbkFormular.Close SaveChanges:=False
    
            End If
    
            strFormular = Dir
    
        Loop
    
        
    
    With Application
    
        .DisplayAlerts = True
    
        .ScreenUpdating = True
    
        .Calculation = xlCalculationAutomatic
    
    End With
    
    ThisWorkbook.Close SaveChanges:=True
    
    End Sub
    Claus
  6. Andreas Killer Win User

    Excel 2010 Projektexplorer

    Das Problem ist bekannt, wird immer wieder in unterschiedlichen Zusammenhängen und Symptomen geschildert, betrifft alle VBA-Versionen, ist nicht auf Excel begrenzt.

    Ursache unbekannt, vermutlich irgendeine nicht freigegebene Speicheradresse die den Memorymanager daran hindert das Projekt zu schließen.

    Abhilfe ist keine bekannt, außer die komplette Applikation zu schließen und wieder zu öffnen.

    EDIT: Das bedeutet aber nicht das auf meinem Rechner mit Deinen Excel-Dateien das gleiche passiert, wahrscheinlich ist es sogar das es hier nicht passiert, da ich dieses Phänomen sonst nicht habe.

    Andreas.
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

[VBA] Alle Dateien öffnen ausser sich selbst - Microsoft Office

Die Seite wird geladen...

[VBA] Alle Dateien öffnen ausser sich selbst - Similar Threads - VBA Dateien öffnen

Forum Datum

Erneutes Öffnen einer Datei mit Gruppierungen und Blattschutz VBA

Erneutes Öffnen einer Datei mit Gruppierungen und Blattschutz VBA: Hallo zusammen,im Internet gibt es viele Fragen zu dem Thema, aber keine Antwort auf mein spezielles Anliegen zumindest bin ich nicht fündig geworden.Folgende Ausgangssituation:Ich habe eine...
Microsoft Office 4. Juni 2022

VBA makro um datei zu öffnen und dortiges makro auszuführen

VBA makro um datei zu öffnen und dortiges makro auszuführen: hallo,ich versuche mit folgendem makro eine datei aufzumachen der pfad dazu wird im sheet "files" aus spalte A ab zeile 2 eingelesen, die dateinamen aus spalte C. die erste datei wird auch...
Microsoft Office 6. Mai 2021

VBA-Befehl - Datei öffnen

VBA-Befehl - Datei öffnen: Ich habe folgendes Problem: Per VBA soll der Dateipfad mit Dateiname nach Buttonklick eine Datei öffnen. Bei existierender paralleler TeamViewer-Verbindung oder Citrix-Verbindung jedoch bricht das...
Microsoft Office 5. Mai 2021

In Outlook in einem VBA Script eine Excel Datei öffnen und bearbeiten

In Outlook in einem VBA Script eine Excel Datei öffnen und bearbeiten: Hallo, nachdem mir leider die Doku nicht ganz eingängig ist bzw ich anscheinend an Google nicht die richtigen Suchbegriffe verfüttert habe, habe ich folgende Frage: Ist es möglich in Outlook...
Microsoft Office 4. März 2021

Verzeichnisse / Dateien öffnen und schliessen in VBA

Verzeichnisse / Dateien öffnen und schliessen in VBA: Hallo, ich benötige die Abfangungen für angelegte Ordner und Dateien. Ich stelle mir eine If then else Lösung vor. If Dir "MYDIR" "" then MkDir "MYDIR" else ….goto …. Ein Link wäre auch...
Microsoft Office 16. Dezember 2019

Dateien mit VBA öffnen

Dateien mit VBA öffnen: Hallo. Kleines Problem mit VBA. Mache gerade meine ersten Gehversuche mit VBA. Also verzeiht mir bitte etwaige "dumme" Fragen. Zur Aufgabenstellung: Ich habe ein Testverzeichnis mit drei Excel...
Microsoft Office 17. November 2019

Problem beim Öffnen einer Excel Datei mit VBA Programmierungen

Problem beim Öffnen einer Excel Datei mit VBA Programmierungen: Hallo an alle. Habe folgendes Problem. Beim öffnen einer Excel Datei erhalten ich folgende Fehlermeldung, siehe weiter unten... Vor ca. über einem Jahr konnte ich diese Excel Datei problemlos...
Microsoft Office 11. Februar 2018
[VBA] Alle Dateien öffnen ausser sich selbst solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.