ich habe ein kleines Problem mit einer Excel-Datei.
Und zwar wie folgt:
Ich möchte das der VBA-Code prüft ob die Zellen in der Spalte D leer sind, wenn dies nicht der Fall ist, soll er diese Daten kopieren und über eine OpenFileDialog-Anfrage in eine weitere Excel-Datei kopieren. Ich muss leider mit Variablen arbeiten, da die Zieldatei unterschiedlich sein kann. Das Tabellenblatt dagegen hat immer den selben Namen.
Als Fehler kommt derzeit in der Zeile Windows(Datei.Name).Activate immer das ein Objekt fehlt. Wenn ich jedoch den Test zum Datei.Name mache mit einer Msg.Box bekomme ich immer den richtigen Namen ausgegeben.
Anbei mal der Code dazu, den ich derzeit zusammengebastelt habe.
Ich würde mich freuen wenn mir jemand helfen kann :)
Sub OeffneDatei()
Dim varDatei As Variant
Dim Datei
Dim str, strPfad, str2 As String
Dim i As Integer
strPfad = ThisWorkbook.Name
varDatei = Application.GetOpenFilename()
If varDatei = False Then
MsgBox "Der Benutzer hat abgebrochen.", vbInformation
Else
Set Datei = GetObject(varDatei)
Workbooks.Open varDatei
Windows(Datei.Name).Activate
Sheets("Projektliste").Select
Sheets("Projektliste").Unprotect
Windows(strPfad).Activate
For i = 1 To 50
If Not Sheets("Übertrag").Cells(i, 4) = "" Then
Sheets("Übertrag").Cells(i, 4).Copy
Windows(Datei.Name).Activate
Sheets("Projektliste").Cells(i + 5, 1).PasteSpecial xlPasteValues
Windows(strPfad).Activate
End If
Next i
End If
Windows(Datei.Name).Activate
Sheets("Projektliste").Protect
Workbooks(Datei.Name).Close savechanges = yes
End Sub