Excel 2003 => 2007 VBA anders
22.10.2008 11:18:00
UweD
Ich habe mir mal unter Excel2003 ein Visitenkarten Makro gemacht.
Klappte dort ganz gut.
Jetzt unter Excel2007 gibt es aber Probleme.
Vorher: Wurde die Grafik in Zelle (B der aktuellen Zeile) beginnend angezeigt
Jetzt: immer vorne,oben
Im Code hier:
'Zielzelle aktivieren
Cells(Target.Row, 3).Select
Vorher: wenn der Name nicht vorhanden war, wurde eine Hinweisgrafik angezeigt und nach 2 sek wieder ausgeblendet.
Jetzt: Läuft erst die Zeit ab, die Grafik blinkt nur kurz auf und ist direkt wieder weg.
Im Code hier:
ActiveSheet.Pictures.Insert(Pfad & "Unbekannt" & Ext).Name = "Bild"
Application.Wait Now + TimeSerial(0, 0, 2)
ActiveSheet.Shapes("Bild").Delete
hier der gesamte Code
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Pfad$, Bild$, Ext$, Zeile1%, Spalte%, Da$
'**** Grundeinstellungen ****
Spalte = 1 '=Spalte A"
Zeile1 = 2 ' erste Zeile mit Daten
Pfad = ThisWorkbook.Path & "\" ' Bilddateien liegen im gleichen Verzeichnis
Ext = ".jpg" ' Endung der Bilddateien
'**** Grundeinstellungen **** Ende
If (Target.Column = Spalte Or Target.Column = Spalte + 1) And Target.Row >= Zeile1 Then
On Error Resume Next
Cancel = True 'das normale Kontextmenü wird abgebrochen
'Name des Bildes wird zusammengesetzt
Bild = Me.Cells(Target.Row, Spalte) & "#" & Me.Cells(Target.Row, Spalte + 1)
'altes Bild wird gelöscht
ActiveSheet.Shapes("Bild").Delete
'Zielzelle aktivieren
Cells(Target.Row, 3).Select
'Prüfung ob Bild zu diesem Namen vorhanden ist
Da = Dir(Pfad & Bild & Ext)
If Da = "" Then 'Bild fehlt
ActiveSheet.Pictures.Insert(Pfad & "Unbekannt" & Ext).Name = "Bild"
Application.Wait Now + TimeSerial(0, 0, 2)
ActiveSheet.Shapes("Bild").Delete
Else ' Bild vorhanden
ActiveSheet.Pictures.Insert(Pfad & Bild & Ext).Name = "Bild"
End If
End If
End Sub
Hat jemand eine Idee, woran das liegt?
Ich habe die Datei und mal 3 Beispiel JPG#s angehangen.
https://www.herber.de/bbs/user/56188.zip
Besten Dank im Voraus
UweD
Anzeige