*,jpg in UserForm anzeigen?

Keine ner Idee? :frowning:(
Schaut fast so aus

Schade.

Gruß Rolf

Schaut fast so aus

Schade.

Hallo Rolf,

ich habe den Überblick verloren (Naja, hab manchmal auch Lesehemmungen bei langen Beitragsfolgen :smile:) ), was genau geht denn jetzt nicht?
Welche Grafikformate genau.

Als eine Idee diese, wenn VbA ein Grafikformat nicht anzeigen kann , z.B. .tif, dann am besten ein batchprogrammierungsgeeignetes Kommandozeilenprogramm suchen und finden was man dann so aufruft:

Mache=shell(tif2jpg.exe C:\Meinbild.tif c:\Meinbild.jpg)

Gruß
Reinhard

Moin,

hmmmm, eigentlich wollte ich s nicht so „umstĂ€ndlich“ haben.
Man kann ja auch n Exce oder doc „einfach“ öffnen.
Deshalb dachte ich mir, kanns ja mitn Bild oder dergleichen ned schwieriger sein.

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Hallo Rolf,

sorry das es ein wenig gedauert hat. Aber auf die Lösung haettest du auch selber kommen koennen. Einfach mein Bsp. nehmen und ein paar kleine Änderungen rein und schwups dann sollte es klappen :smile:

hier mal meine Suche -->

Ok, dann schmeissen wir die raus aus dem Demo :smile:

Das Ergebnis wird mir - wie gesagt in der Listbox angezeigt
und ich kann dann die Ordner öffnen -->

Die Ordner konnte man in dem Demo auch schon vorher öffnen :smile:

Probiere das mal so :smile:

Option Explicit


Private Sub LoadImg()
Dim Path As String
Dim Pic As String
If ListBox1.ListIndex = -1 Then
 MsgBox "Keine Eintraege vorhanden!", vbCritical
 Exit Sub
