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

Fotos umbenennen

Fotos umbenennen
Sebastian
Hallo zusammen,
ich würde gerne meine Fotos, die ja alle ganz sprechende Namen haben, per Makro umbenennen.
Genauer gesagt, sollen die Fotos durchnummeriert werden und als Name voran soll der Ordnername (nicht der gesamte Pfad) gestellt werden.
Also z.B. aus
CMG00001
CMG000002
soll werden (Ordnername = Karneval)
Karneval0001
Karneval00002
Hat sowas schon jemand gemacht bzw. kann er mir helfen? ´
Viele Grüße
Sebastian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fotos umbenennen
09.08.2011 19:35:39
Josef

Hallo Sebastian,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub renamePictures()
  Dim objFiles() As Object
  Dim lngRet As Long, lngIndex As Long
  Dim strPath As String, strFile As String, strTmp As String
  
  strPath = "E:\Temp" 'Startverzeichnis
  
  lngRet = FileSearchINFO(objFiles, strPath, "*.jpg", True)
  
  If lngRet > 0 Then
    For lngIndex = 0 To lngRet - 1
      With objFiles(lngIndex)
        strTmp = REGEXReplace(objFiles(lngIndex).Name, "[a-z]+")
        Name CStr(.Path) As CStr(.ParentFolder.Path & "\" & .ParentFolder.Name & strTmp)
      End With
    Next
  End If
  
End Sub


Private Function FileSearchINFO(ByRef Files() As Object, ByVal InitialPath As String, Optional _
    ByVal FileName As String = "*", Optional ByVal SubFolders As Boolean = False) As Long

  
  '# PARAMETERINFO:
  '# Files: Datenfeld zur Ausgabe der Suchergebnisse
  '# InitialPath: String der das zu durchsuchende Verzeichnis angibt
  '# FileName: String der den gesuchten Dateityp oder Dateinamen enthält (Optional, Standard="*.*" findet alle Dateien)
  '# Beispiele: "*.txt" - Findet alle Textdateien
  '# "*name*" - Findet alle Dateien mit "name" im Dateinamen
  '# "*.avi;*.mpg" - Findet .avi und .mpg Dateien (Dateitypen mit ; trennen)
  '# SubFolders: Boolean gibt an, ob Unterordner durchsucht werden sollen (Optional, Standard=False)
  
  
  Dim fobjFSO As Object, ffsoFolder As Object, ffsoSubFolder As Object, ffsoFile As Object
  Dim intC As Integer, varFiles As Variant
  
  Set fobjFSO = CreateObject("Scripting.FileSystemObject")
  
  Set ffsoFolder = fobjFSO.GetFolder(InitialPath)
  
  On Error GoTo ErrExit
  
  If InStr(1, FileName, ";") > 0 Then
    varFiles = Split(FileName, ";")
  Else
    Redim varFiles(0)
    varFiles(0) = FileName
  End If
  For Each ffsoFile In ffsoFolder.Files
    If Not ffsoFile Is Nothing Then
      For intC = 0 To UBound(varFiles)
        If LCase(fobjFSO.GetFileName(ffsoFile)) Like LCase(varFiles(intC)) Then
          If IsArray(Files) Then
            Redim Preserve Files(UBound(Files) + 1)
          Else
            Redim Files(0)
          End If
          Set Files(UBound(Files)) = ffsoFile
          Exit For
        End If
      Next
    End If
  Next
  
  If SubFolders Then
    For Each ffsoSubFolder In ffsoFolder.SubFolders
      FileSearchINFO Files, ffsoSubFolder, FileName, SubFolders
    Next
  End If
  
  If IsArray(Files) Then FileSearchINFO = UBound(Files) + 1
  ErrExit:
  Set fobjFSO = Nothing
  Set ffsoFolder = Nothing
End Function


Private Function REGEXReplace(Text As String, Pattern As String, Optional Replace As String = "") As String
  Dim objRegEx As Object, objM As Object, objMC As Object
  
  Set objRegEx = CreateObject("VBScript.RegExp")
  With objRegEx
    .Pattern = Pattern
    .IgnoreCase = True
    REGEXReplace = .Replace(Text, Replace)
  End With
  
End Function



« Gruß Sepp »

Anzeige
AW: Fotos umbenennen
09.08.2011 20:12:37
Sebastian
Hallo Sepp,
das Makro funktioniert perfekt. Vielen Dank!
Jürgen, Dir auch Danke für den Vorschlag.
Viele Grüße
Sebastian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige