Herbers Excel-Forum - das Archiv

(vorhandenen) Bild-Import in TXT-Import abwandeln

Bild

Betrifft: (vorhandenen) Bild-Import in TXT-Import abwandeln
von: Max Schuster

Geschrieben am: 24.12.2006 01:54:40
Ersteinmal ein frohes Fest euch allen, nu mein Anliegen:
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!
Bild

Betrifft: AW: (vorhandenen) Bild-Import in TXT-Import abwand
von: Georg

Geschrieben am: 27.12.2006 14:39:53
Hallo, wo liegt das Problem? Du hast doch schon dasselbe Prinzip mit den Bildern im Kommentarfeld. Google mal ein bissl nach 'Excel VBA aus Textdatei lesen', da findest du schnell ein paar Beispielscripte. Diese nimmst du und packst das ins 'BeforeDoubleClick'-Ereignis und lässt ein Kommentarfeld erstellen mit dem importierten Text. Kommentare lassen sich nur auf 'AutoSize' für Breite und Höhe stellen, leider nicht einzeln. Es gibt ein paar Tricks für das nachträgliche Variieren der Höhe per Makro, eine ist z.B. die Zeilenanzahl des Kommentarfeldes auslesen - Kommentarfeld auf Höhe einer Zeile anpassen - .ScaleHeight = Höhe x Zeilenanzahl
lg, Georg
 Bild
Excel-Beispiele zum Thema "(vorhandenen) Bild-Import in TXT-Import abwandeln"
Auslesen der aktuell in der Zwischenablage vorhandenen Formate