Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aufnahmedatum einer Bilde (jpg) Datei

Forumthread: Aufnahmedatum einer Bilde (jpg) Datei

Aufnahmedatum einer Bilde (jpg) Datei
23.01.2013 19:09:27
Pepi
Hallo zusammen
Ich würde gerne meine Bilder mit dem Aufnahmedatum beschriften - doch wie bekomme ich dieses Datum? Alle Beiträge die ich in Foren gefunden haben, nehmen das Erstelldatum - stimmt nicht. Sobald ich ein Bild in einen anderen Ordner kopiere, ändert sich das Erstelldatum auf JETZT! Im win-Explorer kann das Aufnahmedatum eingeblendet werden (auch unter Bildeigenschaften ersichtlich) - also muss es abgefragt werden können - wer kennt sich da aus? - bin sehr dankbar für einen Tip
mfg
Pepi

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufnahmedatum einer Bilde (jpg) Datei
24.01.2013 09:07:23
Pepi
Hallo Matze
Danke für den Typ - ich habe schon alles organisiert - es fehlt nur noch das Aufnahmedatum - die Lösung steckt vermutlich in folgendem Link:
http://www.microsoft.com/technet/scriptcenter/guide/sas_fil_lunl.mspx?mfr=true
Dort finde ich auch das nachfolgende Makro, das aber die Fehlermeldung "Blockvariable oder with-Blockvariable nicht festgelegt" ausgibt. Ich weiss nicht, was am Makro falsch ist.
Sub ShowDimensions()
Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Eigene Bilder\")
For Each objFile In objFolder.Items
' Alle Properties unter
' http: _
//www.microsoft.com/technet/scriptcenter/guide/sas_fil_lunl.mspx?mfr=true
Debug.Print objFolder.GetDetailsOf(objFile, 25)
Next
End Sub

mfg Pepi

Anzeige
Aufnahmedatum einer Bilde (jpg) Datei
24.01.2013 17:11:41
Anton
Hallo Pepi,
teste sowas (mit Vorsicht, da die Dateien umbenannt werden!):
Sub bilder_umbenennen()
Dim objShell As Object, objFolder As Object
Dim BrowseDir, varName, index As Integer, k As Integer
Dim strB As String, strName As String
Set objShell = CreateObject("Shell.Application")
Set BrowseDir = objShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
If Not BrowseDir Is Nothing Then
Set objFolder = objShell.Namespace(BrowseDir.items().Item().Path)
For k = 1 To 300
If objFolder.GetDetailsOf(, k) = "Aufnahmedatum" Then
index = k: Exit For
End If
Next
For Each varName In objFolder.items
If Right(LCase(varName.Path), 3) = "jpg" Then
For i = 1 To Len(objFolder.GetDetailsOf(varName, index))
strB = Mid(objFolder.GetDetailsOf(varName, index), i, 1)
If strB = " " Then Exit For
If IsNumeric(strB) Or strB = "." Then
strName = strName & Mid(objFolder.GetDetailsOf(varName, index), i, 1)
End If
Next
'Vorsicht, hier wird Datei umbenannt
varName.Name = varName & "_aufgenommen_am_" & Replace(strName, ".", "_")
strName = ""
End If
Next
Set objFolder = Nothing
End If
Set objShell = Nothing
End Sub

mfg Anton

Anzeige
AW: Aufnahmedatum einer Bilde (jpg) Datei
25.01.2013 11:52:09
Pepi
Vielen Dank Anton
Haber hier 'http://social.msdn.microsoft.com/Forums/en/isvvba/thread/471d0987-ed1e-438e-a561-9ce05c36a01f
auch einen Script gefunden, der Supper funktioniert - kann sehr viele Daten aus einer Bilddatei auslesen - suppersache - werden auch deinen Script demnächst mal test - vielen Dank
mfg
Pepi
Anzeige
Anzeige

Infobox / Tutorial

