Hallo,
ich bin ein absoluter VBA Anfänger und habe da eine Frage...
Ich bastel gerade eine Datei die mir mit 2 Klicks automatisch eine andere Datei auswerten soll, unterschiedliche Blätter erzeugen soll, diese drucken soll und sich unter einem gewissen Pfad abspeichern soll. Zudem soll die Datei welche am Anfang angesprochen und dann verarbeitet wird gelöscht werden.
Das ansprechen der Datei funktioniert, das Filtern und sortieren auch, das drucken auch.... soweit alles korrekt...
Ich bekomme es jedoch nicht hin das er mir am Ende die richtige Datei unter dem Datum speichert, irgendwie habe ich das noch nicht ganz verstanden was da passiert....
Zu Beginn ein Sub mit dem die Datei vom Benutzer ausgewählt wird:
Dim myfile As String
Sub browseforfile()
myfile = Application.GetOpenFilename(, , "Beispieldatei")
ThisWorkbook.Sheets("Steuerung").Range("B3") = myfile
End Sub
____________________________________________________
Wenn das eigentliche Sub startet soll zu Beginn überprüft werden ob ein Dateipfad gewählt wurde, wenn nicht -> MSGBox
ThisWorkbook.Sheets("Steuerung").Range("B3") = myfile
If myfile = "" Then
MsgBox "Dateipfad muss neu gewählt werden.", vbOKOnly + vbInformation, "Warnung!"
Exit Sub
End If
____________________________________________________
Wenn der Dateipfad gewählt wurde läuft das Sub einfach weiter, setzt die Filter korrekt und splittet das Tabellenblatt in mehrere Blätter und druckt diese im korrekten Format.
Wenn das alles fertig ist soll VBA die bearbeitete Datei unter dem jeweiligen Datum speichern
Const sPfad As String = "Beispielpfad\"
ThisWorkbook.SaveAs sPfad & Format(Date, "YYYYMMDD")
ActiveWorkbook.Close
Das Problem ist jedoch das er dann immer die Steuerungsdatei dort so abspeichert und nicht die Datei die bearbeitet wurde, habe auch schon über verschiedene activate Befehle versucht wieder die Datei dessen Pfad ja im String myfile hinterlegt ist zu aktivieren bevor er die Speicherung durchführt doch ohne jeglichen Erfolg..... er speichert immer die falsche Datei...
PS: außerdem bräuchte ich noch eine Funktion die mir einen Ordner leert, also alle vorhandenen Dateien löscht...
Vielen Dank im Voraus
Nachtrag: Problem GELÖST!- so schlau muss man erstmal sein, egal was ich vorher schreibe - mit ThisWorkbook wieder die Steuerungsdatei anzusprechen und sich zu wundern warum er die nimmt ist schon recht blöd von mir - rofl
gelöscht wird die alte datei auch korrekt
hat sich also erledigt, wird geschlossen
ich bin ein absoluter VBA Anfänger und habe da eine Frage...
Ich bastel gerade eine Datei die mir mit 2 Klicks automatisch eine andere Datei auswerten soll, unterschiedliche Blätter erzeugen soll, diese drucken soll und sich unter einem gewissen Pfad abspeichern soll. Zudem soll die Datei welche am Anfang angesprochen und dann verarbeitet wird gelöscht werden.
Das ansprechen der Datei funktioniert, das Filtern und sortieren auch, das drucken auch.... soweit alles korrekt...
Ich bekomme es jedoch nicht hin das er mir am Ende die richtige Datei unter dem Datum speichert, irgendwie habe ich das noch nicht ganz verstanden was da passiert....
Zu Beginn ein Sub mit dem die Datei vom Benutzer ausgewählt wird:
Dim myfile As String
Sub browseforfile()
myfile = Application.GetOpenFilename(, , "Beispieldatei")
ThisWorkbook.Sheets("Steuerung").Range("B3") = myfile
End Sub
____________________________________________________
Wenn das eigentliche Sub startet soll zu Beginn überprüft werden ob ein Dateipfad gewählt wurde, wenn nicht -> MSGBox
ThisWorkbook.Sheets("Steuerung").Range("B3") = myfile
If myfile = "" Then
MsgBox "Dateipfad muss neu gewählt werden.", vbOKOnly + vbInformation, "Warnung!"
Exit Sub
End If
____________________________________________________
Wenn der Dateipfad gewählt wurde läuft das Sub einfach weiter, setzt die Filter korrekt und splittet das Tabellenblatt in mehrere Blätter und druckt diese im korrekten Format.
Wenn das alles fertig ist soll VBA die bearbeitete Datei unter dem jeweiligen Datum speichern
Const sPfad As String = "Beispielpfad\"
ThisWorkbook.SaveAs sPfad & Format(Date, "YYYYMMDD")
ActiveWorkbook.Close
Das Problem ist jedoch das er dann immer die Steuerungsdatei dort so abspeichert und nicht die Datei die bearbeitet wurde, habe auch schon über verschiedene activate Befehle versucht wieder die Datei dessen Pfad ja im String myfile hinterlegt ist zu aktivieren bevor er die Speicherung durchführt doch ohne jeglichen Erfolg..... er speichert immer die falsche Datei...
PS: außerdem bräuchte ich noch eine Funktion die mir einen Ordner leert, also alle vorhandenen Dateien löscht...
Vielen Dank im Voraus
Nachtrag: Problem GELÖST!- so schlau muss man erstmal sein, egal was ich vorher schreibe - mit ThisWorkbook wieder die Steuerungsdatei anzusprechen und sich zu wundern warum er die nimmt ist schon recht blöd von mir - rofl
gelöscht wird die alte datei auch korrekt
hat sich also erledigt, wird geschlossen