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.

Pfad einer gesetzten Variablen auf Datei
#1
Wink 
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
Nyn007
Antworten Top
#2
Noch ein Nachtrag.
Den Fehler bekomme ich in der Funktion "BestellungSpeichern" bei "
Code:
dateipfad = legtab.Path

[
Bild bitte so als Datei hochladen: Klick mich!
]
Nyn007
Antworten Top
#3
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
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Antworten Top
#4
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
Nyn007
Antworten Top
#5
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.
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
[-] Folgende(r) 1 Nutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • Nyn007
Antworten Top
#6
Smile 
Macht Sinn.
Danke.
Ich werde versuchen es umzusetzen. ...
Nyn007
Antworten Top


Gehe zu:


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