Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Aufruf von Sub funktioniert nicht!
13.08.2015 16:16:13
Sub
Hallo,
ich hab eine Sub geschrieben, die ich dann innerhalb einer Checkbox aufrufen will. Ich habe ca 100 Checkboxen, die jede die selbe Funktion haben. Sie sollen die Schriftfarbe einer Zelle (hier A1 als Beispiel genommen) ändern, je nachdem ob sie angeklickt sind oder nicht. Natürlich letzendlich dann für jeweils verschiendene Zellen, aber das ist im Moment erstmal egal.
Um allerdings nicht 100 mal die selben Codezeilen zu haben, wollte ich eine allgemeine Sub schreiben und die jeweils in den Checkboxen aufrufen (was besseres fällt mir leider zur Zeit nicht ein).
Das funktioniert auch, allerdings wird nur beim ersten Anklicken die Farbe geändert und wene die CheckBox dann nochmal angeklickt wird, passiert nichts mehr. Ich kann mir allerdings nicht erklären, woran das liegt. Mit jedem Anklicken müsste die Methode ja eigentlilch neu aufgerufen werden.
Public Sub Checkboxen(ByVal i As Integer)
If Checkbox + i Then Range("A1").Font.ColorIndex = 8
If Not (Checkbox + i) Then Range("A1").Font.ColorIndex = 10
End Sub

' Methodenaufruf in CheckBox

Private Sub CheckBox14_Click()
Call Checkboxen(14)
End Sub

Kann sich jm erklären, woran das liegen könnte? Vielen Dank schonmal im vorraus!
Liebe Grüße
Michi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufruf von Sub funktioniert nicht!
13.08.2015 17:07:52
Sub
Hallo,
würde ich dann eher so machen:
Private Sub CheckBox14_Click()
    Call Checkboxen(CheckBox14)
End Sub

Public Sub Checkboxen(ByRef probjCheckBox As MSForms.CheckBox)
    If probjCheckBox Then
        Range("A1").Font.ColorIndex = 8
    Else
        Range("A1").Font.ColorIndex = 10
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Aufruf von Sub funktioniert nicht!
16.08.2015 12:29:34
Sub
Danke für deine Antwort! Hab leider daheim am Commputer kein Excel, jetzt muss ich bis morgen im Praktikum warten, bis ich deinen Code ausprobieren kann. Jetzt hab ich aber nach wie vor das Problem, dass ich in jeder Checkbox die Methode aufrufen muss ge?
Fällt dir da zufällig ein allgemeinerer Lösungsweg ein, also dass ich irgendwie eine Methode habe, die mit der aktuell angeklickten Checkbox durchläuft (ohne, dass ich halt in jeder der 100 Checkboxen die Methode wieder aufrufen müsste)? Oder ist das gar nicht möglich?
Liebe Grüße
Michi

AW: Aufruf von Sub funktioniert nicht!
16.08.2015 13:22:13
Sub
Hallo,
das kommt auf die Position der Checkboxen in der Tabelle an.
Es ist möglich deren Position auszulesen und daraus auf den Range zu schließen der gefärbt werden soll. Am besten mal eine Mustermappe hochladen.
Gruß
Nepumuk

Anzeige
fauler Kompromiß?
16.08.2015 13:54:59
Michael
Hi zusammen,
ich wäre viel zu faul, sooo viele ChBen anzulegen; ob es der user einem dankt, ist auch fraglich.
Wie wäre es damit?
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Font.ColorIndex = 8 Then
Target.Font.ColorIndex = 10
Else
Target.Font.ColorIndex = 8
End If
Cancel = True
End Sub
Wenn man nicht exakt die angeklickte Zelle haben will, kann man sich ja mit einem kleinen Umweg behelfen, hier für Spalte A:
If Cells(Target.Row, 1).Font.ColorIndex = 8 Then
Cells(Target.Row, 1).Font.ColorIndex = 10
Else
Cells(Target.Row, 1).Font.ColorIndex = 8
End If
Schöne Grüße,
Michael
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige