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

VBA: Fehler bei Bildeinfügung

VBA: Fehler bei Bildeinfügung
17.10.2017 11:59:25
Daniel
Hallo,
ich sitze an einer Tabelle die nach Eingabe einer Nummer Bilder einfügt.
Vom Prinzip hab ich das Ganze mit meinen quasi nicht vorhandenen VBA-Kenntnissen auch hinbekommen, leider gibt es aber noch einige Fehler/Schwachstellen die ich gerne ausbügeln würde.
Grobes Prinzip: Man kann in die Zellen B3:B6 eine Zeichenkombination eingeben wodurch im Tabellenblatt die zugehörigen Bilder an bestimmten Positionen eingefügt werden (die jeweiligen Bildlinks holt sich das Makro aus den Zellen D1:G1).
Soweit so gut, das habe ich mit 2 Modulen hinbekommen.
Nun aber treten folgende Fehler auf:
-Schreibt man etwas in die Zellen B3:B6, wird der Fehler 13 gemeldet ("Typen unverträglich")
Nach beenden des Debuggers und erneuter Eingabe wird das Bild dann allerdings eingefügt.
-Löscht man einen der Einträge aus B3:B6, kommt Laufzeitfehler 1004 ("Die Insert-Eigenschaft des Picture-Objects kann nicht zugeordnetet werden")
-Sind beispielsweise die Felder B3:B5 schon ausgefüllt und man fügt etwas in B6 ein wird jedes Bild viermal eingefügt.
Wünschenswert wäre es zusätzlich, dass die Bilder gelöscht werden, sobald in der jeweiligen B3:B6-Zelle nichts steht. Ich habe gelesen dass sowas prinzipiell mit "ActiveSheet.Pictures.Delete" möglich ist - habe aber keine Ahnung wo und wie ich das in meine Makros einbauen müsste.
Ich habe mal beispielhaft eine kleine Mappe angefügt, in der das Prinzip deutlich wird.
Hier noch die beiden Makros als Text:
Steht direkt in der Tabelle:
rivate Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("G2") Then Call Bildvariabel
If Target = Range("G3") Then Call Bildvariabel
If Target = Range("G4") Then Call Bildvariabel
If Target = Range("G5") Then Call Bildvariabel
End Sub

Als Modul:

Sub Bildvariabel()
Dim url
Dim urla
Dim urlb
Dim urlc
Sheets("Start").Select
url = Range("D1").Value
urla = Range("E1").Value
urlb = Range("F1").Value
urlc = Range("G1").Value
ActiveSheet.Pictures.Insert(url).Select
With Selection
.top = Range("B13").top
.left = Range("B13").left
.Width = Range("A1:O1").Width
.height = .Width * 3 / 3
End With
ActiveSheet.Pictures.Insert(urla).Select
With Selection
.top = Range("X13").top
.left = Range("X13").left
.Width = Range("A1:O1").Width
.height = .Width * 3 / 3
End With
ActiveSheet.Pictures.Insert(urlb).Select
With Selection
.top = Range("B61").top
.left = Range("B61").left
.Width = Range("A1:O1").Width
.height = .Width * 3 / 3
End With
ActiveSheet.Pictures.Insert(urlc).Select
With Selection
.top = Range("X61").top
.left = Range("X61").left
.Width = Range("A1:O1").Width
.height = .Width * 3 / 3
End With
End Sub

Ich kann mir im Grunde denken wo meine logischen Fehler liegen, bin aber schlicht nicht imstande das Ganze durch meine Kenntnisse zu korrigieren. Für jede HIlfe bin ich äußerst dankbar!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Crossposting ohne Hinweis
17.10.2017 12:04:46
Werner
Hallo Daniel,
würdest du bitte deine Beiträge in den verschiedenen Foren untereinander verlinken.
Gruß Werner
AW: Crossposting ohne Hinweis
17.10.2017 12:39:40
Daniel
Dafür bitte ich um Entschuldigung, ich bin mit einer solchen Forenstruktur nicht vertraut. Kannst du mir verraten wie ich das Thema an seinen richtigen Platz schieben kann?
Gruß
Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige