Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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

Dateinamen ergänzen!

Dateinamen ergänzen!
10.06.2019 21:50:11
El.
Hallo zusammen,
habe mal wieder ein kleines Problem, das wie folgt aussieht!!!
Meine in Excel eingelesenen Filme (Dateinamen) möchte ich mit verschiedenen Informationen wie Filmlänge, Bild Höhe und Bildbreite ergänzen. Da ich das aber gerne mit VBA machen würde, stoße ich da wie üblich an meine Grenzen. Habe zwar alle Möglichkeiten schon ausprobiert, kam aber immer wieder ins Stocken beim Format der Filmlänge. Wie kann ich dieses Format mit dem Dateinamen verknüpfen, so, dass er mir z. B. den Namen nicht so anzeigt: "12345678910.mp4 / 9,43333333333333", sondern: "12345678910.mp4 / 90 Min. / Encoding Size (Bild Höhe & Bildbreite) = 720 x 1280. Da ja die TV Filme unterschiedliche Längen haben, wird die Länge je nach dem auf bzw. abgerundet. (10:35, = 11 Min. / 01:30 Std. = 90 Min.). Wenn ich die Daten mit einer Formel verknüpfe, klappt das einwandfrei (=C4 & " / " & TEXT(O4;"00") &" Min." & " / Encoding Size = " & L4 & " X " & M4). Nur mit VBA klappt das einfach nicht so, wie ich es gerne hätte. Ideal wäre für mich, wenn der ganze Vorgang automatisch per VBA realisiert werden könnte. Das heißt, die "Länge" von diesem Format "00:09:26" in das Format (10:35, = 11 Min. / 01:30 Std. = 90 Min.) umwandeln mit dementsprechendem Auf - bzw. Abrunden. Dann das Verketten der einzelnen Zellen wie oben als Formel dargestellt und das die neuen generierten "Namen" in ein neues TB übertragen werden.
https://www.herber.de/bbs/user/130323.xlsm
Vielen Dank schon mal im voraus.
Viele Grüße
Elfriede
https://www.herber.de/bbs/user/130323.xlsm

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen ergänzen!
11.06.2019 05:48:00
Hajo_Zi
Hallo Elfriede ,
die Zeile wo Du den Namen zusammenbaust konnte ich nicht finden.
Benutze Format.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Dateinamen ergänzen!
11.06.2019 09:23:58
El.
Hallo Hajo,
den Dateinamen findest Du in der Beschreibung und aber auch in der Datei unter "Name" (12345678910.mp4).
Dort habe ich auch farblich gekennzeichnet, was ich gerne per VBA verkettet hätte.
Viele Grüße
Elfriede
AW: Dateinamen ergänzen!
11.06.2019 10:21:46
Werner
Hallo Elfriede,
meinst du so?
Sub Schaltfläche1_Klicken()
Dim strDateiname As String
With Worksheets("Test")
strDateiname = _
Range("C9") & " / " & Format(Range("K9") * 60 * 24, "00") & " Min." & " / " _
& " Encoding Size = " & Range("L9") & " x " & Range("M9")
End With
MsgBox strDateiname
End Sub
Gruß Werner
Anzeige
AW: Dateinamen ergänzen!
11.06.2019 11:13:34
El.
Hallo Werner,
zuerst Danke für Dein Makro.
Ja, so stelle ich mir das vor. Nur sollten dann alle Dateien (es sind ein paar Hundert) durch "gearbeitet" und in einem neuen Tab-Blatt abgespeichert werden. Wenn das ginge, wäre Super.
Vielen Dank im voraus
Viele Grüße
Elfriede
AW: Dateinamen ergänzen!
11.06.2019 12:04:35
Werner
Hallo Elfriede,
so:
Public Sub Dateiname_erstellen()
Dim loLetzte As Long, i As Long, strDateiname As String
Dim varArray() As Variant, loAnzahl As Long
With Worksheets("Test")
loAnzahl = _
.Range(.Cells(4, "B"), .Cells(.Cells(.Rows.Count, "B").End(xlUp).Row, "B")).Rows.Count
ReDim varArray(loAnzahl - 1)
For i = 4 To .Cells(.Rows.Count, "B").End(xlUp).Row
varArray(i - 4) = _
.Cells(i, "C") & " / " & Format(.Cells(i, "K") * 60 * 24, "00") & " Min." & " / " _
& " Encoding Size = " & .Cells(i, "L") & " x " & .Cells(i, "M")
Next i
End With
'Blattname ggf. anpassen
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row
.Cells(loLetzte, "A").Resize(loAnzahl) = WorksheetFunction.Transpose(varArray)
End With
Gruß Werner
Anzeige
AW: Dateinamen ergänzen!
11.06.2019 16:07:50
El.
Hallo Werner,
vielen Dank für Deine Bemühungen. Super Arbeit ...
Wenn in Deinem Makro nach dem "End With" nur noch ein "End Sub" kommt, habe ich das fehlende "Teil" richtig ergänzt. Ansonsten hätte er ja "gemeckert" und einen Fehler angezeigt. Die neuen Dateinamen werden ja korrekt angezeigt und somit ist alles in bester Ordnung.
Viele Grüße und nochmals vielen Dank.
Elfriede
Gerne u. Danke für die Rückmeldung. o.w.T.
11.06.2019 17:30:56
Werner
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
11.06.2019 20:54:38
El.
Hallo Werner,
schön, dass Du dich noch einmal gemeldet hast. Denn mir ist doch noch was eingefallen, was man noch mit einbauen könnte. Da ja manchmal die Dateinamen unterschiedlich geschrieben sind (alles GROSS, oder klein und GROSS) würde ich gerne die Schrift einheitlich haben und zwar von jedem Wort den Anfangsbuchstaben groß geschrieben. Wenn das noch ohne großen Aufwand möglich wäre!!!
Vielen Dank im voraus.
Viele Grüße
Elfriede
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
12.06.2019 10:15:43
Nepumuk
Hallo Elfriede,
teste mal:
Public Sub Dateiname_erstellen()
Dim loLetzte As Long, i As Long, strDateiname As String
Dim varArray() As Variant, loAnzahl As Long
Dim avntName As Variant
Dim strExtension As String, strTemp As String
Dim ialngIndex As Long
With Worksheets("Test")
loAnzahl = .Range(.Cells(4, "B"), _
.Cells(.Cells(.Rows.Count, "B").End(xlUp).Row, "B")).Rows.Count
ReDim varArray(loAnzahl - 1)
For i = 4 To .Cells(.Rows.Count, "B").End(xlUp).Row
avntName = Split(.Cells(i, 3).Value, " ")
strTemp = avntName(UBound(avntName))
strExtension = Mid$(strTemp, InStrRev(strTemp, "."))
strTemp = Left$(strTemp, Len(strTemp) - Len(strExtension))
avntName(UBound(avntName)) = strTemp
For ialngIndex = LBound(avntName) To UBound(avntName)
avntName(ialngIndex) = Application.Proper(avntName(ialngIndex))
Next
.Cells(i, 3).Value = Join(avntName, " ") & strExtension
varArray(i - 4) = _
.Cells(i, "C") & " / " & Format(.Cells(i, "K") * 60 * 24, "00") & " Min." & _
" / " & " Encoding Size = " & .Cells(i, "L") & " x " & .Cells(i, "M")
Next i
End With
'Blattname ggf. anpassen
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row
.Cells(loLetzte, "A").Resize(loAnzahl) = WorksheetFunction.Transpose(varArray)
End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
12.06.2019 15:39:47
El.
Hallo Nepumuk,
schön dass Du dich hier eingebracht hast. Ich weiß zwar nicht warum Werner nicht weiter gemacht hat, aber das ist ja auch nicht so schlimm, weil Du ja auch immer hilfsbereit bist und gute Arbeit ablieferst. Wie auch jetzt wieder. Alles funktioniert wunderbar, bis auf einmal. Da hat er eine Fehlermeldung gebracht: "Laufzeitfehler 5, ungültiger Prozeduraufruf, oder ungültiges Argument". Das kam daher, weil ich die Dateinamen händisch ohne Dateiendung in die Tabelle kopiert hatte und das hat er nicht akzeptiert und deshalb hat er die Fehlermeldung gebracht. Kleiner Fehler, große Wirkung!!! Sobald die Dateinamen mit Dateiendung eingelesen werden, war wieder alles O.K.
Also, nochmals vielen Dank an Dich und Werner.
Viele Grüße von
Elfriede
Anzeige
Um deine Frage zu beantworten...
13.06.2019 14:17:50
Werner
Hallo Elfriede,
...das Problem war laut deiner Aussage gelöst. Aus diesem Grund war/ist der Beitrag bei mir nicht mehr im Fokus.
Eine Mail-Benachrichtigung habe ich nicht eingerichtet - ist mir zu lästig.
Ich sitze nicht am Rechner und schaue mir alte Beiträge an, die bereits gelöst wurden.
Gruß Werner
AW: Um deine Frage zu beantworten...
13.06.2019 16:56:04
El.
Hallo Werner,
wegen meiner Anmerkung, deswegen bitte nicht sauer sein. Ich konnte nicht ahnen, dass für Dich das Project schon abgeschlossen war. Nepomuk hat Dich gut vertreten.
Trotzdem vielen Dank an Euch beide.
Viele Grüße von
Elfriede

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige