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

Forumthread: Umbenennen und kopieren von Bildern in Excel

Umbenennen und kopieren von Bildern in Excel
16.05.2017 14:11:54
Bildern
Hallo,
ich möchte Mittels VBA Bilder von Worksheet2 in Worksheet1 kopieren. Dazu müsste ich aber als erstes einmal wissen, wie die Bilder heißen. Wo kann man den Namen eines Bildes ändern? Und mit was für einer Funktion kann man Bilder rüber kopieren?
Ich hoffe mir kann dabei jemand weiterhelfen...
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Umbenennen und kopieren von Bildern in Excel
16.05.2017 17:12:00
Bildern
Hallo!
Ein Beispiel für Dich, unter der Annahme, dass im Blatt 2 ein paar Bilder vorhanden sind:
Sub BilderKopieren()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets("Tabelle2")
Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets("Tabelle1")
Dim pic As Shape
'Bilder-Namen ausgeben
For Each pic In WsQ.Shapes
Debug.Print pic.Name
Next pic
'Bestimmtest Bild kopieren...
WsQ.Shapes("Picture 1").Copy
With WsZ
'..einfügen...
.Paste
'...und im Blatt ausrichten...
With .Shapes(.Shapes.Count)
.Left = WsZ.Range("D5").Left
.Top = WsZ.Range("D5").Top
End With
End With
End Sub
LG
Michael
Anzeige
AW: Umbenennen und kopieren von Bildern in Excel
17.05.2017 15:51:59
Bildern
Super Danke! Was muss ich ändern, wenn ich immer nur ein Bild rüber kopieren möchte, und mit diesem dann das bereits vorhandene ersetzen möche. Also quasi wie bei einer Aktualisierung(neue Maschinendaten werden ausgewählt und bestätigt, dann werden nicht nur die neuen Daten aus Tabelle 2 in Tabelle 1 kopiert sondern auch ein neues Bild anstelle eines alten Bildes). Ist das verständlich?
Außerdem: Im oben reingestellten Code: Wie kann ich da genau die Bildposition ändern? Bei mir funktioniert es nicht
Danke im voraus...
Anzeige
AW: Umbenennen und kopieren von Bildern in Excel
17.05.2017 16:27:13
Bildern
Hallo!
Siehe neu-kommentierter Code:
Sub BilderKopieren()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets("Tabelle2")
Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets("Tabelle1")
Dim pic As Shape
'Bestimmtes Bild in Ziel-Blatt löschen
WsZ.Shapes("Picture 1").Delete
'... oder Bild in Ziel-Blatt löschen
'wenn der Name nicht bekannt ist, aber der Index
'hier: das 1. Bild
WsZ.Shapes(1).Delete
'Bestimmtest Bild kopieren...
WsQ.Shapes("Picture 1").Copy
With WsZ
'..einfügen...
.Paste
'...und im Blatt ausrichten...
'hier: die obere linke Ecke des Bildes wird
'an der oberen linken Ecke der Ziel-Zelle (hier D5)
'ausgerichtet
With .Shapes(.Shapes.Count)
.Left = WsZ.Range("D5").Left
.Top = WsZ.Range("D5").Top
End With
End With
End Sub
Wie kann ich da genau die Bildposition ändern? Bei mir funktioniert es nicht
WAS funktioniert nicht? Was beim Ausrichten in meinem Code passiert steht oben im Code-Kommentar.
Ansonsten ist die Frage, was Du Dir vorstellst beim "Bildposition ändern".
LG
Michael
Anzeige
AW: Umbenennen und kopieren von Bildern in Excel
18.05.2017 11:22:07
Bildern
Also folgendermaßen sieht mein Code zum übertragen der Daten aus, er funktioniert auch wie gewollt. Er ist zwar sehr primitiv aber ich bin auch totaler Anfänger... Bei jedem Datensatz soll nun auch ein bestimmtes Bild mit kopiert werden und ggf. ein altes ersetzen (von Übersicht zu Berechnungstool kopieren.)Leider funktioniert das trotz der Infos im vorherigen Kommentar nicht wie gewollt... Bitte um Support auch wenn ich dumme Fragen stelle.. ;-)
Code:
Public Sub datenanzeigen_click()
Dim x As String
Dim y As String
x = Sheets("Berechnungstool").Range("B3").Value
y = Sheets("Berechnungstool").Range("B4").Value
'----------kopieren von Brot mit C120 ------------------------------
If x = "Brot" And y = "C120" Then
Sheets("Übersicht").Range("B17:B33").Copy
Sheets("Berechnungstool").Range("B11.B27").PasteSpecial xlPasteValues
End If
'----------kopieren von Brot mit C125 -------------------------------
If x = "Brot" And y = "C125" Then
Sheets("Übersicht").Range("C17:C33").Copy
Sheets("Berechnungstool").Range("B11.B27").PasteSpecial xlPasteValues
End If
'---------kopiert von Salt mit C120 -----------------------------------
If x = "Salat" And y = "C120" Then
Sheets("Übersicht").Range("B45:B61").Copy
Sheets("Berechnungstool").Range("B11.B27").PasteSpecial xlPasteValues
End If
'----------kopiert von Salt mit C250 ------------------------------------
If x = "Salat" And y = "C250" Then
Sheets("Übersicht").Range("C45:C61").Copy
Sheets("Berechnungstool").Range("B11.B27").PasteSpecial xlPasteValues
End If
'-----------kopiert von Salt mit C180 ------------------------------------
If x = "Salat" And y = "C180" Then
Sheets("Übersicht").Range("D45:D61").Copy
Sheets("Berechnungstool").Range("B11.B27").PasteSpecial xlPasteValues
End If
End Sub

Anzeige
AW: Zeig mir doch eine kleine Bsp-Mappe...
18.05.2017 12:38:13
Michae
Rainer,
...und gib einmal verbal an, was genau das Makro machen soll (in eigenen Worten das Ziel beschreiben, unabhängig davon ob Dein Code funktioniert und ohne "VBA"-Sprache). Dann schau ich mir das an, und baue das ggf. gleich so ein, wie Du's brauchst; dann musst Du nicht rätseln, wie Bsp-Code anzupassen ist.
LG
Michael
Anzeige
AW: Zeig mir doch eine kleine Bsp-Mappe...
22.05.2017 11:32:42
Rainer
Also das Programm besteht aus 2 Sheets. Im ersten Sheet ("Berechnungstool") kann in 2 Dropdown Fenstern die Maschine konfiguriert werden. Eine getroffene Auswahl im Dropdown Menü wird mit einem "Anzeigen" Button bestätigt und ausgeführt.Je nach Auswahl, werden dann die entsprechenden Daten dargestellt. Zusätzlich zu den Daten, soll je nach gewählter Maschine auch immer ein individuelles Bild angezeigt werden. Außerdem finden einige Berechnungen statt, die sich auch die ausgewählten Daten beziehen. Es wird immer nur ein Datensatz mit Bild dargestellt. Im zweiten Sheet ("Übersicht") werden die Daten aller Maschinen in Form von Tabellen nochmals als Übersicht dargestellt, auch mit dem jeweiligen zugeordneten Bild. Diese Tabellen dienen auch als Datenbasis.
Ist diese Erklärung verständlicher?
Anzeige
AW: Ich wollte eine Bsp-Mappe...
22.05.2017 12:40:46
Michael
...d.h. ich bin dann an dieser Stelle raus.
LG
Michael
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder in Excel umbenennen und kopieren


Schritt-für-Schritt-Anleitung

Um Bilder in Excel zu kopieren und umzubenennen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, um Bilder von einem Arbeitsblatt in ein anderes zu übertragen.

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Editor zu öffnen.

  2. Ein neues Modul hinzufügen: Rechtsklicke auf "VBAProject (deine Datei)" und wähle "Einfügen" > "Modul".

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub BilderKopieren()
       Dim Wb As Workbook: Set Wb = ThisWorkbook
       Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets("Tabelle2")
       Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets("Tabelle1")
       Dim pic As Shape
    
       'Bestimmtes Bild in Ziel-Blatt löschen
       WsZ.Shapes("Picture 1").Delete
    
       'Bestimmtest Bild kopieren...
       WsQ.Shapes("Picture 1").Copy
       With WsZ
           '..einfügen...
           .Paste
           '...und im Blatt ausrichten...
           With .Shapes(.Shapes.Count)
               .Left = WsZ.Range("D5").Left
               .Top = WsZ.Range("D5").Top
           End With
       End With
    End Sub
  4. Code anpassen: Ändere die Namen der Arbeitsblätter und Bilder, falls nötig, um sie an deine Datei anzupassen.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.


Häufige Fehler und Lösungen

  • Bild nicht gefunden: Stelle sicher, dass der Name des Bildes korrekt im Code angegeben ist. Überprüfe, ob das Bild tatsächlich im Quellblatt vorhanden ist.

  • Fehler beim Ausrichten: Wenn das Bild nicht korrekt positioniert wird, überprüfe, ob die Zelle "D5" im Zielblatt existiert und sichtbar ist.

  • Makro funktioniert nicht: Achte darauf, dass die Makros in deinen Excel-Einstellungen aktiviert sind (Datei > Optionen > Trust Center > Einstellungen für das Trust Center).


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du Bilder manuell kopieren:

  1. Bilder manuell kopieren: Klicke mit der rechten Maustaste auf das Bild in "Tabelle2" und wähle "Kopieren".
  2. Einfügen: Gehe zu "Tabelle1", klicke mit der rechten Maustaste an die gewünschte Stelle und wähle "Einfügen".

Diese Methode ist jedoch weniger effizient, besonders wenn du viele Bilder übertragen musst.


Praktische Beispiele

Hier ist ein Beispiel, wie das Makro für das Ersetzen eines bestehenden Bildes verwendet werden kann:

Sub BildAktualisieren()
    Dim WsZ As Worksheet: Set WsZ = ThisWorkbook.Worksheets("Tabelle1")

    ' Altes Bild löschen
    On Error Resume Next
    WsZ.Shapes("Picture 1").Delete
    On Error GoTo 0

    ' Neues Bild kopieren und einfügen
    ThisWorkbook.Worksheets("Tabelle2").Shapes("Picture 1").Copy
    WsZ.Paste
End Sub

Dieses Beispiel zeigt, wie du ein Bild in "Tabelle1" durch ein neues Bild aus "Tabelle2" ersetzen kannst.


Tipps für Profis

  • Optimierung der Bildgrößen: Stelle sicher, dass die Bilder, die du verwendest, nicht zu groß sind, um die Ladezeiten deiner Excel-Datei zu verbessern.
  • Verwendung von Variablen: Verwende Variablen für Bildnamen, um den Code flexibler zu gestalten.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um Probleme besser zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich den Namen eines Bildes in Excel ändern?
Du kannst den Namen eines Bildes ändern, indem du das Bild auswählst, dann im Menü "Format" auf "Bild" klickst und den gewünschten Namen in der Eingabezeile oben einträgst.

2. Kann ich mehrere Bilder gleichzeitig kopieren?
Ja, du kannst ein Array von Bildern erstellen und sie in einer Schleife kopieren. Dies erfordert jedoch etwas mehr VBA-Programmierung.

3. Funktioniert das auch in Excel Online?
VBA funktioniert nicht in Excel Online. Du musst Excel Desktop verwenden, um Makros auszuführen.

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