Clever-Excel-Forum

Normale Version: VBA Datei schließen aber Link merken!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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
Hallo,

warum nicht gleich speichern unter und die Ausgangsdatei löschen?
Hallo Edgar,

(07.01.2016, 08: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
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.
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.
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
Hallo Alexandra,

da bin ich überfragt, wie das passieren kann.

Gruß Uwe
Hallöchen,

woher bekommen denn die Variablen strPfad und strDatei ihre Inhalte ?
Hallo zusammen,


von hier:

strPfadUndDatei = Application.GetOpenFilename("Excel Datei, *.*")


VG
Alexandra
Seiten: 1 2