Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1744to1748
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

Bilder mit VBA in Excel darstellen

Bilder mit VBA in Excel darstellen
05.03.2020 13:13:12
Wolfgang
Hallo zusammen.
Ich hoffe, dass mir - als absoluter Anfänger bei VBA - hier weitergeholfen werden kann.
Folgendes Problem:
Ich würde gerne einen Steckbrief einer Immobilie erstellen. Neben den Daten wie Laufzeit, Miete, usw. soll ein Luftbilder der Immobilie angezeigt, welches ich vorher auf dem Server abspeicher. Jede Immobilie ist durch eine 6-stellige Ziffer eindeutig zu erkennen. Die Bilder heißen genau wie die Immobilie. D.H: Bei Immobilie 123456 heußt die Bilddatei 123456.png.
Jetzt hätte ich gerne, dass wenn ich die Zeile B1 die 6-stellige Ziffer der Immobilie eintragen, das entsprechende Bild der Immobilie daneben erscheint. Wenn ich eine neue Ziffer eingebe, soll das alte Bild verschwinden und das neue angezeigt werden.
Bildorder: C:\Users\wsteinha\Desktop
Ich würde mich freuen, wenn mir jemand weiterhelfen kann. Ich konnte auch nach langer Suche im Netz keinen passenden Text für ein Makro gefinden.
Vielen Dank vorab.
Wolfgang

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder mit VBA in Excel darstellen
05.03.2020 13:30:04
Joachim
Hallo,
ich hab ein ähnliches Problem wie folgt gelöst:
In dem Register, in dem Du das Bild haben willst fügst Du mit der Kamera ein Bild von deinem Bild ein. Dann hab ich über VBA den Bereich, den das Bild darstellt auf den Bereich gesetzt, in dem das Bild ist, das ich haben will. Setzt aber voraus, dass Du alle Bilder in die Exceldatei lädst.
Ansonsten würde ich mir den Makrorecorder nehmen, das Laden eines Bildes aufzeichnen und den Code dann so abändern, dass VBA das passende Bild lädt.
Hoffe das hilft Dir
Gruß
AW: Bilder mit VBA in Excel darstellen
05.03.2020 13:59:46
Wolfgang
Vielen Dank für die schnelle Rückmeldung.
Die erste Idee hilft mir leider nicht. Es sind meherere hundert Immobilien und entsprechend viele Bilder.
Der zweite Weg, den du genannt hast, wäre der, den ich mir vorstelle. Ich hatte die Hoffnung, dass jemand auf die schnelle einen entsprechenden Text kennt. Ich hatte mit dem Makrorecorder versucht, habe es dann aber nicht die Abhängigkeit zu der Zelle herzustellen :(
Viele Grüße
Anzeige
AW: Bilder mit VBA in Excel darstellen
05.03.2020 13:58:20
JoWE
Hallo Wolfgang,
hier ein Beispiel, Du musst die Pfadangaben noch anpassen.
Ich habe es mit "jpg's" getestet.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myPath As String, myPic As String
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.Delete
Next shp
myPath = "C:\myPath\trainings\"
If Target.Column = 2 And Target.Value  "" Then
On Error GoTo 0
myPic = myPath & Range(Target.Address).Value
With ActiveSheet.Pictures.Insert(myPic)
.Left = 150
.Top = 80
'.Width = 123
'.Height = 134
End With
End If
End Sub

Gruß
Jochen
Anzeige
@JoWe: Range(Target.Address)
05.03.2020 16:58:28
Rudi
Hallo,
wozu erst die Adresse eines Ranges ermitteln, um dann daraus einen Range zu erstellen?
myPic = myPath & Target.Value
reicht völlig aus. Selbst .Value kannst du dir sparen.
myPic = myPath & Target
Und warum SelectionChange?
Außerdem bezieht sich dein Code auf alle Zellen in B
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myPath As String, myPic As String
Dim shp As Shape
myPath = "C:\Users\wsteinha\Desktop\"
If Target.Address = "$B$1" Then 'geänderte Zelle ist B1
If Target  "" Then          'nicht leer
'Bild in C1 löschen
For Each shp In ActiveSheet.Shapes
If shp.TopLeftCell.Address = "$C$1" Then
shp.Delete
End If
Next shp
myPic = myPath & Target & ".png"
If Len(Dir(myPic)) Then 'Bild ist vorhanden
With ActiveSheet.Pictures.Insert(myPic)
.Left = Range("C1").Left
.Top = Range("C1").Top
'.Width = 123
'.Height = 134
End With
Else
MsgBox "Bild nicht vorhanden", , "Gebe bekannt..."
End If
End If
End If
End Sub
Gruß
Rudi
Anzeige
ja so geht's auch - war ne heiße Nadel...
05.03.2020 17:09:34
JoWE
...so zwischendurch gehudelt :-)
Gruß
Jochen
AW: ja so geht's auch - war ne heiße Nadel...
06.03.2020 11:06:13
Wolfgang
Das ist ja der Knaller. @ Rudi: es funktioniert einwandfrei. Vielen herzlichen Dank für eure Hilfe. Ihr seid echt der Knaller.
Schönes Wochenende.
Wolfgang

162 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige