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

einem Bild einen Variable geben

Forumthread: einem Bild einen Variable geben

einem Bild einen Variable geben
29.01.2005 21:58:47
simon
Hallo zusammen,
füge über ein Makro in ein Excel arbeitsblatt ein Bild ein, auf dem Arbeitsblatt ist immer nur ein bild, sobald das neue Bild eingefügt wird soll das alte Bild gelöscht werden.
Das neu eingefügte Bild heißt "Bild 1" , das nächste "Bild 2" usw. (dieser Name wird auto. vergeben)
nun möchte ich dieses Bild über eine Variable ansprechen, allso egal ob es Bild 1 oder anderst heißt es soll immer das Bild in Tabelle 1 angesprochen werden.
Wie gebe ich dem Bild eine Variable?
denke es muss irgendwie mit der Shape eigenschaft funkt.
hoffe mir kann jemand helfen
glaube es ist auch gar net so kompliziert.
danke im voraus
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einem Bild einen Variable geben
29.01.2005 22:23:38
Josef
Hallo Simon!
Eine Möglichkeit ist zB., das Bild gleich beim Einfügen einer Variablen zuzuweisen!
Auf diese kannst du dann zugreifen.


      
Option Explicit
Public img As Object
Sub Einfügen()
Set img = ActiveSheet.Pictures.Insert( _
        
"C:\Dokumente und Einstellungen\Chief\Eigene Dateien\Eigene Bilder\Misc\dummy1.gif" _
        )
End Sub
Sub Loeschen()
On Error Resume Next
img.Delete
End Sub 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: einem Bild einen Variable geben
29.01.2005 23:28:51
simon
danke für die schnelle antwort,
ist nicht ganz das was ich gemeint hab, hab mich vielleicht auch falsch ausgedrückt,
füge mein Bild so ein
Worksheets("db_berechnung").Range("b3:g43").CopyPicture xlScreen, xlBitmap
Worksheets("db_berechnung").Paste _
Destination:=Worksheets("db_berechnung").Range("o6")
diesem Bild soll jetzt eine Variable gegeben werden,
da gibts bestimmt ne möglichkeit,
gruß simon
Anzeige
AW: einem Bild einen Variable geben
Ramses
Hallo
nicht elegant, aber es geht
Option Explicit
Public myPic As Object

Sub Makro1()
Range("B1:B8").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Range("H1").PasteSpecial
Set myPic = Selection
'Zum löschen
'myPic.Delete
End Sub

Gruss Rainer
Anzeige
AW: einem Bild einen Variable geben
29.01.2005 23:40:45
Josef
Hallo Simon!
Dann vielleicht so:

Sub Einfügen()
With Worksheets("db_berechnung")
On Error Resume Next
.Shapes("NewImage").Delete
On Error GoTo 0
.Range("b3:g43").CopyPicture xlScreen, xlBitmap
.Paste Destination:=.Range("o6")
.Shapes(.Shapes.Count).Name = "NewImage"
End With
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
danke, ja sowas habe ich gesucht super
29.01.2005 23:50:10
simon
.
;
Anzeige

Infobox / Tutorial

Variablen für Bilder in Excel zuweisen


Schritt-für-Schritt-Anleitung

Um einem Bild in Excel eine Variable zuzuweisen und sicherzustellen, dass immer nur ein Bild auf dem Arbeitsblatt vorhanden ist, kannst Du die folgenden Schritte ausführen:

  1. Öffne die VBA-Entwicklungsumgebung:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im VBA-Editor mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden VBA-Code ein:

    Option Explicit
    Public img As Object
    
    Sub Einfügen()
       With Worksheets("db_berechnung")
           On Error Resume Next
           .Shapes("NewImage").Delete ' Löscht das alte Bild
           On Error GoTo 0
           .Range("b3:g43").CopyPicture xlScreen, xlBitmap
           .Paste Destination:=.Range("o6")
           Set img = .Shapes(.Shapes.Count) ' Weist das neue Bild der Variable zu
           img.Name = "NewImage" ' Vergibt einen Namen
       End With
    End Sub
    
    Sub Loeschen()
       On Error Resume Next
       img.Delete ' Löscht das Bild über die Variable
       On Error GoTo 0
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und führe das Makro Einfügen über das Menü "Entwicklertools" > "Makros" aus.

Häufige Fehler und Lösungen

  • Fehler: "Objekt kann nicht gefunden werden"
    Lösung: Stelle sicher, dass der Name des Arbeitsblatts (hier "db_berechnung") korrekt ist. Überprüfe auch, dass das Bild tatsächlich vorhanden ist, bevor Du versuchst, es zu löschen.

  • Fehler: "Typ nicht definiert"
    Lösung: Achte darauf, dass Option Explicit am Anfang Deines Codes steht. Dies stellt sicher, dass alle Variablen deklariert sind.


Alternative Methoden

Eine alternative Methode besteht darin, das Bild direkt beim Einfügen der Variablen zuzuweisen, wie im folgenden Beispiel:

Sub EinfügenAlternative()
    Dim myPic As Object
    With Worksheets("db_berechnung")
        .Range("B1:B8").CopyPicture Appearance:=xlScreen, Format:=xlPicture
        .Range("H1").PasteSpecial
        Set myPic = Selection ' Weist das Bild einer Variablen zu
    End With
End Sub

Diese Methode ist nicht ganz so elegant, aber sie funktioniert ebenfalls.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die oben beschriebenen Methoden anwenden kannst:

  1. Ein Bild aus einem bestimmten Bereich kopieren und einfügen:

    • Verwende den Code im Abschnitt "Schritt-für-Schritt-Anleitung", um ein Bild von einem festgelegten Bereich zu kopieren und es an einer bestimmten Stelle einzufügen.
  2. Das Bild bei jedem Einfügen automatisch löschen:

    • Der Code sorgt dafür, dass beim Einfügen eines neuen Bildes das alte Bild gelöscht wird.

Tipps für Profis

  • Verwende aussagekräftige Namen für Deine Shapes: Vergib Namen, die den Inhalt des Bildes beschreiben. Das macht die Verwaltung einfacher.

  • Fehlerbehandlung verbessern: Füge spezifische Fehlerbehandlungsroutinen hinzu, um besser zu verstehen, wo und warum ein Fehler auftritt.

  • Bilder dynamisch laden: Du kannst den Pfad zum Bild in einer Zelle speichern und den VBA-Code so anpassen, dass er diesen Pfad verwendet, um das Bild dynamisch zu laden.


FAQ: Häufige Fragen

1. Wie kann ich das Bild automatisch auf eine andere Größe anpassen?
Du kannst die Eigenschaften img.Width und img.Height verwenden, um die Größe des Bildes nach dem Einfügen anzupassen.

2. Kann ich mehrere Bilder gleichzeitig einfügen?
Ja, Du kannst eine Schleife verwenden, um durch eine Liste von Bildern zu iterieren und sie auf das Arbeitsblatt einzufügen, wobei Du jedem Bild eine eigene Variable zuweist.

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