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:
768
Rating: Antwort:
  Ja
Thema:
Aufruf von Sub funktioniert nicht!
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

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