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:
Sub test()
Dim strVerweis As String 'Verweis auf Zelle in anderer Datei
'diese Konstanten müssen angepasst werden
Const strPfad = "C:\Users\Adem\Desktop\" 'Pfad zur anderen Datei (mit Backslash am Ende)
Const strDatei = "alt.xlsm" 'Andere Datei
Const strBlatt = "Tabelle1" 'Tabellenblatt
Const strZelle = "A3" 'Zelladresse
strVerweis = "'" & strPfad & "[" & strDatei & "]" & strBlatt & "'!" & strZelle
With Workbooks("neu.xlsm").Worksheets("Tabelle1").Cells(4, 4)
.Formula = "=IF(" & strVerweis & "="""",""""," & strVerweis & ")" 'Formel eintragen
.Value = .Value 'Forml in Wert umwandeln
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
|