Thema Datum  Von Nutzer Rating
Antwort
13.08.2015 16:03:50 Michi
Solved
13.08.2015 19:11:34 Gast72234
NotSolved
13.08.2015 21:52:06 Gast17090
NotSolved
Blau Aufruf von Sub funktioniert nicht!
14.08.2015 10:30:22 Gast87150
NotSolved
14.08.2015 12:08:43 Gast26016
NotSolved
14.08.2015 12:56:50 Michi
NotSolved
15.08.2015 15:56:59 Gast10461
NotSolved
17.08.2015 10:50:48 Gast62125
NotSolved

Ansicht des Beitrags:
Von:
Gast87150
Datum:
14.08.2015 10:30:22
Views:
897
Rating: Antwort:
  Ja
Thema:
Aufruf von Sub funktioniert nicht!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
 
Sub CheckboxToggle(Cbo As MSForms.CheckBox)
  If Cbo.Value Then
    Range("A" & GetIndex(Cbo)).Font.ColorIndex = 8
  Else
    Range("A" & GetIndex(Cbo)).Font.ColorIndex = 10
  End If
End Sub
 
Private Function GetIndex(Cbo As MSForms.CheckBox) As Long
  Dim str As String
  Dim i As Long
  For i = Len(Cbo.Name) To 1 Step -1
    Select Case Mid$(Cbo.Name, i, 1)
      Case "0" To "9"
        str = str & Mid$(Cbo.Name, i, 1)
      Case Else
        Exit For
    End Select
  Next
  GetIndex = CLng(str)
End Function
 
Private Sub CheckBox1_Click()
  Call CheckboxToggle(CheckBox1)
End Sub
 
Private Sub CheckBox2_Click()
  Call CheckboxToggle(CheckBox2)
End Sub
 
usw.

Besser wäre jedoch du würdest dafür Formular-Steuerelemente nehmen. Dann kannst du nämlich, dank Application.Caller, für alle Kontrollfelder nur eine einzige Prozedur schreiben und weißt diese dann allen zu.

Du kannst damit also auf das

1
2
3
4
5
6
7
8
9
Private Sub CheckBox1_Click()
  Call CheckboxToggle(CheckBox1)
End Sub
 
Private Sub CheckBox2_Click()
  Call CheckboxToggle(CheckBox2)
End Sub
 
usw.

verzeichnten.

 

PS: Anstatt den Index aus dem Kontrollfeldnamen zu ziehen, kann man auch die Zelle auf der das Control liegt bestimmen und davon dann die Zeile nehmen.

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.08.2015 16:03:50 Michi
Solved
13.08.2015 19:11:34 Gast72234
NotSolved
13.08.2015 21:52:06 Gast17090
NotSolved
Blau Aufruf von Sub funktioniert nicht!
14.08.2015 10:30:22 Gast87150
NotSolved
14.08.2015 12:08:43 Gast26016
NotSolved
14.08.2015 12:56:50 Michi
NotSolved
15.08.2015 15:56:59 Gast10461
NotSolved
17.08.2015 10:50:48 Gast62125
NotSolved