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

Forumthread: Bild als Button nutzen

Bild als Button nutzen
marspoki
Hallo, habe mal eine Frage.
Ich nutze zur Zeit ein Steuerelement (Bild) als Button. Diese sind aber leider wenn ich sie im Excel eingefügt habe immer irgendwie Unscharf obwohl sie in der Normalen "Windows Bild und Fax anzeige" mega scharf dargestellt werden. Was mache ich Falsch?
Dann wollte ich mal fragen ob man einen "Hover effekt" (Bildwechel) einbauen kann. Gibt’s da eine Möglichkeit!?
Vielen Dank
Sebastian
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bild als Button nutzen
02.10.2009 10:31:42
JogyB
Hi.
zur Unschärfe kann ich nichts sagen, ist beim mir aber auch so.
Mal als Beispiel für den Bildwechsel:
' Wechselt das Bild beim Drücken
Private Sub Image1_Click()
Static nextPic As Byte
If nextPic = 0 Then
Image1.Picture = LoadPicture("BILD1")
Else
Image1.Picture = LoadPicture("BILD2")
End If
' Ergibt 0 für 1 und 1 für 0
nextPic = Sgn(-nextPic) + 1
End Sub
' Die beiden Subs simulieren den "Einsinkeffekt" beim Klicken
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
Image1.SpecialEffect = fmSpecialEffectSunken
End Sub
Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single,  _
ByVal Y As Single)
Image1.SpecialEffect = fmSpecialEffectRaised
End Sub
Den SpecialEffect mußt Du zu Beginn gleich auf fmSpecialEffectRaised setzen, dann sieht es wie ein Button aus.
BILD1 und BILD2 mußt Du natürlich durch die Pfade der Bilder ersetzen.
Gruss, Jogy
Anzeige
AW: Bild als Button nutzen
02.10.2009 10:37:10
marspoki
Das geht schonmal, nur möchte ich die bilder lieber in Excel integrieren und nciht im Verzeichnis ablegen. Geht das auch?
AW: Bild als Button nutzen
02.10.2009 11:40:21
JogyB
Hi.
Das ist ein Punkt, an dem ich gestern auch war... ich hab schon recht viel gegoogelt, aber leider nichts gefunden.
Ich setze die Frage mal auf offen, das würde mich auch brennend interessieren.
Gruss, Jogy
Anzeige
Muss es denn zwingend ein Steuerelement sein?
02.10.2009 12:18:10
Bertram
Hallo,
man kann doch auch zwei Bilder übereinanderlegen und diese je nach Klick in den Vordergrund holen (sieht im Beispiel nicht so dolle aus, da die Bilder nicht gleich groß sind):
https://www.herber.de/bbs/user/64837.xls
Gruß
Bertram
Anzeige
AW: Bild als Button nutzen
02.10.2009 14:01:01
JogyB
Hi.
Habe eine Lösung gefunden:
Du legst auf einem anderen Tabellenblatt (im Beispiel Tabelle2) die zwei Image-Steuerelemente an, in die Du die Bilder lädst. Diese benennst Du Image1 und Image2 (was es ja automatisch macht). Tabelle2 kannst Du dann ausblenden, Du kannst es sogar im VBE auf xlVeryHidden setzen, geht trotzdem noch (hat den Vorteil, dass es niemand im Excel-Menü einblenden kann).
Und dann nimmst Du folgenden Code:
' Wechselt das Bild beim Drücken
Private Sub Image1_Click()
Static nextPic As Byte
If nextPic = 0 Then
Image1.Picture = Worksheets("Tabelle2").Image1.Picture
Else
Image1.Picture = Worksheets("Tabelle2").Image2.Picture
End If
' Ergibt 0 für 1 und 1 für 0
nextPic = Sgn(-nextPic) + 1
End Sub
' Die beiden Subs simulieren den "Einsinkeffekt" beim Klicken
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
If Button = 1 Then Image1.SpecialEffect = fmSpecialEffectSunken
End Sub
Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single,  _
ByVal Y As Single)
If Button = 1 Then Image1.SpecialEffect = fmSpecialEffectRaised
End Sub
Da ist auch noch eine kleine Korrektur in den MouseUp/Down Prozesuren, so dass es nur auf die linke Maustaste reagiert.
Darauf gebracht hat mich ein älteres Posting von Nepomuk, das Axel Meyer für einem Thread knapp drüber ausgegraben hat.
Gruss, Jogy
Anzeige
kleine Verbesserung
02.10.2009 14:03:42
JogyB
Hi.
So ist es noch besser:
' Wechselt das Bild beim Drücken
Private Sub Image1_Click()
If Image1.Picture = Worksheets("Tabelle2").Image1.Picture Then
Image1.Picture = Worksheets("Tabelle2").Image2.Picture
Else
Image1.Picture = Worksheets("Tabelle2").Image1.Picture
End If
End Sub

Gruss, Jogy
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bild als Button nutzen in Excel


Schritt-für-Schritt-Anleitung

Um ein Bild als Button in Excel zu nutzen, befolge diese Schritte:

  1. Bild einfügen: Gehe zu Einfügen > Bilder und wähle das gewünschte Bild aus.
  2. Bild als Steuerelement festlegen: Klicke mit der rechten Maustaste auf das Bild und wähle Steuerelement formatieren.
  3. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  4. Code hinzufügen: Füge den folgenden Code in das Codefenster des Bildes ein:
    ' Wechselt das Bild beim Drücken
    Private Sub Image1_Click()
        Static nextPic As Byte
        If nextPic = 0 Then
            Image1.Picture = LoadPicture("BILD1") ' Pfad zum ersten Bild
        Else
            Image1.Picture = LoadPicture("BILD2") ' Pfad zum zweiten Bild
        End If
        nextPic = Sgn(-nextPic) + 1
    End Sub
  5. SpecialEffect festlegen: Stelle sicher, dass der SpecialEffect auf fmSpecialEffectRaised gesetzt ist, um den Button-Effekt zu erzielen.

Häufige Fehler und Lösungen

  • Bild ist unscharf: Stelle sicher, dass die verwendeten Bilder in einer hohen Auflösung vorliegen. Vermeide es, die Bilder in Excel zu vergrößern, da dies die Schärfe beeinträchtigt.

  • Bildwechsel funktioniert nicht: Überprüfe den Pfad der Bilder in deinem Code. Der Pfad muss korrekt sein, damit die Bilder geladen werden.


Alternative Methoden

Wenn du keine Steuerelemente verwenden möchtest, kannst du auch zwei Bilder übereinanderlegen und je nach Klick das obere Bild in den Vordergrund bringen:

  1. Bilder übereinanderlegen: Füge zwei Bilder in die gleiche Zelle ein und schichte sie so, dass sie perfekt übereinander liegen.
  2. VBA-Code anpassen: Verwende den folgenden Code, um zwischen den Bildern zu wechseln:
    Private Sub Image1_Click()
        If Image1.Visible Then
            Image1.Visible = False
            Image2.Visible = True
        Else
            Image1.Visible = True
            Image2.Visible = False
        End If
    End Sub

Praktische Beispiele

Ein Beispiel für die Verwendung eines Buttons mit einem Bild:

  • Erstelle zwei Bilder: Lade zwei verschiedene Bilder in dein Excel-Dokument (z.B. Button1.png und Button2.png).
  • Verwende den folgenden VBA-Code:
    Private Sub Image1_Click()
        If Image1.Picture = Worksheets("Tabelle2").Image1.Picture Then
            Image1.Picture = Worksheets("Tabelle2").Image2.Picture
        Else
            Image1.Picture = Worksheets("Tabelle2").Image1.Picture
        End If
    End Sub

Vergewissere dich, dass die Bilder in einem versteckten Tabellenblatt gespeichert sind, um den Zugriff zu erleichtern.


Tipps für Profis

  • Hover-Effekt: Du kannst einen Hover-Effekt hinzufügen, indem du den MouseMove-Event in VBA verwendest, um das Bild zu wechseln, wenn der Mauszeiger über dem Button ist.

  • Bilder in Excel einbetten: Wenn du Bilder direkt in Excel integrieren möchtest, achte darauf, dass sie in einer geeigneten Größe vorliegen, um die Schärfe zu bewahren.


FAQ: Häufige Fragen

1. Wie kann ich ein Bild als Button nutzen, ohne die Bilder extern zu speichern? Du kannst die Bilder in einem versteckten Tabellenblatt speichern und im VBA-Code darauf zugreifen.

2. Was tun, wenn mein Bild beim Klicken unscharf wird? Stelle sicher, dass die Bilder in der richtigen Größe eingefügt werden und nicht skaliert werden müssen. Verwende hochauflösende Bilder für bessere Ergebnisse.

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