Anzeige
Archiv - Navigation
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Einfügen mit Makro

Einfügen mit Makro
14.07.2005 16:44:51
giovanni
Hallo Excel Doktoren,
habe unteres Makro bei Hajos HP gefunden.
Hier wird ein Bild automatisch aus Verzeichnis eingefügt.
Problem ist, dass das Bild immer auf der Höhe wo Eingabe erfolgt eingefügt wird.
Dort aber habe ich noch eine Menge Text stehen....
Wäre es möglich das Makro so zu verändern, dass das Bild immer 3 Zeilen tiefer eingebaut wird?
Der naheliegende Versuch einfach eine Verknüpfung zu einer anderen Zelle zu
machen, z.B. in A9 steht =A1 ist gescheitert, da in Zelle A9 mit Enter bestätigt werden muss....
Danke für jede Hilfe
gio
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'   erstellt von Hajo.Ziplies@web.de 02.10.03
' <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a>
Dim StBild As String
Dim InI As Integer
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("A10,A20,A30,A40")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
'           Bildname feststellen
StBild = "Bild " & RaZelle.Address(False, False)
'           altes Bild löschen von Jinx
For InI = ActiveSheet.Shapes.Count To 1 Step -1
If ActiveSheet.Shapes(InI).Name = StBild Then
ActiveSheet.Shapes(InI).Delete
Exit For
End If
Next
If Target.Value <> "" Then
'           neues Bild einfügen
StBild = "C:\Temp\" & Format(RaZelle.Value, "00000") & ".jpg"
If Dir(StBild) <> "" Then
'       einfügen ohne select von  Bert Körn
'       Ausdruck.AddPicture(FileName, Verknüpfung, in Mappe speichern,
'       Pos. Links, Pos. Oben, Breite, Höhe)
'       von Klausimausi64 Bildname
ActiveSheet.Shapes.AddPicture(StBild, True, True, 100, _
RaZelle.Top, 80, 80).Name = "Bild " & RaZelle.Address(False, False)
Else
'       Standardbild einfüge falls Bild nicht vorhanden
StBild = "C:\Temp\keinBild.Jpg"
'       einfügen ohne select von  Bert Körn
'       von Klausimausi64 Bildname
ActiveSheet.Shapes.AddPicture(StBild, True, True, 100, _
RaZelle.Top, 80, 80).Name = "Bild " & RaZelle.Address(False, False)
End If
End If
End If
Next RaZelle
Set RaBereich = Nothing
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfügen mit Makro
14.07.2005 17:16:12
IngGi
Hallo Giovanni,
ersetze folgende Programmzeile:

ActiveSheet.Shapes.AddPicture(StBild, True, True, 100, _
RaZelle.Top, 80, 80).Name = "Bild " & RaZelle.Address(False, False)

durch diese Programmzeile:

ActiveSheet.Shapes.AddPicture(StBild, True, True, 100, _
RaZelle.Offset(3, 0).Top, 80, 80).Name = "Bild " & RaZelle.Address(False, False)

Gruß Ingolf
AW: Einfügen mit Makro
14.07.2005 17:24:17
Hajo_Zi
Hallo gio,
für solche Sachen habe ich eigentlich Extra die Feedbackseite. Da bekommst Du bestimmt schneller Antwort. Ich lese viele Beiträe im Forum aber nicht alle.

If Dir(StBild) <> "" Then
'       einfügen ohne select von  Bert Körn
'       Ausdruck.AddPicture(FileName, Verknüpfung, in Mappe speichern,
'       Pos. Links, Pos. Oben, Breite, Höhe)
'        ActiveSheet.Shapes.AddPicture StBild, True, True, 150, 100, 100, 100
'       3 Zeilen tiefer
ActiveSheet.Shapes.AddPicture(StBild, True, True, 150, _
Target.Top + Target.Height * 3, 100, 100).Name = "Bild " & Target.Address(False, False)
Else
'       Standardbild einfüge falls Bild nicht vorhanden
StBild = "D:\Eigene Dateien\Eigene Bilder\Bilder\0001-1000\00002.Jpg"
'       einfügen ohne select von  Bert Körn
'        ActiveSheet.Shapes.AddPicture StBild, True, True, 150, 100, 100, 100
'       3 Zeilen tiefer
ActiveSheet.Shapes.AddPicture(StBild, True, True, 150, _
Target.Top + Target.Height * 3, 100, 100).Name = "Bild " & Target.Address(False, False)
End If

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Einfügen mit Makro
14.07.2005 17:32:57
Hajo_Zi
Hallo
der geänderte Code

