URL bei MediaPlayer

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: URL bei MediaPlayer von: Michi
Geschrieben am: 16.02.2005 13:56:01

Hallo VBA-Profis,

ist es möglich bei dem Steuerelement "MediaPlayer" als URL auch was anderes einzugeben als den Pfad? Das Problem ist, dass der MediaPlayer auch funktionieren soll, wenn er auf einem anderer Rechner gestartet wird. Deshalb hätte ich die mp3-Datei gerne in der eigentlichen Exceltabelle (z.B. als eingefügtes Objekt) integriert. Ist sowas theoretisch möglich und wenn ja wie?

Danke schon mal für Eure Unterstützung
Michi

Bild


Betrifft: AW: URL bei MediaPlayer von: Nepumuk
Geschrieben am: 16.02.2005 15:35:17

Hallo Michi,

grundsätzlich nein möchte ich nicht sagen, aber in Tabellen eingebettete Objekte sind nur schwer wieder als eigenständige Dateien zu speichern (SendKeys). Es wäre sicher einfacher die Dateien per Programm selbstständig zu suchen und die Pfade in die Registry einzutragen. Wenn sich mal ein Pfad ändert, kann das Programm ja wieder selbstständig danach suchen. Ich habe eine Suchroutine, die mein C - Laufwerk (8,62 GB ~ 80.000 Dateien) in rund 1,4 Sekunden nach einer bestimmten Datei durchsucht.

Gruß
Nepumuk


Bild


Betrifft: AW: URL bei MediaPlayer von: Jan
Geschrieben am: 16.02.2005 15:58:22

Eine MP3 hat so in etwa 4 MB, wie groß soll da deine Mappe werden?

mfg Jan


Bild


Betrifft: AW: URL bei MediaPlayer von: Michi
Geschrieben am: 17.02.2005 06:59:16

Hallo Nepumuk,

das hört sich schon ganz gut an. Kannst Du mir diese Suchroutine zur Verfügung stellen und evtl. eine kleine Anleitung dazu? Ich bin nämlich kein Profi in VBA.

Danke Dir schon mal vorab und Grüße
Michi


Bild


Betrifft: AW: URL bei MediaPlayer von: Nepumuk
Geschrieben am: 17.02.2005 15:25:32

Hallo Michi,

das, was du brauchst, ist in dem Makro "suchen" um dir den Rest zu erklähren, müsste ich etwas weit ausholen.
Da ich deinen Kenntnisstand nicht einschätzen kann. Was bedeutet VBA gut, bezeichne doch ich mich auch nur als gut.


Option Explicit

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As LongAs Long

Private Enum FILE_ATTRIBUTE
    MAX_PATH = 260
    INVALID_HANDLE_VALUE = -1
    FILE_ATTRIBUTE_ARCHIVE = &H20
    FILE_ATTRIBUTE_DIRECTORY = &H10
    FILE_ATTRIBUTE_HIDDEN = &H2
    FILE_ATTRIBUTE_NORMAL = &H80
    FILE_ATTRIBUTE_READONLY = &H1
    FILE_ATTRIBUTE_SYSTEM = &H4
    FILE_ATTRIBUTE_TEMPORARY = &H100
End Enum

Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type

Private strFile As String
Private strFolder As String
Private bolfound As Boolean

Public Sub suchen()
    Dim myFileSystemObject As Object, myDrive As Object
    Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
    For Each myDrive In myFileSystemObject.Drives 'durchsuche alle Laufwerke des Rechners
        If myDrive.IsReady Then 'wenn das Laufwerk bereit ist
            FindFiles myDrive.DriveLetter & ":\", "Ficki das kleine Krokodil - Remix.mp3" 'Titel der gesucht wird
            If bolfound Then Exit For 'wurde die Datei gefunden steht der Dateiname in strFile der Pfad in strFolder
        End If
    Next
    Set myFileSystemObject = Nothing
    If bolfound Then MsgBox "Datei ''" & strFile & "'' gefunden in ''" & strFolder & "''", 64, "Information" _
        Else MsgBox "Datei nicht gefunden", 48, "Hinweis"
End Sub

Private Sub FindFiles(ByVal strFolderPath As StringByVal strSearch As String)
    Dim WFD As WIN32_FIND_DATA
    Dim lngSearch As Long
    Dim strDirName As String
    If Right$(strFolderPath, 1) <> "\" Then strFolderPath = strFolderPath & "\"
    lngSearch = FindFirstFile(strFolderPath & "*.*", WFD)
    If lngSearch <> INVALID_HANDLE_VALUE Then
        GetFilesInFolder strFolderPath, strSearch
        Do
            If bolfound Then Exit Do
            If (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) Then
                strDirName = TrimNulls(WFD.cFileName)
                If (strDirName <> ".") And (strDirName <> "..") Then FindFiles strFolderPath & strDirName, strSearch
            End If
        Loop While FindNextFile(lngSearch, WFD)
        FindClose lngSearch
    End If
End Sub

Private Sub GetFilesInFolder(ByVal strFolderPath As StringByVal strSearch As String)
    Dim WFD As WIN32_FIND_DATA
    Dim lngSearch As Long
    Dim strFileName As String
    If Right$(strFolderPath, 1) <> "\" Then strFolderPath = strFolderPath & "\"
    lngSearch = FindFirstFile(strFolderPath & strSearch, WFD)
    If lngSearch <> INVALID_HANDLE_VALUE Then
        Do
            If (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) <> FILE_ATTRIBUTE_DIRECTORY Then
                strFileName = TrimNulls(WFD.cFileName)
                bolfound = True
                strFile = strFileName
                strFolder = strFolderPath
                Exit Do
            End If
        Loop While FindNextFile(lngSearch, WFD)
        FindClose lngSearch
    End If
End Sub

Private Function TrimNulls(ByVal strStringIn As StringAs String
    If InStr(strStringIn, Chr(0)) > 0 Then strStringIn = Left$(strStringIn, InStr(strStringIn, Chr(0)) - 1)
    TrimNulls = strStringIn
End Function


Gruß
Nepumuk


Bild


Betrifft: AW: URL bei MediaPlayer von: Michi
Geschrieben am: 17.02.2005 17:12:54

Hallo Nepumuk,

danke für den Code. Ich hab's jetzt über filesearch gelöst, das reicht für meine Bedürfnisse und erfüllt den Zweck voll und ganz. Bzgl. Level in VBA müssste ich dann wohl eher nein ankreuzen, wenn Du Dich nur als gut einschätzt. Naja, paar Sachen kann ich schon lösen mit VBA, deshalb dachte ich, ich sag hier Level gut.

Vielen Dank auf jeden Fall für Deine Unterstützung!

Grüße
Michi


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen verschieben per VBA"