Aufnahmedatum einer JPG-Datei ermitteln und ändern


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Rechtsklicke im Projektfenster auf "VBAProject (Deine Arbeitsmappe)" und wähle "Einfügen" > "Modul".

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub ShowDimensions()
       Dim objShell As Object
       Dim objFolder As Object
       Dim objFile As Object
       Set objShell = CreateObject("Shell.Application")
       Set objFolder = objShell.Namespace("C:\Eigene Bilder\")
       For Each objFile In objFolder.Items
           Debug.Print objFolder.GetDetailsOf(objFile, 25) ' 25 steht für das Aufnahmedatum
       Next
    End Sub
  4. Pfad anpassen: Stelle sicher, dass der Pfad zum Ordner mit deinen JPG-Dateien korrekt ist.

  5. Makro ausführen: Führe das Makro aus, um das Aufnahmedatum der Bilder im Debug-Fenster anzuzeigen.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Blockvariable oder with-Blockvariable nicht festgelegt": Überprüfe, ob der angegebene Ordnerpfad richtig ist und ob der Zugriff auf die Dateien möglich ist.
  • Kein Aufnahmedatum angezeigt: Stelle sicher, dass die Bilder tatsächlich ein Aufnahmedatum im EXIF-Datenformat besitzen.

Alternative Methoden

  • Software nutzen: Verwende Programme wie Pixafe, um Bildeigenschaften auszulesen, ohne den Umweg über Excel zu gehen.
  • ExifTool verwenden: Ein leistungsfähiges Kommandozeilen-Tool, das EXIF-Daten aus JPG-Dateien auslesen und ändern kann.

Praktische Beispiele

Hier ist ein Beispiel für ein Makro, das das Aufnahmedatum im Dateinamen speichert:

Sub bilder_umbenennen()
    Dim objShell As Object, objFolder As Object
    Dim BrowseDir, varName, index As Integer, k As Integer
    Dim strB As String, strName As String
    Set objShell = CreateObject("Shell.Application")
    Set BrowseDir = objShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
    If Not BrowseDir Is Nothing Then
        Set objFolder = objShell.Namespace(BrowseDir.items().Item().Path)
        For k = 1 To 300
            If objFolder.GetDetailsOf(, k) = "Aufnahmedatum" Then
                index = k: Exit For
            End If
        Next
        For Each varName In objFolder.items
            If Right(LCase(varName.Path), 3) = "jpg" Then
                For i = 1 To Len(objFolder.GetDetailsOf(varName, index))
                    strB = Mid(objFolder.GetDetailsOf(varName, index), i, 1)
                    If strB = " " Then Exit For
                    If IsNumeric(strB) Or strB = "." Then
                        strName = strName & Mid(objFolder.GetDetailsOf(varName, index), i, 1)
                    End If
                Next
                varName.Name = varName & "_aufgenommen_am_" & Replace(strName, ".", "_")
                strName = ""
            End If
        Next
        Set objFolder = Nothing
    End If
    Set objShell = Nothing
End Sub

Tipps für Profis

  • Sicherung der Dateien: Bevor Du das Skript zur Umbenennung verwendest, erstelle eine Sicherungskopie der JPG-Dateien, um Datenverlust zu vermeiden.
  • Zusätzliche Eigenschaften: Du kannst auch andere Bildeigenschaften wie "Kameramodell" oder "Belichtungszeit" abfragen, indem Du den entsprechenden Index in der GetDetailsOf-Methode änderst.

FAQ: Häufige Fragen

1. Was ist eine JPG-Datei?
Eine JPG-Datei ist ein beliebtes Bildformat, das zur Speicherung von digitalen Bildern verwendet wird. Es nutzt eine verlustbehaftete Kompression, um die Dateigröße zu reduzieren.

2. Wie kann ich das Aufnahmedatum einer JPG-Datei ändern?
Du kannst das Aufnahmedatum nicht direkt ändern, aber Du kannst den Dateinamen anpassen, um das Datum zu reflektieren, indem Du ein VBA-Skript verwendest, wie im oben genannten Beispiel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige