Per Button Wert erhöhen in Excel VBA - Offset Funktion?

So sieht das Blatt aus :) - (Microsoft Excel, Office, VBA)

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich empfehle dir, einen Spinbutton (Drehfeld) zu verwenden. Das erspart dir eine Menge Aufwand.

Bei der ActiveX-Variante kannst du dieses Drehfeld auch als links-rechts-Variante darstellen, indem du die Maße des Buttons in die Länge ziehst.

Spinbutton Drehfeld - (Microsoft Excel, Office, VBA)
Legovogel 
Fragesteller
 11.10.2014, 23:37

Nachdem ich gegegoogelt hatte, wo ich das Drehfeld finde (die Entwicklertools waren bei mir nicht an) habe ich mit dieser Lösung erreicht, was ich wollte. Vielen Dank! :)

1
Suboptimierer  13.10.2014, 15:17
@Legovogel

Ich finde zwar die Lösung von PauleVBA noch eleganter, aber trotzdem vielen Dank für die Auszeichnung.

0

Folgender Vorschlag:

Lösche alle Buttons auf deinem Tabellenblatt (Sheet)

Färbe die Cellen C2 bis C... Grau, formatiere diese Zellen:

Ausrichtung Horizontal und Vertikal Zentriert

Rahmen darum

Schutz = Haken (ja)

Selber Vorgang für E2 bis E...

Inhalt '- oder '+ (Hochkomma und Minus oder Plus)

Nun sollte die Zelle einem Button ähnlich sehen

Jetzt markierts du noch die Werte-Zellen (D2 bis D...)

diese stellst du über Format Zellen auf Schutz nein (kein Haken)

Jetzt den Blattschutz einschalten.

dann schreibst du noch folgenden Code in den Code-Bereich des Blattes (Tablle1?):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MsgBox Target.Address
If Target.Column = 3 Then
    Target.Offset(0, 1) = Target.Offset(0, 1) - 1
    ' "Button" verlassen
    ActiveCell.Offset(0, 1).Activate
ElseIf Target.Column = 5 Then
    Target.Offset(0, -1) = Target.Offset(0, -1) + 1
    ' "Button" verlassen
    ActiveCell.Offset(0, -1).Activate
End If
End Sub

Und schon funzt es.

Das ActiveCell.Offset(0, -1).Activate und ActiveCell.Offset(0, 1).Activate dient nur dazu, die Zelle zu verlassen, damit man mehrfach hintereinander den selben "Button" drücken kann.

Hoffe es hilft

Oubyi, UserMod Light  09.10.2014, 22:03
DH!

Super Idee!

2
Legovogel 
Fragesteller
 11.10.2014, 23:36
@Oubyi, UserMod Light

Hey, ich habe deinen Vorschlag leider nicht ausprobiert, da ich es zu dem Zeitpunkt bereits mit dem Drehfeld gelöst hatte, das in der ersten Antwort vorgeschlagen wurde.

Da deine Lösung aber jemandem gefällt, nehme ich an, sie funktioniert genauso gut. Daher Daumen hoch für dich :)

Lg

1