VBA Datei schließen aber Link merken!
#1
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
Top
#2
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
Top
#3
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.
Top
#4
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
Top
#5
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.
Top
#6
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)
Top
#7
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
Top
#8
Hallo Alexandra,

da bin ich überfragt, wie das passieren kann.

Gruß Uwe
Top
#9
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)
Top
#10
Hallo zusammen,


von hier:

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


VG
Alexandra
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste