Guten Tag alle miteinander,
ich bin VBA-Anfänger und habe trotzdem ein (für mich) schwieriges Problem zu lösen.
Folgendes will ich mit Hilfe von VBA realisieren:
Ich habe zwei Excel-Dateien. Wenn jetzt in der einen Excel-Datei (Name: „alt“) in der Zelle G „Abgeschlossen“ steht, soll die ganze Zeile (Also die Spalten A bis G) kopiert und in eine andere Excel-Datei (Name: „neu“) übertragen werden, und zwar in die erste Zeile, die frei ist.
Jetzt kommt die Herausforderung: Dies soll automatisiert geschehen ohne das die Excel-Datei („neu“) geöffnet wird während der Prozedur.
Ich bin auf der Suche nach was verwertbaren in den unendlichen Weiten des Internets auf einen Code gestoßen, der mittels Verweisen den umgekehrten Fall realisiert, d.h. durch den Code greift eine Datei auf eine andere Datei zu und übernimmt bestimmte Zellen. Dies erfolgt ohne, dass die Datei, auf die zugegriffen wird, geöffnet werden muss. Ich glaube, die Verweise sind der einzige Lösungsweg um das obige Problem zu lösen.
Dies ist der besagte Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Sub test()
Dim strVerweis As String
Const strPfad = "C:\Users\Adem\Desktop\"
Const strDatei = "alt.xlsm"
Const strBlatt = "Tabelle1"
Const strZelle = "A3"
strVerweis = "'" & strPfad & "[" & strDatei & "]" & strBlatt & "'!" & strZelle
With Workbooks( "neu.xlsm" ).Worksheets( "Tabelle1" ).Cells(4, 4)
.Formula = "=IF(" & strVerweis & "=" "" "," "" "," & strVerweis & ")"
.Value = .Value
End With
End Sub
|
Über jede Hilfe bin ich dankbar!
Falls ich etwas undeutlich erläutert habe, dann verzeiht mir bitte, dies ist mein erster Eintrag und ich bin noch nicht geübt darin :)
Vielen Dank im Vorraus
John Snow
|