Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bildgröße in Pixeln auslesen, Excel 2000

Bildgröße in Pixeln auslesen, Excel 2000
24.02.2007 22:04:05
Kasimir
Hallo an alle!
Ich habe da mal eine Frage, zu einem Makro, dass ich zum Teil in der Recherche gefunden habe. Mit nachfolgendem Makro kann ich aus einem Bild, die Eigenschaften und hier speziell die Breite und Höhe in Pixelangaben, auslesen. Nun ist mir aber aufgefallen, dass dieser Code in Excel 2000 so nicht funktioniert.
Option Explicit
Sub Bildeigenschaften()
Dim Drive As String, Pfad As String
Dim objShell As Object, objFolder As Object
Dim varName As Object, Breite As Variant, Höhe As Variant
Dim sPath As Variant, sFile As String
Dim Bild As Variant
Drive = Left(ThisWorkbook.Path, 2)
Pfad = "C:\"
ChDrive (Drive)
ChDir (Pfad)
Bild = Application.GetOpenFilename( _
"Bilddateien (*.JPG), *.xls, Alle Dateien (*.*), *.*", 1, _
"Bild auswählen...", MultiSelect:=False)
If Bild = "" Or Bild = False Then Exit Sub
If Right(Bild, 3) <> "jpg" Then Exit Sub
If Bild = False Then Exit Sub
sFile = Dir(Bild)
sPath = Replace(Bild, sFile, "")
sPath = Left(sPath, Len(sPath) - 1)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(sPath)
For Each varName In objFolder.Items
If varName = sFile Then
Breite = objFolder.GetDetailsOf(varName, 27)
Höhe = objFolder.GetDetailsOf(varName, 28)
Exit For
End If
Next
Breite = CInt(Mid(Breite, 1, InStr(1, Breite, " ") - 1))
Höhe = CInt(Mid(Höhe, 1, InStr(1, Höhe, " ") - 1))
MsgBox Breite & " , " & Höhe

Das Problem ist, dass mir der Code in Excel 2003 die Breite und Höhe ausgibt. In Excel 2000 leider nicht. Es kommt zu einem Laufzeitfehler 91 und die Zeile
For Each varName In objFolder.Items
wird gelb markiert. Weiß jemand, warum das so ist?
Danke Euch,
Kasimir

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bildgröße in Pixeln auslesen, Excel 2000
24.02.2007 22:40:02
Jörg
Hi,
geht in Excel 2000 ohne problem.
mfg Jörg
AW: Bildgröße in Pixeln auslesen, Excel 2000
24.02.2007 23:32:23
Kasimir
Hallo Jörg,
danke Dir für Deine Antwort. Bei mir funktionierts leider nicht. Ich habe das Makro mal auf einem anderen Rechner ausprobiert, aber ebenfalls unter Excel 2000. Dort erhalt ich einen Fehler in den Zeilen
Breite = CInt(Mid(Breite, 1, InStr(1, Breite, " ") - 1))
Höhe = CInt(Mid(Höhe, 1, InStr(1, Höhe, " ") - 1))

Das liegt aber scheinbar daran, das die Variablen Breite und Höhe keine Werte erhalten und daher kann in den Werten auch nicht nach einem Leerzeichen gesucht werden. Weiß jemand, warum die variablen leer sind.
Danke Euch,
Kasimir
Anzeige
AW: Bildgröße in Pixeln auslesen, Excel 2000
24.02.2007 23:53:59
Jörg
Hi,
wenn
Breite = CInt(VBA.Mid(Breite, 1, InStr(1, Breite, " ") - 1))
Höhe = CInt(VBA.Mid(Höhe, 1, InStr(1, Höhe, " ") - 1))
funktioniert, stimmt was mit den Verweisen nicht, ggf. neu setzen.
mfg Jörg
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 00:03:42
Kasimir
Hallo Jörg,
danke Dir für die Antwort. Das mit den Verwiesen kann ich mir nicht vorstellen, da es definitiv daran liegt, dass die Variablen keinen Wert enthalten. Da die Instr-Methode nicht nach einen Leeerzeichen suchen kann, erscheint der Fehler. Mein Problem ist es nun, warum ernthalten die Variablen keinen Wert.
Gruß Kasimir
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 08:56:05
ransi
Hallo Kasimir
Evtl. liegt es an der GROß und kleinschreibung:
If LCase(Right(Bild, 3)) <> "jpg" Then Exit Sub

