(vorhandenen) Bild-Import in TXT-Import abwandeln
24.12.2006 01:54:40
Max
Ich besitze bereits ein sehr gutes Makro mit dem ich Bilder aus einem vordefiniertem Unterordner (Name z.b.: "Bilderordner") in dem sich die xls befindet als Kommentartextur einfügen kann.
Der Effekt ist, dass das Bild erscheint sobald man mit der maus über die Zelle fährt.
Die Rahmengrösse des Kommentars paßt sich dabei automatisch den Bilddimensionen an, so das es nicht verzerrt wird.
Zum Einfügen muss eine Zelle in Spalte 5 als Inhalt den Namen der Bilddatei besitzen, zb "Testbild.jpg". Klickt man diese Zelle nun doppelt wird das Bild automatisch als Kommentar(hintergrund) eingefügt. Bei erneutem Doppelklick wird der Kommentar wieder gelöscht.
hier mal das Makro:
------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim pct As Picture
Dim cmt As Comment
Dim sPath As String
If Target.Column <> 5 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
If Not Target.Comment Is Nothing Then
Target.Comment.Delete
Exit Sub
End If
sPath = ThisWorkbook.Path & "\Bilderordner\"
If Dir(sPath & Target.Value) = "" Then
Beep
MsgBox "Bilddatei wurde nicht gefunden!"
Exit Sub
End If
Set pct = ActiveSheet.Pictures.Insert(sPath & Target.Value)
Set cmt = Target.AddComment
With cmt.Shape
.Width = pct.Width
.Height = pct.Height
With .Line
.DashStyle = msoLineSolid
.Style = msoLineSingle
.Transparency = 0#
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 0, 0)
.BackColor.RGB = RGB(255, 255, 255)
End With
With .Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 255)
.BackColor.SchemeColor = 80
.Transparency = 0#
.UserPicture sPath & Target.Value
End With
End With
pct.Delete
Application.ScreenUpdating = True
End Sub
------------------------------------
Ich möchte nun etwas viel simpleres sagen wir in Spalte 4 einführen.
Das gleiche Prinzip, jedoch mit einer TXT Datei, deren Inhalt ausgelesen wird und als Textkommentar auf die gleiche Weise eingefügt werden soll (per Doppelklick).
Die Breite des Kommentars würde ich nun gerne immer mit 500px festlegen. (Muss ja irgendwie definiert werden, da nun keine Breite und Höhe mehr durch ein Bild vordefiniert sind)
Da die Länge des Inhaltes der TXT's variiert, wäre es klasse wenn man es so einrichten könnte das die Kommentarhöhe sich automatisch festlegt, und zwar eben so hoch das die letzte Zeile des Textes den Abschluss bildet.
Dann sind die Dimensionen also 500(fest) mal ?(bis unterste Zeile) pixel.
Wenn dies nicht möglich ist, kann auch meinetwegen auch eine feste Höhe vordefiniert werden, sagen wir 200px. Dann muss ich die Höhe halt per Hand korrigieren.
Da ich schon lange nichts mehr mit VBA gemacht habe, brauche ich wieder mal Eure findige Hilfe ;)
Wenn ihr eine Lösung habt, bitte am besten als komplettes Makro in eurer Antwort wiedergeben, da ich mit mit den Befehlen garnicht mehr auskenne. Danke!