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:
Gruß
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!
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
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:
Gruß
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! :-)
Vielen Dank! :-)

