Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2024 / Arbeit: MS365
Hallo liebe Excelgemeinde,
ich habe mal wieder eine Frage an die Experten! :)
Ich möchte aus Datei 1 per Makro eine Datei 2 öffnen per
Dateiname = Application.GetOpenFilename("Excel Datei, *.*") ' Datei auswählen
Dies funktioniert soweit auch sehr gut, allerdings möchte ich die Datei 2 die ich dadurch öffne nach bearbeiten, erst mal schließen und danach umbenennen per Makro!
Wie kann sich der Code Die Datei merken inkl. Pfad damit ich dann per
Name Datei As "xxxxx.xlsx"
diese umbenennen kann?
Vielen Dank schon mal im Voraus
VG
Alexandra
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
07.01.2016, 09:39
(Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2016, 10:05 von Kuwer.
Bearbeitungsgrund: Codefehler berichtigt
)
Hallo Alexandra,
so z.B.:
Sub aaa()
Dim strDatei As String, strPfad As String, strPfadUndDatei As String
strPfadUndDatei = Application.GetOpenFilename("Excel Datei, *.*") ' Datei auswählen
If Not CVar(strPfadUndDatei) = False Then
strDatei = Dir(strPfad)
Workbooks.Open Filename:=strPfadUndDatei
strPfad = Workbooks(strDatei).Path & "\"
'...
Workbooks(strDatei).Close True
Name strPfadUndDatei As strPfad & "xxxxx.xls"
End If
End Sub
Gruß Uwe
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
warum nicht gleich speichern unter und die Ausgangsdatei löschen?
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Edgar,
(07.01.2016, 09:59)BoskoBiati schrieb: warum nicht gleich speichern unter und die Ausgangsdatei löschen?
das ist halt nur anders, aber nicht unbedingt besser, wie Deine Frage vielleicht vermuten lassen könnte:
Sub aab()
Dim strDatei As String, strPfad As String, strPfadUndDatei As String
strPfadUndDatei = Application.GetOpenFilename("Excel Datei, *.*") ' Datei auswählen
If Not CVar(strPfadUndDatei) = False Then
strDatei = Dir(strPfad)
Workbooks.Open Filename:=strPfadUndDatei
strPfad = Workbooks(strDatei).Path & "\"
'...
Workbooks(strDatei).SaveAs strPfad & "xxxxx.xls"
Kill strPfadUndDatei
End If
End Sub
Gruß Uwe
Registriert seit: 13.04.2014
Version(en): 365
Hallo Uwe,
ich dachte nicht an besser, mir erschien es nur logischer, wobei es im Grunde eigentlich egal ist. Ich denke manchmal noch in manuellen Abläufen.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ich vermute, dass Du zum Speichern ein anderes Makro verwendest. Damit der im ersten Makro verwendete Dateiname auch dort zur Verfügung steht, musst Du die Variable auf Modulebene oder global definieren.
Also entweder
Dim Dateiname
im betreffenden Modul
oder
Public Dateiname
am Anfang eines Moduls, in allen Fällen vor den Sub's.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2024 / Arbeit: MS365
Hallo Uwe,
vielen Dank für dein Code, allerdings bekomme ich immer eine Fehlermeldung "Index außerhalb des gültigen Bereichs" bei:
strPfad = Workbooks(strDatei).Path & "\"
Was könnte das sein?
Vielen Dank
Viele Grüße
Alexandra
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Alexandra,
da bin ich überfragt, wie das passieren kann.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
woher bekommen denn die Variablen strPfad und strDatei ihre Inhalte ?
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2024 / Arbeit: MS365
Hallo zusammen,
von hier:
strPfadUndDatei = Application.GetOpenFilename("Excel Datei, *.*")
VG
Alexandra