Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bilder durch andere austauschen

Forumthread: Bilder durch andere austauschen

Bilder durch andere austauschen
17.04.2024 16:16:19
Wolfgang
Guten Tag.

Ich möchte gerne in einer EXCEL-Anwendung ein Bild ("Bild 1"), welches sich in einer bestimmten Größe genau über den Zellen L1:L2 befindet, gegen ein anderes ("Bild 23"), welches sich an einer anderen Position auf dem aktuellen Sheet befindet, austauschen.
Das neue Bild soll die gleiche Größe wie das erste haben. Was muss ich tun?
Vielen Dank!
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder durch andere austauschen
17.04.2024 16:46:32
Yal
Hallo Wolfgang,

- Bild 1 verschieben
- Bild 23 verschieben, dabei Taste Alt gedrückt halten, um das Bild an den Zellenrand zu platzieren. Am obere linke Eck der Zelle L1 platzieren.
- unter rechte Eck des Bilds 23 anklicken, mit gedrückte Alt-Taste auf dem untere, rechten Eck von Zelle L2 platzieren
- Bild 1 an der ehemalige Stelle von Bild 23 verschieben.

Viel Erfolg

VG
Yal
Anzeige
AW: Bilder durch andere austauschen
17.04.2024 17:00:01
Wolfgang
Vielen Dank!
Ich habe mich aber etwas ungenau ausgedrückt:
Das Ganze sollte durch Makro bzw. VBA gesteuert werden und das neue Bild sollte auch an seiner ursprünglichen Position erhalten bleiben (Kopieren, nicht verschieben).
Folgender Hintergrund:
Ich habe eine Tabelle mit einem Vokabelprogramm, wo je nach gewählter Sprache die Flagge des entsprechenden Landes an eine bestimmte Position gesetzt werden soll.
Die 4 möglichen Flaggen befinden sich an einer anderen Stelle auf dem Sheet.

Gruß
Wolfgang
Anzeige
AW: Bilder durch andere austauschen
17.04.2024 17:17:06
Yal
Hallo Wolfgang,

nicht ungenau, sondern unvollständig. Ich kann leider immer noch nicht Gedanken lesen.

Mache die 3 Manipulationen unter laufenden Makrorekorder (MR). Idealerweise in 3 Aufzeichnungen.
- Bild 1 löschen
- Bild 23 kopieren, Zelle L1 markieren, Bild einfügen
- mit Alt die Ecke auf L1 oben links und L2 unten rechts anpassen

Dann schaust Du dir den Code an und versuche diese auf Deutsch zu lesen. Ruhig laut lesen.
Dann mache aus den 3 Teile eine Sub (oder zeichne neu).

Schwierigkeit wirst Du haben, weil das eingefügte Bild eine Name bekommt, der vorher nicht bekannt ist. Poste dann den gesamte Code und wir basteln das zusammen.

Von null auf kann ich nicht sagen, weil ich solche Spielerei selber auch mit dem MR mache (was aus der Maschine kommen kann, muss man sich nicht merken).

VG
Yal
Anzeige
AW: Bilder durch andere austauschen
18.04.2024 07:38:56
Wolfgang
Hallo Yal,
vielen Dank für den Tipp! Das Ganze hat mit dem Recorder ganz gut funktioniert, aber wie du gesagt hast, ändert das neu eingefügte Bild immer seinen Namen. Hier sind die vier Bild-Ersetzungen:
----------------------------------------------------------------------
Sub Makro5()
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Selection.Delete
Sheets("Tabelle2").Select
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
Selection.Copy
Sheets("Tabelle1").Select
Range("L1").Select
ActiveSheet.Paste
End Sub

Sub Makro6()
ActiveSheet.Shapes.Range(Array("Picture 4")).Select
Selection.Delete
Sheets("Tabelle2").Select
ActiveSheet.Shapes.Range(Array("Picture 2")).Select
Selection.Copy
Sheets("Tabelle1").Select
Range("L1").Select
ActiveSheet.Paste
End Sub

Sub Makro7()
ActiveSheet.Shapes.Range(Array("Picture 5")).Select
Selection.Delete
Sheets("Tabelle2").Select
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Selection.Copy
Sheets("Tabelle1").Select
Range("L1").Select
ActiveSheet.Paste
End Sub

Sub Makro8()
ActiveSheet.Shapes.Range(Array("Picture 7")).Select
Selection.Delete
Sheets("Tabelle2").Select
ActiveSheet.Shapes.Range(Array("Picture 4")).Select
Selection.Copy
Sheets("Tabelle1").Select
Range("L1").Select
ActiveSheet.Paste
End Sub
--------------------------------------------------------------------

Man muss wahrscheinlich dem Bild, das eingefügt wird, sofort einen neuen Namen geben. Wie macht man das? Es gibt auf diesem Blatt nur dieses einzige Bild.

Gruß
Wolfgang
Anzeige
AW: Bilder durch andere austauschen
18.04.2024 12:35:05
Wolfgang
... eigentlich geht es jetzt nur noch darum, den Namen eines (einzigen) Bildes (mit unbekanntem) auf einem Sheet auszulesen und dieses mit einem neuen Namen umzubenennen.
Der Rest funktioniert bereits ...
AW: Bilder durch andere austauschen
18.04.2024 13:38:41
Yal
Hallo Wolfgang,

Desto besser. Hier Code dafür:

Private Function BildNachZelle_finden(ByVal Zelle As Range) As Shape

Dim S As Shape
For Each S In Zelle.Parent.Shapes 'Parent von Range ist Worksheet!
If Not Intersect(S.TopLeftCell, Zelle) Is Nothing Then
Set BildNachZelle_finden = S
Exit Function
End If
Next
End Function

Zum Testen, foglende Code
Sub Test()

Dim S As Shape
Set S = BildNachZelle_finden(Range("L1"))
If S Is Nothing Then
MsgBox "Im L1 befindet sich kein Bild. "
Else
MsgBox "Im L1 befindet sich das Bild " & S.Name
End If
End Sub

funktioniert auch mit
Set S = BildNachZelle_finden(Range("L1:L2"))


VG
Yal
Anzeige
AW: Bilder durch andere austauschen
18.04.2024 14:03:41
Wolfgang
Vielen Dank!
Funktioniert super!
Wolfgang
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige