Clever-Excel-Forum

Normale Version: Bild per Schaltfläche einfügen (VBA nötig)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich möchte meiner Tochter ein kleines Excel Spiel zur Verfügung stellen.
Für die meisten von euch sicher ganz einfach umzusetzen.

Es geht darum, dass ich verschiedene Schaltflächen habe und diese unterschiedlich benennen möchte: (Biene, Hund, Hase, etc.)
Im grauen Feld (siehe Screenshot) soll dann das von mir bereitgestellte Bild auf C:\XXXXXX erscheinen. 

Es wäre schön (wenn auch nicht zwingend) wenn der Platzhalter in dem das Bild erscheint eine fest vorgegebene Größe hat und sich das Bild dann dementsprechend anpasst.
(Um halt die Schaltflächen etc. nicht zu überdecken.)

Klickt man dann ein anderes Tier an, sollte das vorherige Bild verschwinden / zeitgleich das neue Tier / Bild erscheinen.

Danke vorab für jeden Code/Hinweis/Hilfe.

VG

p.s. sollte das Thema in der falschen Themenbereicht erstellt worden sein, bitte ich um Nachsicht - unter "mit VBA" konnte ich kein Thema erstellen...



Nachtrag:
auch wäre es toll, wenn der gedrückte Button / Schaltfläche dann auch umrandend ist, um die visuelle Verbindung zwischen Bild und Schaltfläche herzustellen.
Also Schaltfläche "Biene" ist gedrückt --> es erscheint das Bild "Biene" --> gleichzeitig zieht man dass die Schalftfläche Biene aktiv ist. Entweder ist der Button dann andersfarbig und/oder umrandend.

VLG
Hi,

schau dir doch mal dieses Video an. Geht das in die gewünschte Richtung? https://www.youtube.com/watch?v=Ot-iwCUng8M
Hi Günter,

danke für die schnelle Antwort.

Das Video hab ich in der Tat auch gesehen. Wahrscheinlich geht es in die richtige Richtigung, ich kann es nur nicht umsetzen.
Hat mich beim ansenen (ohne Namensmanager) eher an S-Verweis erinnert.

Kann ich denn (und wie), nachdem ich alle Bilder in Zellen gepackt und mit Namen versehen habe diesen Namen einer Schalftfläche zuordnen?

VG
Hallo,

Zitat:Kann ich denn (und wie), nachdem ich alle Bilder in Zellen gepackt und mit Namen versehen habe diesen Namen einer Schalftfläche zuordnen?

Wenn Du Deine Datei und die Bilder zur Verfügung stellst und es nicht so ganz schnell fertig sein muß,
beispielsweise, weil Deine Tochter morgen Geburtstag hat oder so, dann würde ich das schon machen.

Zeit brauche ich, weil ich bald wieder im Krankenhaus liegen werde und darum gerade auch ein wenig
mehr Zeit für mich selbst einplanen muß. Ein Hin- und Herschreiben im Forum wird dann auch nicht
möglich sein. Darum würde ich Dir das, gesetzt den Fall, Du bist einverstanden, als Fertiglösung bieten.

Du mußt es aber auch nicht unbedingt mir überlassen. Im Forum gibt es genügend andere Helfer.
Hallo Käpt'n Blaubär,

vielen Dank für Dein Angebot.
Wirklich sehr nett von Dir. Ist überhaupt nicht eilig.

ABER (wie drück ich das aus ohne, dass es falsch verstanden wird:)
Würde unter den Umständen (KKH / Gesundheit) Dir das "Projekt" ungern geben. 
Wünsche Dir schnelle Genesung und drücke Dir die Daumen - bin sicher, dass mir hier jemand der die Kapazität frei hat helfen kann.

VG
Hallo,

Zitat:Würde unter den Umständen (KKH / Gesundheit) Dir das "Projekt" ungern geben.

... macht ja nix. Auch ich will keine mit multiblen, multiresistenten Krankenhauskeimen verseuchten Programme.

Dann wünsche ich Dir mal gutes Gelingen.
Hallöchen,

hier mal ein Ansatz mit 2 Bildern und 2 Optionbuttons. Die Bilder fügst Du ein und passt die Größe an. Entweder benennst Du die Bilder nach dem Einfügen um oder du merkst Dir die Namen … Statt der Schaltflächen habe ich hier OptionButtons aus den Formularelementen. Optionbuttons auf einem Blatt haben den Vorteil, dass man sich keine Gedanken um die Darstellung machen muss, welcher gedrückt ist und welche nicht Smile Grau sind die durch die Zellfarbe, über der sie liegen.

Hier mal der Code einzeln, die Mappe mit Code im Anhang.

Code:
Option Explicit

Sub Optionsfeld1_Klicken()
test "Picture 2"
End Sub
Sub Optionsfeld2_Klicken()
test "Picture 4"
End Sub
Sub test(strPic As String)
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
 If sh.Type = msoPicture Then sh.Visible = sh.Name = strPic
Next
End Sub
Hallöchen,

das ist eine sehr schöne Umsetzung. 
Vielen Vielen Dank dafür.

Wenn ich es nun aber selbst versuche umzusetzen (zum Verständnis, und in einer eigenen Mappe mit kopierten Code) passiert: nichts. Sad

Ich habe in Deinem Code "nur" die Schaltfläche ergänzt. Hintergrund ist, dass ich keine vernünftige Option gefunden habe das Optionsfeld in Schrift und Größe nach eigener Vorstellung anzupassen.
Das habe ich dann in einer eigenen Mappe eingefügt --> eine Schaltfläche im Entwicklermodus erstellt und dieser mit Rechtsklick dann z.B. das Makro Schaltfläche1_Klicken zugewiesen.
Wenn ich nun auf die Schaltfläche klicke, verschwindet das Bild Sad

Die einzelnen Bilder heißen natürlich auch so:
Hase
Biene
Pferd
Igel

Was mache ich falsch :22:

Was bedeutet im Code "test"? Muss ich hier noch etwas ändern?

Code:
Option Explicit

Sub Schaltfläche1_Klicken()
test "Hase"
End Sub
Sub Schaltfläche2_Klicken()
test "Biene"
End Sub
Sub Schaltfläche3_Klicken()
test "Pferd"
End Sub
Sub Schaltfläche4_Klicken()
test "Igel"
End Sub
Sub test(strPic As String)
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
 If sh.Type = msoPicture Then
  sh.Visible = sh.Name = strPic
 End If
Next
End Sub

(17.11.2019, 01:28)Käpt\n Blaubär schrieb: [ -> ]Hallo,


... macht ja nix. Auch ich will keine mit multiblen, multiresistenten Krankenhauskeimen verseuchten Programme.

Dann wünsche ich Dir mal gutes Gelingen.

Hallo,

ist wohl doch falsch angekommen oder ich verstehe es falsch.  Huh

Ich bin Dir für Dein Angebot sehr dankbar. Wollte damit nicht sagen, dass ich Dein Programm nicht will. 
Eher, dass ich Deine Zeit / Kraft nicht in Anspruch nehmen kann/will wenn Du sie für Dich selbst am Besten brauchen könntest.

VG
Hallöchen,

die OptionButtons haben jeweils ein eigenes Makro, in welchem Du das Makro zum Ein- und Ausblenden startest. Selbiges heißt bei mir test, Du könntest auch im ganzen Modul das Wort test z.B. durch BildWechsel ersetzen.
Ob Deine Bilder auch so heißen, siehst Du bei angeklicktem Bild oben links in dem kleinen Eingabefeld, wo sonst die Zelladressen stehen. Excel vergibt beim Einfügen von Bildern erst mal eigene Namen. Biene.png wurde dadurch z.B. zu Picture 2. Du müsstest das dann erst wieder umbenennen in Biene.
Das Makro test blendet in einer Schleife alle Bilder aus bis auf z.B. "Biene" Und die heißt vielleicht nicht mehr so Sad


Die OptionButtons brauchst Du nicht unbedingt direkt zu beschriften. Auch dafür könntest Du die Möglichkeiten der dahinter liegenden Zelle nutzen Smile

[attachment=27599]

Alternativ würden die OptionButtons aus ActiveX ein paar mehr Möglichkeiten bieten als die vom Formular.
Hallo,

... ist wohl doch falsch angekommen oder ich verstehe es falsch. 


... neee, es ist nicht falsch angekommen und ich bin Dir auch nicht böse oder sowas.

Ich habe mir inzwischen auch überlegt, daß ein junger Mensch wie Du es offenbar noch bist,
vielleicht zwangsläufig auf den von Dir angedachten Gedankenweg kommen muß, auch wenn
er noch so falsch ist  :16:
Im Krankenhaus verbringst Du nämlich 98% der Zeit nur mit stumpfsinnigen Warten. Sei es,
daß Du auf den Beginn einer angesetzten Untersuchung wartest, oder auf das drei Mal täglich
vorgesehene Abfüttern. Irgendwann hast Du genug Schlaf nachgeholt, langweilst Dich zu Tode
und bist damit beschäftigt, darauf zu warten, daß es irgendwo juckt, damit Du einen Grund hast,
Dich zu kratzen.

Fazit: Ich bin Dir keineswegs böse, daß Du Dich so entschieden hast.
Seiten: 1 2