Clever-Excel-Forum

Normale Version: Pfad einer gesetzten Variablen auf Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ha((o

Wieder mal ein Problem:
Ich habe eine Vorlagendatei geöffnet, mit Daten gefüllt und jetzt will ich sie speichern. Die Datei habe ich mit "Set" einer Variablen zugeordnet. Wie kann ich nun von der geöffneten Datei den Pfad bzw. den Dateinamen erfahren? Da Vorlagenformat "*.xltx" wird es nicht unter diesem Namen geöffnet.

Hier mein vereinfachter Code:
Code:
Dim legtab As Object

Sub Bestellung()

Dim legdateipfad As String
Dim legdateiname As String
Dim legdateimappe As String

   Set legtab = LegTabKat2
   legdateimappe = "Bestellformular"
   
   'Firmendaten ins Bestellformular eingeben
   With legtab.Worksheets(legdateimappe)
       Code
   End With
End Sub

Sub BestellungSpeichern()

Dim lieferant As String
Dim jahr, datum As String
Dim dateipfad, dateiname As String
Dim bestellnummer As String

   jahr = Format(Date, "yyyy")
   datum = Format(Date, "yyyy-mm-dd")
   bestellnummer = "B12345"
   lieferant = "Wella"
   
   dateipfad = legtab.Path & "\..\..\05 Bestellungen\" & jahr & "\"
   dateiname = bestellnummer & " " & datum & " " & lieferant

   Code
   
End Sub

Function LegTabKat2() As Object

Dim legdateipfad, legdateiname As String

   legdateipfad = ThisWorkbook.Path & "\Vorlagen\"
   legdateiname = "Bestellformular.xltx"
   
   If Not IsFileOpen(legdateipfad & legdateiname) = False Then
       Set LegTabKat2 = Workbooks(legdateiname)
   Else
       Set LegTabKat2 = Workbooks.Open(legdateipfad & legdateiname)
       LegTabKat2.Application.WindowState = xlMinimized
   End If

End Function


Hat jemand eine Idee?
Wäre echt nett Smile  Dodgy
Noch ein Nachtrag.
Den Fehler bekomme ich in der Funktion "BestellungSpeichern" bei "
Code:
dateipfad = legtab.Path

[
Bild bitte so als Datei hochladen: Klick mich!
]
Hallo,

das einfachste wäre es, du schreibst den Pfad der *.XLTX einfach in irgendeine Zelle.

Aus der neu geöffneten Mappe1.XLSX bekommst keinen Pfad zurück, da diese ja noch gar nicht gespeichert ist. Logisch ? :16:

Lieber eine kleine Eselsbrücke bauen ... dann braucht frau keine Verrenkungen zu machen. Sleepy
Moin Sabina.

Danke für die Antwort. Notfalls müsste ich es so machen. Aber glücklich bin ich damit nicht.
Schließlich ist die Datei unter einer Objektvariabeln, hier "legtab", gespeichert, bzw. verlinkt. Das muss doch möglich sein, den Link, bzw. den Dateinamen rauszukriegen. Smile

Liebe Grüße
Hallo,

also nochmal, in aller Ruhe ... öffnest du eine XLTX, wird ein neues Workbook geöffnet, dass die Caption "Mappe1" hat. die 1 kann variieren, je nach dem, wie viele neue, ungespeicherte Mappen geöffnet sind. Wenn du den Namen dieser "Mappe1" haben möchtest, geht das über

PHP-Code:
MsgBox ActiveWindow.Caption
MsgBox ActiveWorkbook
.Name 
Und da kommen wir zum nächsten Punkt ... diese ... komplett neu erstellte "Mappe1", die ist NICHT gespeichert ... existiert bisher nur im Arbeitsspeicher.
Somit hat diese "Mappe1" keine Path - Eigenschaft ... das führt zum Fehler in deinem Code.
Code:
dateipfad = legtab.Path
Den bekommst du aber auch nicht weg, da eine nicht gespeicherte Mappe eben mal keinen Path hat.
Und deshalb, solltest du einen festen Pfad haben wollen, entweder in die XLTX reinschreiben ... oder über einen File-Picker einen Pfad auswählen.
Macht Sinn.
Danke.
Ich werde versuchen es umzusetzen. ...