Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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.
Antworten Top
#4
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
Antworten 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.
Antworten 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)
Antworten 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
Antworten Top
#8
Hallo Alexandra,

da bin ich überfragt, wie das passieren kann.

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


von hier:

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


VG
Alexandra
Antworten Top


Gehe zu:


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