End If
Path = Left(ListBox1.List(ListBox1.ListIndex), InStrRev(ListBox1.List(ListBox1.ListIndex), "\"))
If Not (FileExists(Listbox1.List(Listbox1.ListIndex))) Then
 MsgBox "BildDatei wurde nicht gefunden!"
 Exit Sub
Else
'Hier die Extension prĂŒfen und ggfls. Meldung anzeigen
 Label1.Caption = Path
 Image1.Picture = LoadPicture(Listbox1.List(Listbox1.ListIndex))
 Shell "explorer.exe /e," & Path, vbNormalFocus
End If
End Sub

Private Function FileExists(sFile As String)
On Error Resume Next
Dim x As Integer
x = GetAttr(sFile)
FileExists = Err.Number = 0
End Function

Private Sub ListBox1\_Click()
 Call LoadImg
End Sub

Wie du siehst sind nur minimale Änderungen von nöten gewesen :smile:

MfG Alex

PS: Ist ungetestet da ich kein Office Kram installiert habe und auch nur .NET drauf hab :smile: sollte aber klappen

1 Like

Ok, Hallo,

ja, das schaut so sehr fein aus.
Er öffnet zwar noch nichts, aber zumindest keine Meldung bezĂŒglcih - Objekt fehlt und so.

Ich check das mal noch n bischen durch.

Ich danke dir schon mal

Gruß Rolf

Option Explicit

Private Sub LoadImg()
Dim Path As String
Dim Pic As String
If ListBox1.ListIndex = -1 Then
MsgBox „Keine Eintraege vorhanden!“, vbCritical
Exit Sub
End If
Path = Left(ListBox1.List(ListBox1.ListIndex),
InStrRev(ListBox1.List(ListBox1.ListIndex), „“))
If Not (FileExists(Listbox1.List(Listbox1.ListIndex))) Then
MsgBox „BildDatei wurde nicht gefunden!“
Exit Sub
Else
'Hier die Extension prĂŒfen und ggfls. Meldung anzeigen
Label1.Caption = Path
Image1.Picture =
LoadPicture(Listbox1.List(Listbox1.ListIndex))
Shell „explorer.exe /e,“ & Path, vbNormalFocus
End If
End Sub

Private Function FileExists(sFile As String)
On Error Resume Next
Dim x As Integer
x = GetAttr(sFile)
FileExists = Err.Number = 0
End Function

Private Sub ListBox1_Click()
Call LoadImg
End Sub

Wie du siehst sind nur minimale Änderungen von nöten gewesen

)

MfG Alex

PS: Ist ungetestet da ich kein Office Kram installiert habe
und auch nur .NET drauf hab :smile: sollte aber klappen

Ok, Hallo,

ja, das schaut so sehr fein aus.
Er öffnet zwar noch nichts, aber zumindest keine Meldung
bezĂŒglcih - Objekt fehlt und so.

Was öffnet er denn nicht? Gehe ansonsten mal das Makro im Debug Modus durch und prĂŒfe mal die Variablen und deren Werte.

Ich check das mal noch n bischen durch.

Ich danke dir schon mal

Nichts zu danken :smile:

MfG Alex

Servus,

er lÀuft durch, der Pfad zum Bild samt Bild-Name + extension passt.
Aber im Image1 wird mir nichts angezeigt. :frowning:((

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Hallo Rolf

er lÀuft durch, der Pfad zum Bild samt Bild-Name + extension
passt.
Aber im Image1 wird mir nichts angezeigt. :frowning:((

Die Function Fileexists lÀuft durch und liefert dir ein True zurueck?
Tausche mal zu Testzwecken das Bild gegen ein anderes aus.
Das muss eigentlich funktionieren.
Hab das heute mal meiner Madame geschickt und da klappte es wunderbar.

Wie hast du denn das image1 eingestellt?

MfG Alex

Moin Anno,

das Image1 hab ich in der Userform erstellt.
Was er zurĂŒckliefert weĂ­ss ich nicht, er zeigt mir nichts an

Das mit dem Test könnt ich mal checken.

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Ups - ett löfft!
Hallo,

doch es war das falsche Bild. Hab mal n jpg genommen und das funtzt-noch kein tiff - aba das bekomm ich irgendwie hin
Super Danke dir!

Gruß Rolf!

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Hallo Rolf,

also wenn du das himbekommst ziehe ich meinen Hut vor dir!
Soweit ich weiss, gibt es keine Möglichkeit ein Bild im Format Taget Image (*.tif) in VB darzustellen.

Aber soll dein Tool nur bei dir laufen oder auch auf anderen Rechnern?

Sollte es nur bei dir laufen. Dann fallen mir spontan 2 Möglichkeiten ein.

Wenn du Infran View installiert hast dann kannst du es darueber via VB umcodieren nach jpg und das dann anzeigen.

'Convert via IrfanView
Sub Convert()
 Dim myCom As String
 Dim srcFile As String, dstFile As String
 srcFile = Dein Tif Bild
 dstFile = Dein AusgangsBild
 'IV ist der Pfad zu IrfanView
 myCom = IV & " " & srcFile & " /convert=" & dstFile
 Shell (myCom)
End Sub

2 Möglichkeit.

Du hast Office installiert, speziell Excel.
Excel kann Tif Image anzeigen. Starte einfach eine Instanz von Excel
(das koennt ich dir noch sagen *g)
FĂŒge dort das Bild ein(Das koennte dir evtl. Reinhard sagen)
Danach fĂŒhre folgenden source aus

Sub Convert()
 Dim myChartObject As ChartObject, myShape As Shape
 Dim bolfound As Boolean
 Application.ScreenUpdating = False
 For Each myShape In ActiveSheet.Shapes
 If myShape.Type = msoPicture Then bolfound = True: Exit For
 Next
 If bolfound Then
 myShape.CopyPicture Appearance:=xlScreen, Format:=xlPicture
 Worksheets.Add
 Set myChartObject = ActiveSheet.ChartObjects.Add(0, 0, myShape.Width, myShape.Height)
 With myChartObject
 .Activate
 .Chart.Paste
 .Chart.Export Filename:=Dein Ausgangsfile", FilterName:="JPG", Interactive:=False
 End With
 Application.DisplayAlerts = False
 ActiveSheet.Delete
 Application.DisplayAlerts = True
 Set myChartObject = Nothing
 Set myShape = Nothing
 Application.ScreenUpdating = True
 End If
End Sub

Hast du beides nicht installiert. So muesstest du den Haeder der Datei auslesen und dann das Bild auslesen und selber Konvertieren, was aber ein Heiden Aufwand ist!

MfG Alex

Hi,

lass deinen Hut (vorerst) mal auf :smile:)

Das mit Excel bringt mich ned weiter - da ich diesen „Umweg“ nicht wollte. Ich war auch auf der Richtung Umkonvertieren. Komm aber leider momentan zu garnienichts :frowning:( Werd mich am Wochenende wieder dranmachen.

Gruß Rolf