Clever-Excel-Forum

Normale Version: Zeitwerte (min,sek) ermitteln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo und frohe Weihnachten,

ich lese ein Verzeichniss mit folgendem Routinen (mp3 Dateien) aus und speichere sie in einer Tabelle um sie später weiter zu bearbeiten.

Code:
Function GetAOrdner() As String
    Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
    With xl
        .hwnd = FindWindow("xlmain", vbNullString)
        .Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
        .Flags = 1
    End With
    IDList = SHBrowseForFolder(xl)
    If IDList <> 0 Then
        FolderName = Space(256)
        RVal = SHGetPathFromIDList(IDList, FolderName)
        CoTaskMemFree (IDList)
        FolderName = Trim(FolderName)
        FolderName = Left(FolderName, Len(FolderName) - 1)
    End If
    GetAOrdner = FolderName
   
    StOrdner = GetAOrdner                           ' Verzeichnis auswählen
   
    If StOrdner = "" Then
        MsgBox "Es wurde kein Ordner ausgewählt!"
    End If

    SearchInFolder StOrdner
   
End Function

Private Sub SearchInFolder(ByVal Folderspec As String)
    On Error Resume Next
    ' auslesen aufrufen mit Ordnername
    Dim dserfdat As Long
    Dim FSO As New FileSystemObject
    Dim SearchFolder As Folder
    Dim FI As File
    Dim EachFil As Files
    Dim erfdat As Worksheet
    Dim adat As Worksheet               'Neu 05.11.20
   
    Dim x As Long
    Set SearchFolder = FSO.GetFolder(Folderspec)
    Set EachFil = SearchFolder.Files                ' Dateien in der jeweiligen Root
    Set erfdat = Worksheets("ErfastDaten")
   
    '**********************************************
    '   Sheets"ErfasDaten" löschen
    '**********************************************
    dserfdat = erfdat.Cells(Rows.Count, 2).End(xlUp).Row
    erfdat.Visible = True
    erfdat.Activate
    erfdat.Range(Cells(3, 1), Cells(dserfdat, 9)).ClearContents
    erfdat.Range("F1").ClearComments
   
    lfdn = 1
    Loletzte = 3
    For Each FI In EachFil                      ' Schleife über alle Dateien
        ' laufende Eintragsnummer
        erfdat.Cells(Loletzte, 1) = lfdn
        ' Dateiname ohne Ordner
        erfdat.Cells(Loletzte, 2) = FI.Name
        ' Pfad
        erfdat.Cells(Loletzte, 5) = Left(FI.Path, Len(FI.Path) - Len(FI.Name))
        ' Hyperlink Pfad und Dateiname
        erfdat.Hyperlinks.Add Anchor:=erfdat.Cells(Loletzte, 9), Address:=FI.Path, TextToDisplay:=FI.Path

       
        Loletzte = Loletzte + 1             ' Zeilenzähler um 1 erhöhen
        lfdn = lfdn + 1
    Next FI
   
    erfdat.Range("F1") = lfdn - 1
   
    Set EachFil = Nothing
    dserfdat = erfdat.Cells(Rows.Count, 2).End(xlUp).Row
    For x = 3 To dserfdat
        erfdat.Cells(x, 9).Font.Size = 9
    Next x
   
    erfdat.Range("A1").Select
   
End Sub

Das klappt auch alles wunderbar bis auf mein Problem:

ich hätte gerne außer den Interpreten, den Titel und den Pfad noch die Angabe der Größe in min und sek (z.B. 3:25) Huh

ist das überhaupt möglich, wenn ja wie 17

Mein System:
Windows 10 und Excel 2016

Meinen Dank im vorraus

Wilfried
Hallo Wilfried,

kannst auch mal hier schauen: https://www.clever-excel-forum.de/Thread...r-Playlist

Gruß Uwe
Hallo Cadmus,

zunächst vielen Dank für deine Tipps.

Ich habe mich dann für Zweite Variante entschieden.

Das hat aber nicht geklappt, da bekomme ich gleich in der nachstehenden Zeile

Code:
Dim uID3v2 As ID3v2

folgende Fehlermeldung:

Fehler beim Kompilieren:
Benutzerdefinierter Typ nicht definiert


Hast du für das Problem eine Lösung?
Wäre sehr schön

LG
Wilfried
Moin!
Wenn der benutzerdefinierte Typ nicht definiert ist, solltest Du ihn definieren!  21

Zitat:Ich habe mich dann für Zweite Variante entschieden.


Vor der zweiten Variante steht aber noch was im Link:
PHP-Code:
Option Explicit
 
' ID3v2-Infostruktur
Public Type ID3v2
  sTitle As String
  sArtist As String
  sAlbum As String
  sComment As String
  sYear As String
  sGenre As String
  sComposer As String
  sURL As String
  sOrgArtist As String
  sCopyright As String
  sEncodeBy As String
  sTrack As String
  sMedium As String
  sLen As String
End Type 

Gruß Ralf
Hallo Cadmus,

sprechen wir die gleiche Sprache?

Ich spreche VBA Excel du evtl PHP?

Kann das funktionieren?

LG
Wilfried
Falls Du mich meinst …
Ich könnte es es auch als [ Quote] oder [ Code] posten, wenn Dir [ PHP] nicht zusagt.
Ändert aber nixx am Inhalt.
Ich kann sogar HTML  19
Option Explicit
 
' ID3v2-Infostruktur 
Public Type ID3v2
  sTitle As String
  sArtist As String
  sAlbum As String
  sComment As String
  sYear As String
  sGenre As String
  sComposer As String
  sURL As String
  sOrgArtist As String
  sCopyright As String
  sEncodeBy As String
  sTrack As String
  sMedium As String
  sLen As String
End Type
Hallo Cadmus,
ich muss dich noch einmal um Hilfe bitten:
zunächst fiel mir auf das dein “ Beispiel für den Aufruf“ keine Routine ist.
Ich hab dann mal eine Sub daraus gemacht (ich hoffe das war richtig). Huh
Rufe ich nun diese Sub auf, erhalte für die Zeile

Code:
uID3v2 = MP3_ReadID3v2Tag(sFile)

ich folgende Fehlermeldung:
Fehler beim kopilieren:
Argument ist nicht optional.


Noch eines, die Zeile
Code:
'    sFile = App.Path & "\mySong.mp3"

Habe ich geändert in

Code:
sFile = "j\Musik\Andreas Martin - Sie sagte.mp3"

denn dort befinden sich meine Audio-Dateien.

Ich hoffe ich habe keine Fehler eingebaut und du kannst mir helfen.

LG
Wilfried
Hallo,

du meinst bestimmt RPP63 und nicht mich.
Nö, ich kann auch nicht gemeint sein! Wink
Schließlich stammt kein Code in diesem Thread von mir.
Ich habe nur zitiert und auf einen prinzipiellen Fehler des TE aufmerksam gemacht.
Seiten: 1 2