672 Aufrufe
Gefragt in Tabellenkalkulation von
Makro
(17 Hits)


Hallo

möchte in die Thematik Markro Programieren einsteigen. Mit aufzeichnen funktioniert das leider nicht!

Folgendes:
Habe in Spalte D Dateinamen stehen. (Leerzeilen dazwischen)
Bilder sind unter Ordner als .bmp gespeichert.

Nun sollte das Marko in die Zelle der Spalte D mit Eintrag das entsprechende Bild aus dem Ordner holen, ein Kommentarfeld einfügen, das Bild ins Kommentar eintragen, dabei den Haken Bildverhältnisse speeren aktiviere, Zellen unabhängig von Position markieren und zu guter letzt das Kommentarfeld in Größe 50 X 50 mm einstellen.


Kann mir hier jemand helfen?

Gruß

Uwe

1 Antwort

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Uwe,

schau mal, ob das Makro so funktioniert, wie du es dir vorstellst. Den Pfad musst du natürlich auf deine Verhältnisse anpassen:

Sub kommentar_mit_bild()

Dim strPfad As String
Dim strBild As String
Dim lnglZeile As Long
Dim lngZeile As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'Pfad anpassen
strPfad = "C:\Bilder\"

'letzte Zeile in Spalte D des aktiven Blatts ermitteln
lnglZeile = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row

For lngZeile = 1 To lnglZeile

'Nur wenn Zelle nicht leer ist, Kommentar mit Bild einfügen
If IsEmpty(ActiveSheet.Cells(lngZeile, 4).Value) = False Then

strBild = strPfad & ActiveSheet.Cells(lngZeile, 4).Value & ".bmp"

With ActiveSheet.Cells(lngZeile, 4)
.AddComment
.Comment.Visible = True 'Kommentar sichtbar; False für nicht sichtbar
.Comment.Text Text:="" 'Text löschen
With .Comment.Shape
.Fill.UserPicture strBild
.Width = 50 'Breite des Kommentarfeldes
.Height = 50 'Höhe des Kommentarfeldes
End With
End With

End If

Next lngZeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Gruß

M.O.
...