Dann hättest du das auch schon mal ausgeschlossen...
ransi
Anzeige
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 09:18:11
Kasimir
Morgen ransi,
danke Dir für Deine Antwort. Auch wenn ich Deine Zeile in mein Makro kopiere, bleiben die Variablen Breite und Höhe ohne Wert. Komisch ist nur, dass ja scheinbar bei anderen das Makro funktioniert, jedenfalls nach Rückmeldung von Jörg. Ich habe es auf zwei Rechnern mit Office 2000 probiert und es funktioniert auf beiden Rechnern nicht.
Gruß,
Kasimir
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 09:28:17
ransi
HAllo Kasimir
Werden denn in Spalte AB btw. AC die Breiten und Höhen gelistet ?
Sub Dateieigenschaften()
    'von k.rola
    Const STRFOLDER As String = "d:\Eigene Dateien" 'anpassen
    Dim objShell As Object
    Dim objFolder As Object
    Dim x As Byte
    Dim spalte As Integer
    Dim zeile As Long
    Dim varName, arrHeaders(34)
    If Dir(STRFOLDER, 16) = "" Then
        MsgBox "Der Ordner " & STRFOLDER & " wurde nicht gefunden!" & Space(10), 64, "weise hin..."
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(STRFOLDER)
    spalte = 1
    For x = 0 To 33
        arrHeaders(x) = objFolder.GetDetailsOf(varName, x)
        Cells(1, spalte + x) = arrHeaders(x)
    Next
    Rows(1).Font.Bold = True
    zeile = 2
    For Each varName In objFolder.Items
        For x = 0 To 33
            Cells(zeile, spalte + x) = objFolder.GetDetailsOf(varName, x)
        Next
        zeile = zeile + 1
    Next
    Columns.AutoFit
    Application.ScreenUpdating = True
End Sub

ransi
Anzeige
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 09:44:41
Kasimir
Hallo ransi,
nein, dort werden keine Bilddaten gelistet. Komisch ist, dass ich das Makro mal auf OfficeXP mit Excel 2003 getetstet habe. Dort wird mir in den Spalten AA und AB die Größen angezeigt. In Zeile 1 in Spalte AA steht die Überschrift "Abmessungen". Wenn ich dass jetzt mal auf dem anderen Rechner teste, auf dem Office2000 und Windows 2000 installiert ist, erhalte ich keine Werte in den Spalte AA und AB. Die Überschriften in den Spalte AA und AB sind aber völlig anders. Dort steht in AA die Überschrift "Sendezeit" und in AB "Anruferkennung". Hängt das eventuell mit dem Betriebssystem zusammen?
Gruß,
Kasimir
Anzeige
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 09:59:58
ransi
Hallo
Werden denn unter Win 2000 die gesuchten Werte überhaupt irgendwo im Explorer gelistet ?
ransi
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 11:12:08
Kasimir
Hallo ransi,
ja, wenn ich in den Eigenschaften eines Bildes im Register "Dateiinfo" schaue, dann wird dort eine Breite und eine Höhe angezeigt.
Danke und Gruß,
Kasimir
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 12:57:05
schauan
Hallo Kasimir,
lasse Dir mal alle Eigenschaften auflisten. Es kann sein, dass sie in 2000 unter anderen Nummern liegen.
Hoffe geholfen zu habenGrüße von André aus Gera - Excel-97-2003

Anzeige
AW: Bildgröße in Pixeln auslesen, Excel 2000
25.02.2007 13:08:26
Kasimir
Hallo André,
danke Dir für Deine Antwort. Das habe ich ja bereits mit dem Makro von ransi überprüft. Nur leider werden mir dort keine Höhe oder Breite aufgelistet. Aber in den Eigenschaften der Bilder stehen die Höhen und die Breiten.
Gruß,
Kasimir
EXIF
25.02.2007 13:33:23
ransi
Hallo Kasimir
Keine Höhe oder Breite.
Wie sieht es mit "Abmessungen" aus ?
Option Explicit