If Dir(StBild) <> "" Then
'       einfügen ohne select von  Bert Körn
'       Ausdruck.AddPicture(FileName, Verknüpfung, in Mappe speichern,
'       Pos. Links, Pos. Oben, Breite, Höhe)
'        ActiveSheet.Shapes.AddPicture StBild, True, True, 150, 100, 100, 100
'       3 Zeilen tiefer
ActiveSheet.Shapes.AddPicture StBild, True, True, 150, _
Target.Top + Target.Height * 3, 100, 100
Else
'       Standardbild einfüge falls Bild nicht vorhanden
StBild = "D:\Eigene Dateien\Eigene Bilder\Bilder\0001-1000\00002.Jpg"
'       einfügen ohne select von  Bert Körn
'        ActiveSheet.Shapes.AddPicture StBild, True, True, 150, 100, 100, 100
'       3 Zeilen tiefer
ActiveSheet.Shapes.AddPicture StBild, True, True, 150, _
Target.Top + Target.Height * 3, 100, 100

Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
Anzeige
AW: Einfügen mit Makro
15.07.2005 08:39:06
giovanni
Hallo,
ich bins schon wieder
bei geänderten Makro funktioniert nicht mehr das automatische Löschen
Was soll ich ändern?
Danke
gio
AW: Einfügen mit Makro
15.07.2005 08:58:44
Hajo_Zi
Hallo Gio,
du hast schon meinen geänderten Code eingefügt. Du mußt falls Du mit dem alten Code getestet hast die Bilder von Hand löschen.
Die Datei auf meiner HP ist aktualisiert.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Einfügen mit Makro
15.07.2005 10:43:06
giovanni
Herr Hajo,
das mit dem Löschen geht wirklich nicht.
hier noch mal die geänderte Version für mehrere Bilder einfügen
Gruss
gio

Private Sub Worksheet_Change(ByVal Target As Range)
'   erstellt von Hajo.Ziplies@web.de 02.10.03
' <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a>
Dim StBild As String
Dim InI As Integer
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("A10,A20,A30,A40")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
'           Bildname feststellen
StBild = "Bild " & RaZelle.Address(False, False)
'           altes Bild löschen von Jinx
For InI = ActiveSheet.Shapes.Count To 1 Step -1
If ActiveSheet.Shapes(InI).Name = StBild Then
ActiveSheet.Shapes(InI).Delete
Exit For
End If
Next
If Target.Value <> "" Then
'           neues Bild einfügen
StBild = "C:\Temp\" & Format(RaZelle.Value, "00000") & ".jpg"
If Dir(StBild) <> "" Then
'       einfügen ohne select von  Bert Körn
'       Ausdruck.AddPicture(FileName, Verknüpfung, in Mappe speichern,
'       Pos. Links, Pos. Oben, Breite, Höhe)
'        ActiveSheet.Shapes.AddPicture StBild, True, True, 150, 100, 100, 100
'       3 Zeilen tiefer
ActiveSheet.Shapes.AddPicture StBild, True, True, 150, _
Target.Top + Target.Height * 3, 100, 100
Else
'       Standardbild einfüge falls Bild nicht vorhanden
StBild = "C:\Temp\keinBild.Jpg"
'       einfügen ohne select von  Bert Körn
'        ActiveSheet.Shapes.AddPicture StBild, True, True, 150, 100, 100, 100
'       3 Zeilen tiefer
ActiveSheet.Shapes.AddPicture StBild, True, True, 150, _
Target.Top + Target.Height * 3, 100, 100
End If
End If
End If
Next RaZelle
Set RaBereich = Nothing
End Sub

Anzeige
AW: Einfügen mit Makro
15.07.2005 10:45:55
Hajo_Zi
Hallo Gio,
ich lehne es ab über das Internet auf fremde Rechner zu schauen.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Einfügen mit Makro
15.07.2005 08:28:17
giovanni
DANKE FÜR EURE HILFE, DAMIT HABE ICH ICH EINE SEHR GUTE LÖSUNG
Gruss
gio

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige