Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei im Ordner umbenennen wenn

Datei im Ordner umbenennen wenn
27.01.2021 10:28:04
udo
Hallo Profis,
bräuchte bitte eure Hilfe bei folgendem Code.

Sub Lagerbestand_XLS_umbenennen()
'       ======================================================================================== _
_
_
Dim Pfad As String
Pfad = Sheets("BZG").Range("J2").Value
Name = Dir(Pfad)
Application.DisplayAlerts = False
Do Until Name = ""
'++++   If Name().Len > 10 Then
Name Pfad & Name As Pfad & Mid(Name, 25, 2) & "." & Mid(Name, 22, 2) & ". _
_
_
" & Mid(Name, 28, 4) & ".xls"
'++++    End If
Name = Dir()
Loop
Application.DisplayAlerts = True
End Sub

Ziel : in einem Ordner, dessen Pfadangabe sich in der Tab "BZG" / Zelle "J2" befindet, soll dieses Umbenenn-Makro ablaufen.
Bislang - wenn der Ordner leer ist - kopieren wir dort einen Haufen .txt Dateien hinein, die auf Grund der Abfrage in einem anderen Datenverarb.System dort einen längeren Namen bekommen . zB: Zustandsbericht_14-01-2021.txt ( TXT Format )
Mit dem oben verankerten Makro kann ich all diese TXT Dateien in diesem Ordner schon einmal umbenennen in folgenden
Dateinamen xx.xx.xxxx.xls ( entspricht beim Abgleichen in einem anderen Makro dann dort dem jew. Datum TT.MM.JJJJ, und dementsprechend kann das dortige Makro dann die gewünschte Datei finden aus dem Sie partiziell nur entspr. Daten benötigt. Soviel zum Hintergrund.
Meine Frage oder Bitte wäre, bislang leeren wir den Ordner bevor wir wieder neue TXT Daten in diesen Ordner hineinkopieren um diese dort per Makro umzubenennen, wir würden aber diese gerne dort belassen, sodass dann dort sich mit der Zeit viele xls Dateien mit Namensformat Datum ( TT.MM.JJJJ) drinn befinden, aber auch eben dann immerwieder
neu hinzugefügte TXT Dateien mit längerem Dateinamen als wie im Datum mit 10 Positionen.
Ich suche daher eine IF Anweisung die ich an entsprechender Stelle dort mit ins das Makro setzte , und da ist mein
VBA ( Vis.Bas.Anfänger ) Latein am Ende ;-)
Diese IF Abfrage sollte im Idealfall nach Namenslänge prüfen, alles was längers ist wie 10Zeichen wird umbenannt
Bräuchte bitte etwas support von euch,
Lieben Dank
Udo

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei im Ordner umbenennen wenn
27.01.2021 11:12:40
Rudi
Hallo,
1. nutze niemals VBA-Schlüsselwörter als Variablenbezeichnungen. Name ist eine Eigenschaft diverser Objekte. strName
2.: strName = Dir (Pfad &"*.txt", vbnormal) ' nur .txt-Dateien
3.: If Len(strName) &gt 10 then
Gruß
Rudi
AW: Datei im Ordner umbenennen wenn
27.01.2021 12:40:26
udo
hallo Rudi, habe es mal so eingebaut deine Tipps

Sub Lagerbestand_XLS_umbenennen()
Dim Pfad As String, StrName As String
Pfad = Sheets("BZG").Range("J2").Value
StrName = Dir(Pfad & "*.txt", vbNormal)
Application.DisplayAlerts = False
Do Until StrName = ""
If Len(StrName) > 10 Then
Name Pfad & StrName As Pfad & Mid(StrName, 25, 2) & "." & Mid(StrName,  _
22, 2) & "." & Mid(StrName, 28, 4) & ".xls"
End If
Name = Dir()
Loop
Application.DisplayAlerts = True
End Sub
irgendwie will es nicht
in der zeile nach If...
mekert er noch , ich verstehs leider nicht warum
Siehst du da was
Lieben Dank
Anzeige
Vielen Dank euch Beiden - habe es hinbekommen ...
27.01.2021 13:08:56
udo

Sub Lagerbestand_XLS_umbenennen()
Dim Pfad As String, DatSache As String
Pfad = Sheets("BZG").Range("J2").Value
DatSache = Dir(Pfad & "*.txt", vbNormal)
Application.DisplayAlerts = False
If Len(DatSache) > 10 Then
Do Until DatSache = ""
Name Pfad & DatSache As Pfad & Mid(DatSache, 25, 2) & "." & Mid( _
DatSache, 22, 2) & "." & Mid(DatSache, 28, 4) & ".xls"
DatSache = Dir()
Loop
End If
Application.DisplayAlerts = True
End Sub