Sub Dateieigenschaften()
    Dim objShell As Object
    Dim objFolder As Object
    Dim x As Byte
    Dim varname
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace("C:\")
    For x = 0 To 50
        Debug.Print objFolder.GetDetailsOf(varname, x)
    Next
End Sub

Wenn das alles nichts hilflt, weiss ich nix mehr.
Ausser du googlst mal nach EXIF.
ransi
Anzeige
AW: EXIF
25.02.2007 13:43:25
Kasimir
Hallo ransi,
danke Dir für Deine Antwort. Wenn ich das Makro starte, was muss dann passieren? Bei mir tut sich im Moment nichts. Ich habe in der Zeile
Set objFolder = objShell.Namespace("C:\")
einen Pfad angegeben, in dem sich Bilder im mit der Endung ".jpg" befinden. Ist das richtig?
Danke und Gruß,
Kasimir
AW: EXIF
25.02.2007 13:48:35
ransi
HAllo
Schau mal ins Direktfenster.
DA sollte jetzt gelistet werden welche Dateieigenschaften die dur im Explorer (Nicht Rechte Maus auf Datei -Eigenschaften-Register Dateiinfo) anzeigen lassen kannst.
ransi
AW: EXIF
25.02.2007 14:27:37
Kasimir
Hallo ransi,
nein, dort werden die Bildmaße auch nicht angezeigt. Dabei ist mir jetzt aufgefallen, dass im Explorer die Maße doch nicht angezeigt werden. ich erhalte nur Maße, wenn ich eine Bilddatei mit der rechten Maustaste anklicke und dann auf den Registerreiter "Dateiinfo" wechsele. Dort werden mir die Pixelangaben angezeigt. Aber im Explorer selber kann ich diese, anders als bei WindowsXP im Explorer, nicht anzeigen lassen.
Gibt es da noch eine Chance, an die Bildmaße heran zu kommen und zwar sowohl bei Betriebssystem Windows 2000 als auch bei Windows XP?
Danke und Gruß,
Kasimir
Anzeige
Win2000 Problem ??
25.02.2007 15:02:50
ransi
Hallo Kasimir
Ich versuche mal zusammenzufassen:
Unter WinXP kann man sich im Explorer die Abmessungen, die Breite und die Höhe eines .jpg anzeigen lassen. Diese Werte kan man mit VBA auslesen.
Ausserdem sind in der Registerkarte Dateiinfo die gleichen Infos.
Unter Win2000 werden die Infos nicht im Explorer gezeigt.
Möglicherweise wird das da noch nicht unterstützt...
Dafür aber auch in der Registerkarte DateiInfos.
Wie man an diese Werte herankommt weiss ich nicht.
ransi
AW: Win2000 Problem ??
25.02.2007 15:59:47
schauan
Hallöchen,
dann schaue mal hier:
http://www.office-loesung.de/ftopic89707_0_0_asc.php
Hoffe geholfen zu habenGrüße von André aus Gera - Excel-97-2003

Anzeige
AW: Win2000 Problem ??
25.02.2007 17:25:06
Kasimir
Hallo André,
danke Dir für Deine Antwort. Leider erhalte ich auch bei dem von Dir geposteten Makro einen Laufzeitfehler 438 und die Zeile
With Application.FileDialog(msoFileDialogFilePicker)
wird gelb markiert. Muss für das Makro ein ganz spezieller Veweis gestezt sein?
Gruß,
Kasimir
AW: Win2000 Problem ??
25.02.2007 17:41:30
Jan
Hi,
Filedialog gibt es erst ab Excel 2002,
verwende Application.GetOpenFilename
mfg Jan
AW: Win2000 Problem ??
25.02.2007 19:48:12
Kasimir
Hallo an alle!
Jetzt funktionierts. Mit dem Makro aus dem Link von André und den Tipp von Jan, anstelle von Application.FileDialog(msoFileDialogFilePicker) mit Application.GetOpenFilename zu arbeiten, funktionierts bei Windows 2000 & Excel 2000, sowie bei Windows XP & Excel 2000 und logischerweise auch unter Windows XP und Excel 2003. Somit ist dank Eurer Mithilfe die Aufgabe zu 100% gelöst.
Nochmal einen herzliches Dankeschön an alle, die mir gehoöfen haben.
Gruß,
Kasimir
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige