Halllo!
Ich hab hier folgende Aufgabe und hoffe ihr könnts mir dabei helfen.
Also ich habe in einem Netzwerkordner ein Ordner mit Dateien drinnen die so aufgebaut sind:
Ordner A\
001 - Auto.xls
002 - Laptop.xls
003 - Auto.xls
usw.
Der Aufbau der Dateiname ist für die ersten 6 Zeichen immer gleich nur die ersten 3 Zeichen ändern sich fortlaufend.
Ich möchte in Excel via VBA ein Code schreiben, der mir in den Netzwerkordner Ordner A geht und nachschaut welche Dateie die höchte Nummer hat und dann Automatisch +1 addieren und in eine Zelle schreiben.
Nachdem das der Fall ist, soll er bei der Funktion speichern Automatisch den Dateiname erstellen.
zB Ordner B hat jetzt folgende Dateien:
123 - Laptop.xls
124 - Handy.xls
Die neue Datei soll dann 125 - *alter Dateiname*.xls automatisch erstellen.
Mein Code nur zur Speicherung der Datei
Folgende Probleme hab ich hier noch:
1. Da die Länge der Dateiname unterschiedlich sind, weiß ich nicht, wie man die Länge der Dateiname so ausließt, dass sie nach "200 - " beginnt und vor .xlsx aufhört zu zählen. Mit Left/Right/Mid geht es auch nur so halbwegs und für jede Einzelne Datei müsste ich es Extra neu definieren.
2. Wie kann man aus einem Netzwerkordner rauslesen, welche Datei die höchste Nummer hat?
Also ich hab jetzt geschafft alle Dateien in dem Verzeichnis aufzulisten, nur werden da alle angezeigt.
Vielleicht hat ja jemand eine bessere Idee.
Ich hab hier folgende Aufgabe und hoffe ihr könnts mir dabei helfen.
Also ich habe in einem Netzwerkordner ein Ordner mit Dateien drinnen die so aufgebaut sind:
Ordner A\
001 - Auto.xls
002 - Laptop.xls
003 - Auto.xls
usw.
Der Aufbau der Dateiname ist für die ersten 6 Zeichen immer gleich nur die ersten 3 Zeichen ändern sich fortlaufend.
Ich möchte in Excel via VBA ein Code schreiben, der mir in den Netzwerkordner Ordner A geht und nachschaut welche Dateie die höchte Nummer hat und dann Automatisch +1 addieren und in eine Zelle schreiben.
Nachdem das der Fall ist, soll er bei der Funktion speichern Automatisch den Dateiname erstellen.
zB Ordner B hat jetzt folgende Dateien:
123 - Laptop.xls
124 - Handy.xls
Die neue Datei soll dann 125 - *alter Dateiname*.xls automatisch erstellen.
Mein Code nur zur Speicherung der Datei
Code:
Sub Speichern()
Dim fso As New FileSystemObject
Set fso = New FileSystemObject
Dim fileName As String
Dim fileSaveName As String
Dim filepath As String
Dim CellValue As String
CellValue = Cells(8, 1).Value [B]Auslesen der Zelle A8[/B]
Cells(8, 1).Value = "Rechnungs - Nr : " + Right(CellValue, 5) [B]*Speichert den Text und liest den Wert der letzten 5 Zeichen der Celle A8 aus*[/B]
fileName = Application.ActiveWorkbook.Name
fileName = Mid(fileName, 5, 15) [B]*Datei Name Speichern, aber noch sehr viele Probleme, da ich nicht weiß, wie man variable Namenlänge deklarieren kann*[/B]
fileSaveName = Application.GetSaveAsFilename(Right(CellValue, 3) + " - " + fileName, "Microsoft Excel (*.XLSX),*.XLSX")
'3 für die letzten 3 zeichen
End Sub
Folgende Probleme hab ich hier noch:
1. Da die Länge der Dateiname unterschiedlich sind, weiß ich nicht, wie man die Länge der Dateiname so ausließt, dass sie nach "200 - " beginnt und vor .xlsx aufhört zu zählen. Mit Left/Right/Mid geht es auch nur so halbwegs und für jede Einzelne Datei müsste ich es Extra neu definieren.
2. Wie kann man aus einem Netzwerkordner rauslesen, welche Datei die höchste Nummer hat?
Also ich hab jetzt geschafft alle Dateien in dem Verzeichnis aufzulisten, nur werden da alle angezeigt.
Vielleicht hat ja jemand eine bessere Idee.
Zuletzt bearbeitet: