VBA Makros
#1
Moin zusammen,

ich habe folgende Thematik.
Bisher habe ich ein Dokument erstellt, wo durch Klick auf eine Schaltfläche in Zelle "B2", +1 gerechnet wird in Zelle "C2" und in Zelle "D2" der Text "Ja" erscheint.
Ich würde es gern haben, dass wenn ich noch einmal auf diese Schaltfläche klicke, die Zelle wieder auf 0 springt, also -1 gerechnet wird. Der Text müsste dann natürlich auch entsprechend auf "Nein" umschalten.
Und das ganze dann sich immer wieder wiederholend.

Leider stoße ich da an meine Grenzen.
Könnte mir hier vielleicht jemand helfen?

Code:
Sub Schaltflaeche_Klicken()
  With ActiveSheet.Buttons(Application.Caller).TopLeftCell
    Select Case .Column
      Case 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56
        .Offset(, 1).Value = .Offset(, 1).Value + 1
        .Offset(, 2).Value = IIf(.Offset(, 1) = 1, "Ja", "Nein")
        End Select
  End With
End Sub
Sub AllenFormularschaltflaechenMakroZuweisen()
  Dim oButton As Button
  For Each oButton In ActiveSheet.Buttons
    oButton.OnAction = "Schaltflaeche_Klicken"
  Next oButton
End Sub


Angehängte Dateien
.xlsm   Mappe1 - Kopie - Kopie.xlsm (Größe: 79,88 KB / Downloads: 7)
Antworten Top
#2
In VBA

Code:
With ActiveSheet.Buttons(Application.Caller).TopLeftCell
  If (.Column -2) mod 3 = 0 then .Offset(, 1).resize(,2) = array(.Offset(, 1) +1,format(.Offset(, 1)=0,"yes/No"))
End with
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hm...

also wenn ich das mit einfüge:

Code:
Sub Schaltflaeche_Klicken()
  With ActiveSheet.Buttons(Application.Caller).TopLeftCell
    Select Case .Column
      Case 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56
        .Offset(, 1).Value = .Offset(, 1).Value + 1
        .Offset(, 2).Value = IIf(.Offset(, 1) = 1, "Ja", "Nein")
        If (.Column - 2) Mod 3 = 0 Then .Offset(, 1).Resize(, 2) = Array(.Offset(, 1) + 1, Format(.Offset(, 1) = 0, "yes/No"))
        End Select
End With
End Sub

Dann rechnet er auf einmal +2 in der nächsten Zelle. Huh
Antworten Top
#4
Hi,

du sollst nicht einfügen, sondern der Code von snb ersetzt deinen Code!
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#5
(13.09.2023, 14:41)HKindler schrieb: Hi,

du sollst nicht einfügen, sondern der Code von snb ersetzt deinen Code!

Habe ich auch probiert.
Dann kommt folgende Fehlermeldung:

"Fehler beim Kompilieren:

Außerhalb einer Prozedur ungültig"

Was auch immer mir das sagen soll.
Antworten Top
#6
Grundlagen, Grundlagen....

Excel 2021 für Dummies
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
Hi,

Sub Schaltflaeche_Klicken()
und
End Sub
müssen natürlich stehen bleiben. 32
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#8
(13.09.2023, 16:38)HKindler schrieb: Hi,
Sub Schaltflaeche_Klicken()
und
End Sub
müssen natürlich stehen bleiben. 32

Erst einmal vielen Dank für die nette Antwort Helmut. 28

So schaut das ganze jetzt aus:
Code:
Sub Schaltflaeche_Klicken()
With ActiveSheet.Buttons(Application.Caller).TopLeftCell
  If (.Column - 2) Mod 3 = 0 Then .Offset(, 1).Resize(, 2) = Array(.Offset(, 1) + 1, Format(.Offset(, 1) = 0, "yes/No"))
End With
End Sub

Jetzt zählt mir das Programm wieder wie gewünscht bei Klick auf "1" und stellt auf "Ja" um. Beim nächsten Klick geht es aber nicht zurück auf "0", sondern auf "2", dann auf "3" usw.
Das ist dann ja genau das selbe wie es vorher war. Ich wollte ja, dass es beim zweiten Klick auf "0" und "Nein" steht, beim dritten dann wieder auf "1" und "Ja".

Vielleicht hat ja jemand doch noch eine Lösung.

Und ja, ich werde mir Excel für Dummies zulegen. 43
Antworten Top
#9
Hallo,

Code:
Sub Schaltflaeche_Klicken()
  With ActiveSheet.Buttons(Application.Caller).TopLeftCell
    Select Case .Column
      Case 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56
        .Offset(, 1).Value = IIf(.Offset(, 1) = 1, 0, 1)
        .Offset(, 2).Value = IIf(.Offset(, 1) = 1, "Ja", "Nein")
    End Select
  End With
End Sub

Gruß, Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • TMV2106
Antworten Top
#10
Perfekt, vielen, vielen Dank. 18 23
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste