Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Probleme mit Dateien

VBA Probleme mit Dateien
26.09.2024 17:31:49
Bernd
Hallo,
ich muss eine Tabelle wegen neuer Vorgaben umbauen.
Habe hier nun ein Problem mit den Dateien

Sub DateiOeffnen()

Dim strOrig As String, strJahr As String, strMonat As String
strJahr = Range("X4").Value 'Das Jahr
strMonat = Range("Y4").Text 'der Monat
strQuelle = ActiveWorkbook.Name 'Starttabelle
strOrig = Sheets(2).[n142].Value 'Originalname der Tabelle. Hier wird Jahr_Monat vorandestellt und als neue Tabelle abgespeichert
strZiel = strJahr & "_" & strMonat & "_" & strOrig 'hier setze ich den Namen der Zieltabelle zusammen
strPath = ThisWorkbook.Path & "\" & strZiel 'das ganze als kompletter Pfad
ActiveWorkbook.SaveCopyAs Filename:=strPath 'die neue Tabelle wird gespeichet und ist dann auch vorhanden
If WkbExists(strZiel) = False Then 'Prüfung ob Tabelle vorhanden
If Dir(strPath) = "" Then 'dieser ganze Tel wurde mir von euch mal vor langer Zeit gegeben
MsgBox "Datei " & strPath & " wurde nicht gefunden!"
Else
Workbooks.Open strPath '----- Nachdem alles durchlaufen wurde kommt hier eine Fehler!!!
End If
End If
Call Daten_kopieren
End Sub

Private Function WkbExists(strPath As String) As Boolean
Dim objWkb As Object
On Error Resume Next
Set objWkb = Workbooks(strPath)
If Not objWkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function


Nachdem mittels F8 alles ddurchlaufen ist meldet die Zeile

Workbooks.Open strPath

den Laufzeitfehler 1004, Die Datei kann nicht geöffnet werden da das Dateiformat oder die Dateierweiterung ungültig ist.
Überprüfen Sie ob die Datei beschädigt ist und ob die Dateierweiterung dem Dateiformat entspricht.


Beispieldatei:
https://www.herber.de/bbs/user/172435.xlsm
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Probleme mit Dateien
26.09.2024 17:51:47
peter
Hallo

Sheets(2) ist das Tabellenblatt Februar und in diesem gibt es keine Eintrag in N142. Die Datei wird somit ohne Endung (.xlsx) gespeichert.

Peter
AW: VBA Probleme mit Dateien
26.09.2024 18:11:48
Onur
Es wäre schön, wenn das das einzige Problem wäre...
AW: VBA Probleme mit Dateien
26.09.2024 18:08:04
Onur
Sorry - bei diesem Chaos-Code blicke ich nicht durch. Das meiste stammt sowieso vom Makrorecorder.
Was soll das Makro genau (Schritt für Schritt) machen ?

 If WkbExists(strZiel) = False Then 'Prüfung ob Tabelle vorhanden

WELCHE Tabelle denn? Etwa die, die du gerade eben gespeichert hast ???
Anzeige
AW: VBA Probleme mit Dateien
26.09.2024 18:37:25
Bernd
Sorry, beim verkleinern der Datei ist mir ein Fehler unterlaufen. Einfach vor den Januar noch eine leere Tabelle stellen und es ist von der Anordnung wieder richtig.
Sheet(2) ist dann wieder der Januar in dem die Angeben wie strOrig und strJahr stehen

Die Datei wird geöffnet und dann die Stunden eingetragen.
Es gibt eine "Austauschdatei" für den Arbeitgeber, zu der die eingetragenen Stunden übertragen und weggeschickt werden.
Die Austauschdatei hat am Anfang nur den Namen.xlsx (strOrig). Dieser muss dann beim Übertragen zum Arbeitgeber noch das Jahr und den Monat vorangestellt werden.

Also aus Name.xlsx wird dann, wenn das entsprechende Monats-Tabellenblatt geöffnet ist dann s.B. 2014_02_Name.xlsx für den Februar.

Ich habe bereits vieles automatisiert, damit die Kollegen ohne große PC-Erfahrung die Stundenzettel wegschicken können

Onur, verzeih bitte den schrecklichen Code. Bin schon eine weile drann und hätte ihn nach erfolgreicher Prüfung bereinigt.

Danke für eure Geduld
Gruß
Bernd


Anzeige
AW: VBA Probleme mit Dateien
26.09.2024 20:14:35
Bernd
Irgendwie stehe ich auf dem Schlauch. Bin die ganze Zeit am Versuchen.
Nun bin ich auf folgendem Weg.
Der Code öffnet bei Workbooks.Open den strPath
Kommentiere ich nun die 2 Zeilen darüber aus kommt bei Workbook.Open ein Fehler.
Wenn ich jeweil bei den beiden Varianten mit der Maus über strPath gehe sehe ich vom Aufbau des Pfades bis auf den anderen Dateinamen keinen Unterschied.



Sub DateiOeffnen()
strQuelle = ActiveWorkbook.Name
strZiel = Sheets(2).[N142].Value
strPath = ThisWorkbook.Path & "\" & strZiel
If WkbExists(strZiel) = False Then
If Dir(strPath) = "" Then
MsgBox "Datei " & strPath & " wurde nicht gefunden!"
Else
' strPath = ThisWorkbook.Path & "\" & Range("X4").Value & "_" & Range("Y4").Text & "_" & strZiel
' ActiveWorkbook.SaveCopyAs Filename:=strPath

Workbooks.Open strPath
End If
End If
Call Daten_kopieren
End Sub

Private Function WkbExists(strZiel As String) As Boolean
Dim objWkb As Object
On Error Resume Next
Set objWkb = Workbooks(strZiel)
If Not objWkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function
Anzeige
AW: VBA Probleme mit Dateien
26.09.2024 18:25:26
Yal
Moin,

schau ma mal:

Sub DateiOeffnen()

Dim Dateiname(1 To 3) As String
Dim strJahr As String
Dim strMonat As String
Dim strZiel As String
Dim wb As Workbook

Dateiname(1) = Range("X4").Value 'Das Jahr
Dateiname(2) = Range("Y4").Text 'der Monat
Dateiname(3) = Sheets(2).Range("N142").Value 'Originalname der Tabelle. Hier wird Jahr_Monat vorandestellt und als neue Tabelle abgespeichert
If Right(Dateiname(3), 5) > ".xlsx" Then Dateiname(3) = Dateiname(3) & ".xlsx" 'wenn keine Endung, nachtragen
strZiel = Join(Dateiname, "_") 'hier setze ich den Namen der Zieltabelle zusammen NEIN, nicht Zieltabelle, sondern Zieldatei

strPath = ThisWorkbook.Path & "\" & strZiel 'das ganze als kompletter Pfad
ActiveWorkbook.SaveCopyAs Filename:=strPath 'die neue Tabelle wird gespeichet und ist dann auch vorhanden
Set wb = Workbook_GetOrOpen(strPath)
If wb Is Nothing Then 'Prüfung ob Tabelle vorhanden
MsgBox "Datei " & strPath & " wurde nicht gefunden!"
Exit Sub
End If
Call Daten_kopieren '- hier müsste eingeben, von wo nach wo
End Sub

Private Function Workbook_GetOrOpen(strPath As String) As Workbook
Dim objWkb As Workbook

On Error Resume Next
Set objWkb = Workbooks(strPath)
If objWkb Is Nothing Then objWkb = Workbook.Open(strPath)
Set Workbook_GetOrOpen = objWkb
End Function


VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige