Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrfach Klick auf cmd, Code wieder ausführen

Mehrfach Klick auf cmd, Code wieder ausführen
22.05.2019 16:25:04
Dieter(Drummer)
Guten Tag VBA Spezialisten/innen,
mit Klick auf CommandButton1 (cmd1), auf Userform (usf1), werden Immages 1 - 39 ausgeblendet und Image 40 (img40) eingeblendet. Das funktionioniert mit 1x Klick.
Klicke ich 2tes mal auf cmd1, so funktionert es nicht wieder.
Bitte Hilfe, den Code so ergänzen, dass immer wieder mit neuem Klick der Code abläuft.
Danke für evtl. Hilfe, grüßt
Dieter(Drummer)
  • 
    Private Sub cmd1_Click()
    On Error Resume Next
    Dim i As Integer
    For i = 11 To 39
    usf1(CStr("img" & i)).Visible = False
    Next
    usf1.img40.Visible = True
    If cmd1.Caption = "a b c " Then
    usf1.cmd1.Caption = "A B C"
    Else
    usf1.cmd1.Caption = "a b c"
    For i = 11 To 39
    usf1(CStr("img" & i)).Visible = True
    Next
    usf1.img40.Visible = False
    End If
    End Sub
    


  • 17
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 16:30:52
    Matthias
    Hallo
    Was soll denn funktionieren?
    Klicke ich 2tes mal auf cmd1, so funktionert es nicht wieder. ?
    Willst Du die Cotrols dann wieder einblenden, oder wie meinst Du das?
    Das würde dann so gehen
    usf1(CStr("img" & i)).Visible = NOT usf1(CStr("img" & i)).Visible
    
    Gruß Matthias
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 16:47:58
    Dieter(Drummer)
    Danke Matthias,
    beim 2. Klick wird wieder eingeblendet, das geht auch. Ein 3. Klick der wieder Ausblendet, also wieder von vorne, wie 1. Klick, geht nicht. Also im Gründe alles wiederholen.
    Sorry habe mich da wohl nicht korrekt ausgedrückt.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 17:02:04
    Matthias
    Versteh ich nicht, Dieter.
    Wenn Du beim 2.Klick alles mit NOT umkehrst,
    hast Du doch den Zustand wie vor dem 1.Klick.
    Gruß Matthias
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 17:11:15
    Dieter(Drummer)
    Hallo Matthias,
    zum besseren Verständis ist hier meine Musterdatei. Der Code betrifft den cmd1 auf der Userform.
    Evtl. ist es so leichter anzupassen.
    Gruß, Dieter(Drummer)
    Datei: https://www.herber.de/bbs/user/129958.xlsm
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 17:32:59
    Matthias
    Hallo Diter
    Funktioniert eigentlich so wie ich es beschrieben habe.
    Private Sub cmd1_Click()
    Dim i As Long
    For i = 11 To 39
    Controls("img" & i).Visible = Not Controls("img" & i).Visible
    Next
    img40.Visible = Not img11.Visible
    End Sub
    

    Alles andere hatte ich zum Testen auskommentiert.
    Gruß Matthias
    Anzeige
    AW: Danke Matthias, klappt prima und ...
    22.05.2019 17:41:02
    Dieter(Drummer)
    ... hätte nicht gedacht, dass der Code so knapp sein kann und funktioniert.
    Danke und einen erfreulichen Abend.
    Gruß, Dieter(Drummer)
    und mit Text - Wechsel so ...
    22.05.2019 17:51:38
    Matthias
    Hallo
    Für den Wechsel der Eigenschaft: Caption, dann so:
    'Schreibweise wechseln ...
    Private Sub cmd1_Click()
    Dim i As Long
    cmd1.Caption = IIf(cmd1.Caption = "a b c", "A B C", "a b c")
    For i = 11 To 39
    Controls("img" & i).Visible = Not Controls("img" & i).Visible
    Next
    img40.Visible = Not img11.Visible
    
    wobei auch ich das Leerzeichen hinter c entfernt habe!
    Gruß Matthias
    Anzeige
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 16:34:47
    Nepumuk
    Hallo Dieter,
    so besser?
    Private Sub cmd1_Click()
        Dim i As Long
        If cmd1.Caption = "a b c " Then
            cmd1.Caption = "A B C"
            For i = 11 To 39
                Controls("img" & CStr(i)).Visible = False
            Next
            img40.Visible = True
        Else
            cmd1.Caption = "a b c"
            For i = 11 To 39
                Controls("img" & CStr(i)).Visible = True
            Next
            img40.Visible = False
        End If
    End Sub

    Gruß
    Nepumuk
    Anzeige
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 16:50:41
    Dieter(Drummer)
    Danke Nepumuk,
    dein Code passt prima. Aber wie ich auch Matthias geschrieben habe, soll der 3. Klick alles wiederholen, wie beim 1. Klick und das geht leider nicht.
    Sorry für meine unkorrekte Frage und evtl. hast du da auch eine Lösung.
    Gruß, Dieter(Drummer)
    AW: Mehrfach Klick auf cmd, Code wieder ausführen
    22.05.2019 17:31:28
    Nepumuk
    Hallo Dieter,
    lösch mal das Leerzeichen hinter dem c in der Caption-Eigenschaft des CommandButtons. Dann teste folgenden Code:
    Private Sub cmd1_Click()
        Dim i As Long
        If cmd1.Caption = "a b c" Then
            cmd1.Caption = "A B C"
            For i = 11 To 39
                Controls("img" & CStr(i)).Visible = False
            Next
            img40.Visible = True
        Else
            cmd1.Caption = "a b c"
            For i = 11 To 39
                Controls("img" & CStr(i)).Visible = True
            Next
            img40.Visible = False
        End If
    End Sub

    Gruß
    Nepumuk
    Anzeige
    AW: Danke Nepumuck, auch dein Code ...
    22.05.2019 17:50:25
    Dieter(Drummer)
    ... funktioniert wie gewünscht.
    Werde mich mit beiden Codevarianten, deinem und von Matthias, beschäftigen.
    Gruß und einen erfreulichen Abend,
    Dieter(Drummer)
    PS Ich bewundere immer wieder die Spezialisten/innen in diesem Forum.
    AW: Code Erweiterung mit Fehler Else ohne If
    23.05.2019 11:08:43
    Dieter(Drummer)
    Guten Tag Nepumuk,
    ich habe noch Kleinbuchstaben hinzugefügt, img40 bis img 49, und deinen Code angepasst. Meine Änderung funktioniert aber nicht und bricht mit "Else ohne IF" ab. Insgesamt werden die Kleinbuchstaben später "img40 bis img68" sein.
    Mit der Bitte um nochmalige Hilfe,
    grüßt Dieter(Drummer)
    Hier dein Code mit meiner jetzigen Anpassung, fett Msrkierung ist meine Änderung:
    'Funktioniert! Herber: Nepumuk am 22.05.2019 17:31:28
    'Groß- und Kleinbuchstaben aus-an
    Private Sub cmd1_Click()
    Dim i As Long
    If cmd1.Caption = "a b c" Then
    cmd1.Caption = "A B C"
    For i = 11 To 39
    Controls("img" & CStr(i)).Visible = False
    Next
    For i = 40 To 49
    Controls("img" & CStr(i)).Visible = True
    Else
    cmd1.Caption = "a b c"
    For i = 11 To 39
    Controls("img" & CStr(i)).Visible = True
    Next
    For i = 40 To 49
    Controls("img" & CStr(i)).Visible = False
    End If
    End Sub
    

    Anzeige
    Für 2 x For i=... fehlen die Next ! (owT)
    23.05.2019 16:25:36
    EtoPHG

    AW: Danke EtoPHG für den Hinweis und ...
    23.05.2019 16:40:12
    Dieter(Drummer)
    ... jetzt geht es. Habe den Code von Nepumuk miz deinem Hinweis nach einigen Versuchen geändert und jetzz klappt es wie gewünscht. Danke ...
    Gruß, Dieter(Drummer)
    Hier mein geänderter Code:
    Private Sub cmd1_Click()
    Dim i As Long
    If cmd1.Caption = "a b c" Then
    cmd1.Caption = "A B C"
    For i = 11 To 39
    Controls("img" & CStr(i)).Visible = False
    Next
    For i = 40 To 49
    Controls("img" & CStr(i)).Visible = True
    Next
    Else
    cmd1.Caption = "a b c"
    For i = 11 To 39
    Controls("img" & CStr(i)).Visible = True
    Next
    For i = 40 To 49
    Controls("img" & CStr(i)).Visible = False
    Next
    End If
    End Sub
    

    Anzeige
    BRAVO !
    23.05.2019 17:04:25
    robert
    dafür gibts die Bildschirmtastatur fertig...
    22.05.2019 17:59:17
    robert
    yes ... OSK
    22.05.2019 18:13:07
    Matthias
    ;-)

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige