193 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)
Bearbeitet von addeguddi

Hallo an das Forum und Visual Spezialisten

wer kann mich hierbei unterstützen?

Möchte gerne, wenn ich auf mein Steuerelement klicke, das nicht nur die dazugehörige Zahl angezeigt wird sondern auch der dazu gehörige Namen. Dadurch würde ich mir einige Klicks ersparen.

Beispiel: Ich klicke auf Steuerelement es erscheint die Zahl darauf hin sollte automatisch die Zellen (Name) erscheinen. Habe die Spalte Vor der Spalte LO fixiert, damit wenn die Zahl von 1 auf 2 geklickt wird, diese nach links verschoben wird und die Spalten LV bis MA erscheint. Dies ist fortlaufend bis  zu den Spalten RT :R Y

Habe folgenden Befehl in Visualbasic. Das mir netterweise ein Kollege eures Teams erstellt hat. Da ich das leider nicht so kapiere.

Private Sub SpinButton1_Change()

ActiveSheet.Unprotect

If SpinButton1.Value < 1 Then SpinButton1.Value = ActiveSheet.Range("f1")

If SpinButton1.Value > ActiveSheet.Range("f1") Then SpinButton1.Value = 1

ActiveSheet.Range("g1") = SpinButton1.Value

Dies sollte auch so bleiben, wenn möglich.

Danach habe ich Makros erstellt und muss dann auch wieder auf den Button drücken, damit er zu dem dazu gehörigem Namen springt. Es sind insgesmat 24 Makròs.

Sub Makro1()

'

' Makro1'

'

    Range("LO2:LQ2").Select

    ActiveWindow.SmallScroll ToRight:=7

    Range("LR2:LT2").Select

End Sub

Sub Makro2()

'

' Makro2'

    Range("LV2:LX2").Select

    ActiveWindow.SmallScroll ToRight:=7

    Range("LY3:MA3").Select

End Sub

Vielleicht gibt es da eine Lösung

In der Hoffnung auf eine Lösung

Gruß Adde

2 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)
ausgewählt von halfstone
 
Beste Antwort

Hallo Adde,

ich hoffe, ich verstehe dich richtig.

Ändere das Makro wie folgt ab:

Private Sub SpinButton1_Change()
ActiveSheet.Unprotect
If SpinButton1.Value < 1 Then SpinButton1.Value = ActiveSheet.Range("J1")
If SpinButton1.Value > ActiveSheet.Range("J1") Then SpinButton1.Value = 1

ActiveSheet.Range("g1") = SpinButton1.Value

Select Case SpinButton1.Value
  Case Is = 1: Makro1
  Case Is = 2: Makro2
End Select

End Sub

Den Teil mit Case Is musst du natürlich für alle deine aufgezeichneten Makro machen. Makro1 etc. ist der Name des Makros, das ausgeführt werden soll, wenn der entsprechende Spieler ausgewählt wurde.

Noch kurz zur Erklärung des Spinbutton-Makros wink:

Hier wird geprüft, ob der Wert des Spinbuttons kleiner 1 ist, dann wird die Anzahl der Spieler, wie er in F1 steht eingetragen. Ist der Wert größer als der Wert, der in Zelle F1 steht, dann wird der Wert 1 eingetragen. So wird verhindert, dass du mit dem Spinbutton einen Spieler auswählst, den es gar nicht gibt.

Gruß

M.O.

0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)

Guten Morgen M.O.

du hast mich richtig verstanden. Klappt super. Habe Case Is auf 24 Makros erweitert und es funktioniert yessuper.

Vielen leben Dank

Gruß Adde

...