Makro, alle Excel-Dateien eines Ordners öffnen, stoppt
#1
Guten Morgen zusammen,

ich habe vor ein paar Wochen die Dateien einer externen Festplatte versehentlich formatiert. Bei der Rekonstruktion der Excel -Dateien wurden über 1400 Dateien als undefinert abgespeichert.
Ich habe gestern Abend angefangen alle Excel-Dateien zu öffnen und überprüfen. Das ganze Öffnen gestaltet sich sehr mühsam, wenn ich alle Dateien Offen haben würde, dann könnte ich die Dateien, die ich brauche besser selektieren und mit einem Namen speichern.

Ich habe gegoogelt und folgendes Makro gefunden. Das Problem ist ,dass das Makro an der Stelle " Workbooks.Open Filename:=FILE_PATH & MyFile" stoppt. Ich möchte ,dass das Makro nur die Dateien öffnet und ich werde selbst entscheiden, welche Datei ich speichern werde. Ich möchte die gespeicherten Dateien in dem gleichen Ordner speichern, damit ich weiß, welche ich löschen muss.

Die undefinierten Excel-Dateien haben als Name immer irgendwelche Nummern "0183607", "0183497". Der Pfad in dem Makro ist mein eigener Pfad.

Warum stoppt das Makro an der Stelle "Workbooks.Open Filename:=FILE_PATH & MyFile"? Wie kann ich es umgehen? Bedanke mich im Voruas für die Rückmeldungen.


Sub OpenFiles()
    Const FILE_PATH As String = "E:\xlsx\"
    Dim MyFile As String
   
    MyFile = Dir$(FILE_PATH & "*.xlsx")
   
    Do Until MyFile = ""
        Workbooks.Open Filename:=FILE_PATH & MyFile
        MyFile = Dir$
    Loop
End Sub


Ich habe ein zweites Makro zum gleichen gefunden(siehe unten), aber das Makro stoppt an der Stelle "Workbooks.Open Filename:=pfad & Dateiname" . Verstehe nicht warum 20



Sub GetData()
Dim pfad As String, Dateiname As String, iRow As Long
Application.ScreenUpdating = False
pfad = "E:\xlsx\"
Dateiname = Dir(pfad & "*.xlsx")
Do While Dateiname <> ""
Workbooks.Open Filename:=pfad & Dateiname
Dateiname = Dir()
Loop
End Sub


Ich habe noch ein Makro probiert .Er stoppt auch an der gleichen Stelle " Set wb = Workbooks.Open(Filename:=myPath & myFile)".
Antworten Top
#2
Hallo

unerklärliches Excel Verhalten.   Weiss einer der Kollegen warum hier die If then Auswertung versagt???

@Hallo Kollegen    Ich wollte dem Frager das Makro verbessern, aber zu meiner grossen Verblüffung funktioniert es nicht!
Probiert es bitte mal bei euch aus, und sagt mir bitte was an der If Then Auswertung falsch sein soll??  Übersehe ich da etwas??

Mein Ziel war es per MsgBox Abfrage zu entscheiden ob man die geöffnete Datei Speichern oder Schliessen will.  Das Schliessen wird trotz "Nein" übersprungen. Es erfolgt IMMER eine xlDialog Abfrage "Datei speichern unter ..."   Was verursacht bitte den Effekt das Excel das VBA Nein ignoriert?

@Frager   Das öffnen von Excel Dateien erfolgte bei mir einwandfrei, aber nur wenn die Datei vom Format her auch als Excel Datei erkannt wird!  Ich weiss das Excel Dateien beim Absturz von Excel schon mal als Document gespeichert werden.  Ob die noch mit Excel zu öffnen sind muss man mal testen.  Wäre gut zu wissen, bevor wir an dem Thread weitermachen.

mfg  Gast 123


Code:
Sub OpenFiles()
Dim ok As Variant

    'Const FILE_PATH As String = "E:\xlsx\"
    Const FILE_PATH As String = "D:\_Excel Heute\"
    Const Pfad = "D:\Excel Rettung"    'Hier dein Pfad zum retten
    Dim MyFile As String
  
    MyFile = Dir$(FILE_PATH & "*.*")
  
    Do Until MyFile = ""
        Workbooks.Open Filename:=FILE_PATH & MyFile
        ok = MsgBox("Diese Datei speichern unter ...", vbYesNoCancel)
        If ok = vbCancel Then Exit Sub
       
        If ok = vbNo Or ok = 7 Then
            ActiveWorkbook.Close savechanges = False
        ElseIf ok = vbYes Or ok = 6 Then
            ActiveWorkbook.SaveAs Filename:=Application.GetSaveAsFilename(Pfad & ok)
        End If
       
        MyFile = Dir$
    Loop
End Sub

Ich habe bei mir die Dateiendung auf alle Dateien gesetzt!  Und man sollte noch eine On Error Funktion einbauen für völlig defekte Dateien! (Laufzeitfehler)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Tommiks
Antworten Top
#3
Hi,


Code:
ActiveWorkbook.Close savechanges = False


Muss heißen:

Code:
ActiveWorkbook.Close savechanges:= False

[Edit]: Mit Option Explicit wäre das im Übrigen sofort aufgefallen Wink
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • Tommiks
Antworten Top
#4
@Gast 123,


bedanke mich für die Unterstützung.

Ich konnte den Fehler finden. Einige der Dateien wurden defekt rekonstruiert. Der Fehler führten zum gleichen Fehler an deinem Makro auch. Ich habe es anschließend mit den Dateien probiert, die ich vorher umbenannt hatte,dann lief das Makro. Nochmals vielen Dank... 


Beste Grüße
Antworten Top
#5
Hallo Boris

Danke das der Fehler geklärt ist.  Ein dummer Schreibfehler, durch nicht durch Laufzeitfehler enttarnt wurde!  Danke, wieder was dazu gelernt.
Kennst du übrigens den Effekt, wenn man Stundenlang den eigenen Fehler übersieht, und ein Kollege sagt nach einem Blick:  "Da ist er doch !"

mfg  Gast 123
Antworten Top
#6
Hi,

Zitat:Kennst du übrigens den Effekt, wenn man Stundenlang den eigenen Fehler übersieht, und ein Kollege sagt nach einem Blick:  "Da ist er doch !"


Klar - wer kennt das nicht Wink
Antworten Top


Gehe zu:


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