Eure Tipps brachten mich auf den richtigen Weg, vielen lieben Dank
Rudi und Fennek
Schöne Grüße
Udo
Anzeige
AW: ziemlich unklar
27.01.2021 11:16:44
Fennek
Hallo,
im Code-Fragment werden xls-Dateien umbenannt, im erklärenden Text ist von Txt-Dateien die Rede.
Im Code wurde "Name" als Variablen-Namen genutzt, da es das VBA-Schlüsselwort, z.B. "Sheet.Name" gibt, ist es ratsam Variablen anderst zu benennn.
Als Datei-Name ist YYY-MM-DD-Text.xlsx immer besser, da dann einfach sortiert werden kann.
Zum Verständnis ist es notwendig, den genauen Inhalt von Variablen, hier "Pfad = Sheets("BZG").Range("J2").Value" zu kennen.
mfg
AW: ziemlich unklar
27.01.2021 11:24:40
udo
Hallo Fennek,
lieben Dank für deine Hilfe, in der Zelle wo die Pfad angabe drinn steht sieht der Wert zB. so aus "C:\HTMK\DATA Board\"
ansonsten, zum Code oben - den hatte ich mir auch gesucht im Forum - und ihn bei mir angepasst
und hätte eben gerne noch die benannte Erweiterung wenn mgl.
Lieben Dank und Grüße
Udo
Anzeige
AW: xls oder Txt?
27.01.2021 11:50:14
Fennek
Diese Frage wurde nicht beantwortet.
AW: xls oder Txt?
27.01.2021 12:47:36
udo
Hallo Fennek,
ah, ok hatte ich falsch verstanden,
Also, ursprünglich sind es TXT Dateien, ZB. Zustandsbericht_04-10-2020.txt oder so
Die TXT Angaben unterscheiden sich nur am Ende wo das Datum angegeben ist ... vorne Zustandsbericht... bleit immer so benannt.
Mein Makro benennt es um im den Datumwert TT.MM.JJJJ mit Endung .xls
Das lässt sich somit trotzdem öffnen, usw. Das funktioniert auch alles.
Wie gesagt, wir hätten nur gerne das das Umbenennen-Makro hier einfach die bereits umbenannten Dateien mit .xls Endung / oder Name kleiner als 10Zeichen sozusagen bei diesem Umbenennvorgang dann ausser Acht lässt und eben nur die neu hinzugekommenen TXT's noch umbenennt
LG udo
Anzeige
Vielen lieben Dank ... klappt !
27.01.2021 13:09:42
udo

Sub Lagerbestand_XLS_umbenennen()
Dim Pfad As String, DatSache As String
Pfad = Sheets("BZG").Range("J2").Value
DatSache = Dir(Pfad & "*.txt", vbNormal)
Application.DisplayAlerts = False
If Len(DatSache) > 10 Then
Do Until DatSache = ""
Name Pfad & DatSache As Pfad & Mid(DatSache, 25, 2) & "." & Mid( _
DatSache, 22, 2) & "." & Mid(DatSache, 28, 4) & ".xls"
DatSache = Dir()
Loop
End If
Application.DisplayAlerts = True
End Sub

Eure Tipps brachten mich auf den richtigen Weg, vielen lieben Dank
Rudi und Fennek
Schöne Grüße
Udo
Anzeige
AW: mein Vorschlag
27.01.2021 13:17:36
Fennek
Etwas zu spät, aber trotzdem:

const Pfad as string =  "C:\HTMK\DATA Board\"
sub Unbenennen()
f = Dir(Pfad & "*.txt")
Do Until f = ""
If Len(f) > 10 Then
Datum =  Mid(Name, 25, 2) & "." & Mid(Name, 22, 2) & "." & Mid(Name, 28, 4)
Name Pfad & f As Pfad & Datum & ".xls"
endif
f = Dir()
Loop
end sub
Das Umbennen von "*.txt" in "*.xls" ist "abenteuerlich", jeden weiteren Kommentar verkneife ich mir.
kleine Korrektur
27.01.2021 13:45:15
udo
Danke dir nochmals,
hatte deine vorgeschlagene Lösung eben auch noch probiert, kam aber
auch gleich n fehler.
Hab folgende Zeile abgeändert :
Datum = Mid(f, 25, 2) & "." & Mid(f, 22, 2) & "." & Mid(f, 28, 4)
anstatt Name / f verwendet in den Klammern , nun geht es auch damit, prima
nochmals herzlichen Dank für eure Hilfe
@ Fennek:
Der Grund warum wir es kurz umwandeln in xls in dem Fall, liegt an der anderen Marko das sich dort
aus diesem Ordner bedient und eben nach entspr. Exceldateien sucht , derren Namen sie mit einer Zellangabe abgleicht und wenn gefunden dann kurz öffnet, die ersten drei Spalten einliest und dann diese eingelesene xls ( die zuvor ja durch das obrige Marko umbenannt wurde ) dann wieder schliesst, mit diesen umbenannten Txt Dateien in xls aus diesem Ordner arbeitet sonst auch keiner weiters damit, sie enthalten nur Zahlen aus der Abfrage aus einem anderen System.
Das klappt soweit schon mal ganz gut, mir ist auch klar das dies kein Königsweg ist , aber jenes abfragemakro dann mal anzugehen, dass es die TXT auh einliest, mach ich später mal, muss erst vieles andere noch zum Laufen bringen.
Danke für deine wertvollen Tipps
Grüße udo
Anzeige

69 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige