Verwendung von IDs bei VBA-Makros in Excel 2003

TenchiMuyo1984

Neu angemeldet
Registriert
22 Okt. 2013
Beiträge
9
Ich weiß nicht, ob ich hier richtig bin.
Wenn nein, möge man diesen Thread bitte an die richtige Stelle verschieben. ;)

[src=vbnet]Function rowbegin(building_id)
rowbegin = 3
If building_id = 0 Then
rowbegin = rowbegin
Else:
For lauf = 1 To building_id Step 1
rowbegin = rowbegin + Range("C" & rowbegin - 1) + 1
Next
End If
End Function

Function rowsum(building_id)
rowsum = 1
For lauf = 0 To building_id Step 1
rowsum = rowsum + Range("C" & rowsum + 1) + 1
Next
End Function

Function EinAusblenden(building_id)
Lines_begin = rowbegin(building_id)
Lines_end = rowsum(building_id)
If Rows(Lines_begin & ":" & Lines_end).EntireRow.Hidden = True Then
Rows(Lines_begin & ":" & Lines_end).EntireRow.Hidden = False
Else:
Rows(Lines_begin & ":" & Lines_end).EntireRow.Hidden = True
End If
End Function

Sub building_00()
EinAusblenden (0)
End Sub

Sub building_01()
EinAusblenden (1)
End Sub

Sub building_02()
EinAusblenden (2)
End Sub

Sub building_03()
EinAusblenden (3)
End Sub

Sub building_04()
EinAusblenden (4)
End Sub

Sub building_05()
EinAusblenden (5)
End Sub

Sub building_06()
EinAusblenden (6)
End Sub

Sub building_07()
EinAusblenden (7)
End Sub

Sub building_08()
EinAusblenden (8)
End Sub

Sub building_09()
EinAusblenden (9)
End Sub

...[/src]

Zu meinem Problem.
Wie man ganz deutlich sehen kann, muss ich für jede ID eine eigene Sub erstellen, die aber nur in der Nummer variiert.
Insgesamt habe ich ~70 solche Nummern zu vergeben. Für jede eine eigene Sub zu erzeugen finde ich äußerst lästig!

Die Buttons sind Schaltflächen, die ich über Leiste "Formular" und "Schaltfläche" gezeichnet habe, denen ich dann ein Makro zuweise.

Gibt es eine Möglichkeit, wie man bei Aufruf der Sub eine ID vom Button dem Makro übergeben könnte?

MfG
----- ===== TenchiMuyo1984 ===== -----​
 
Da kommen sie angekrochen aus unter dem Deckel!
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #3
Und was hat das jetzt bitte mit dem Thema/der Frage zu tun? ....

MfG
----- ===== TenchiMuyo1984 ===== -----
 
Du kannst mit "Application.Caller" auf die Beschriftung des Buttons zugreifen der geklickt wurde (die normalen Buttons nicht die AktivX Buttons!)
Das heißt zum Test kannst du dem ersten Button z.B. das Makro "test" zuweisen und den Code hier im VBA-Editor einfügen
[src=vb]
Public sub test()
msgbox Application.Caller
End Sub
[/src]

dann sollte beim klicken des ersten Buttons eine Box mit dem Namen des Buttons erscheinen.
Über den Namen und ein select Case kannst du dann natürlich die passende Funktion aufrufen...
 
  • Thread Starter Thread Starter
  • #5
Ah, hast Recht.

Es kommt nun ein Fenster mit dem Inhalt:

xx steht dabei für die Nummer des Buttons.

Ist schonmal gut, aber kann man die Nummerierung irgendwie selber anpassen?
Habe mir das mal bei einigen getestet, und die Nummern sind durcheinander. Eine eigene Vergabe wäre da deutlich angenehmer.
Haste da auch einen Vorschlag?

MfG
----- ===== TenchiMuyo1984 ===== -----​
 
Zuletzt bearbeitet:
Wenn du die Schaltfläche mit der rechten Maustaste anklickst steht in der Ecke zwischen Zeilenzahlen und SpaltenBezeichnern der Text der beim Klick ausgegeben wird - da kannst du auch einfach Zahlen vergeben wie es dir passt...
 
Zurück
Oben