Datei mit unbekanntem Namen speichern
#1
Hallo zusammen,

ich habe ein Problem mit dem speichern und schließen einer Datei, deren Namen sich gelegentlich ändert.

Ich öffnen, ändern, speichern und schließe diese jedoch über ein Macro in einer anderen Datei.

Probleme habe ich aber nur beim speichern und schließen. Eine Datei, mit zum Teil unbekanntem Namen, kann ich öffnen:

Das öffnen funktioniert:

Code:
'************************wird benötigt zum prüfen ob Datei bereits geöffnet ist / funktioniert mit freigegeben Dateien*************
Function WB_open(ByVal WB As String) As Boolean
  For Each WBK In Workbooks
      If WBK.Name = WB Then WB_open = True: Exit For
  Next WBK
End Function

Sub Mappeöffnen1()

'**************prüfen ob File bereits geöffnet ist************
iPath = "D:\aaaa\bbbbb\cccccc\dddddd\"
iFile = "WKEDOHM ?????.xlsm"
If Not WB_open(iFile) Then Workbooks.Open (iPath & iFile)

'************************************************************


Das speichern jedoch nicht:
Code:
Workbooks("WKEDOHM ?????.xlsm").Saved = True

Workbooks("WKEDOHM ?????.xlsm").Close


Hierbei stehen die "?" für die unbekannten, sich immer ändernden Werte. Wie gesagt funktioniert das bei mir nicht beim speichern und schließen der Datei.


Mein Ansatz:
1) es gibt eventuell doch eine Möglichkeit eine unbekannte Datei zu speichern, schließen
2) eine Public Variable erstellen in der der Name, nach öffnen der Datei steht, und dieser Wert dann beim speichern und schließen genommen wird.


Bei Punkt 2 habe ich das so gemacht:

Das steht in einem Modul und wird aus einem Userform heraus ausgelöst:
Code:
Public Dateiunbekannt

'************************wird benötigt zum prüfen ob Datei bereits geöffnet ist / funktioniert mit freigegeben Dateien*************
Function WB_open(ByVal WB As String) As Boolean
  For Each WBK In Workbooks
      If WBK.Name = WB Then WB_open = True: Exit For
  Next WBK
End Function

Sub Mappeöffnen1()

'**************prüfen ob File bereits geöffnet ist************
iPath = "D:\aaaa\bbbbb\cccccc\dddddd\"
iFile = "WKEDOHM ?????.xlsm"
If Not WB_open(iFile) Then Workbooks.Open (iPath & iFile)

'************************************************************

Dateiunbekannt = ActiveWorkbook.Name

End Sub

Wenn ich mir aber die Variable "Dateiunbekannt" anschaue, dann steht da der Dateiname in dem ich arbeite, also in dem das Userform geöffnet ist drin. Nicht der Dateiname von der Exceldatei die ich (über das Userform Macro) gerade geöffnet haben (WKEDOHM ?????.xlsm)?

Jemand ein Tipp für mich?

Danke und Gruß.
Top
#2
Hallo,
Sub Mappeöffnen1()

'**************prüfen ob File bereits geöffnet ist************
iPath = "D:\aaaa\bbbbb\cccccc\dddddd\"
iFile = Dir(iPath & "WKEDOHM ?????.xlsm")
If Not WB_open(iFile) Then Workbooks.Open iPath & iFile

'************************************************************
End Sub

Workbooks(iFile).Close True
Gruß Uwe
Top
#3
Smile 
Super, vielen Dank.

....was so ein paar klammern und Zeichen ausmachen können Wink

Wieso das aber jetzt funktioniert ist mir allerdings nicht klar...

"Dir" in (iFile = Dir(iPath & "WKEDOHM ?????.xlsm")) bedeutet was genau?

Ich dachte, bei "Dir" wird dann der Pfad und Dateiname gespeichert.

Danke und Gruß.
Top
#4
Hallo,

Dir gibt einen Dateinamen zurück. Prüfe es einfach mit
MsgBox iFile
Setze den Cursor auf Dir und drücke F1 für weitere Erklärungen. Wink

Gruß Uwe
Top
#5
Hallo Uwe,

hatte es natürlich bereits geprüft Wink

Nur auf die Erklärung mit F4 bin ich noch nicht gekommen.

Danke und erledigt.
Top
#6
Hi

(27.03.2018, 12:42)S05 schrieb: Nur auf die Erklärung mit F4 bin ich noch nicht gekommen.

ist ja auch F1. :21:
Top


Gehe zu:


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