Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel: Grafik automatisch in Kommentar einfügen





Frage

Hallo! Ich habe vor einiger Zeit einen Tipp im Internet gefunden, womit ich in den Kommentar einer Excel-Zelle eine Grafik einfügen kann. Den schraffierten Rand des Kommentarfeldes mit rechter Maustaste anklicken, "Kommentar formatieren" aufrufen, den Reiter "Farben und Linien" auswählen, dann "Farbe", dann "Füllefekt", dort den Reiter "Grafik" und dann die Grafik wählen und OK. Wie kann ich das automatisieren? Ich habe schon versucht, ein Makro aufzuzeichnen. Da habe ich den Namen der Grafik (z.B. "20051103(2).jpg") ohne die Dateierweiterung als Inventarnummer in die Tabelle eingepflegt, die Zelle ausgewählt, den Inhalt kopiert, die oben genannten Schritte durchgeführt und als Pfad der Grafik in etwa so eingegeben: "Verzeichnis\Inventarnummer.jpg". Das sieht so aus: Sub Makro6() ´ ´ Makro6 Makro ´ Makro am 23.03.2006 aufgezeichnet ´ ´ Range("A3").Select Range("A3").AddComment Range("A3").Comment.Visible = False Range("A3").Comment.Text Text:="" With Selection.Font .Name = "Tahoma" .FontStyle = "Fett" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0) Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255) Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255) Selection.ShapeRange.Fill.BackColor.SchemeColor = 80 Selection.ShapeRange.Fill.UserPicture _ "G:\Laura\Riesi\Inventarfotos\Inventarnummer001.jpg" Range("A3").Select End Sub Das klappt aber nur für diese Zelle und immer unter dem gleichen Pfad. Der unter: Selection.ShapeRange.Fill.UserPicture Irgendwie muss das standartisiert werden. Nämlich den Zelleninhalt (also die Inventarnummer) kopieren bzw. auslesen und in eine Variable und dann als Teil des Pfades für die Grafik verwenden. Kurzum: Der Inhalt der aktuell gewählten Zelle, auf die ich das Makro anwende, soll der Pfadname +".jpg" für das Einfügen der Grafik sein. So weit bin ich. So in etwa hab ich das damals in der Schule in Delphi gemacht. Aber mit VBA hab ich nix am Hut, ich kenn die Befehle nicht. Kennt da jemand Abhilfe? Viele Grüße, Stephan

Antwort 1 von fürLau

Hallo

Versuch´ so:

Option Explicit

Private Sub CommandButton1_Click()
ActiveCell.AddComment
ActiveCell.Comment.Shape.Fill.UserPicture _
 "G:\Laura\Riesi\Inventarfotos\" & ActiveCell.Value & ".jpg"
End Sub


Gruß

Antwort 2 von stephan92384

SUPER!

So einfach geht das? Klasse! :-)

Nach entfernen von "private" und dem Geschmacksmäßigen umbenennen des Namens läuft es.

Vielen Dank!

Antwort 3 von stephan92384

Jetzt noch eine Abwandlung:

Ich bin in Spalte A, Zeile xy.
In Spalte K, gleiche Zeile xy steht die Fotonummer.

Wie kann ich in den Kommentar von (A,xy) das Foto mit der Nummer aus (K,xy) einfügen?

ActiveCell bezeichnet die aktuell markierte Zelle. Diese ist die mit der Bezeichnung.
Jetzt muss ich in der oben angegebenen Syntax ActiveCell.Value ersetzen mit dem Wert der Zelle in Spalte K derselben Zeile wie die aktive Zelle.

Wie geht das?
(das war´s dann auch :-))

Danke!
Stephan

Antwort 4 von fürLau

Hallo Stephan

Das wär´ dann:

ActiveCell.Comment.Shape.Fill.UserPicture _
"G:\Laura\Riesi\Inventarfotos\" & ActiveCell.offset(0,10).Value & ".jpg" 


Gruß

Antwort 5 von stephan92384

Klasse!

Vielen Dank! :-)