Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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
Inhaltsverzeichnis

Checkbox wenn True BackColor ändern oder ähnliches

Checkbox wenn True BackColor ändern oder ähnliches
18.12.2013 23:30:54
Marc
Hallo zusammen,
Ich schreibe z.z einen Kostenstellenplan, lief bisher auch super trotz bescheidener VBA Kenntnisse. Ich habe heute schon zig verschiedene Google anfragen dazu gestellt aber leider keine Lösung gefunden.
Ich habe mir einer Userform erstellt in der man später die einzelen Mitarbeiter rauslöschen kann. Dazu habe ich mir 50 checkboxen angelegt die nur angezeigt werden wenn auch ein Mitarbeiter in der Zelle vorhanden ist. Das klappt auch soweit...
Was ich jetzt erreichen möchte ist, das sobald eine Checkbox ausgewählt ist, das BackColor oder ForeColor sich Rot färbt.
Das ist mein Code bisher:
Dim i As Variant
For i = 1 To 50
Controls("Checkbox" & i).Caption = Sheets("Gesamtübersicht").Cells(8, 5 + i).Value
If Sheets("Gesamtübersicht").Cells(8, 5 + i).Value = "" Then
Me.Controls("CheckBox" & i).Visible = False
Else
Me.Controls("CheckBox" & i).Visible = True
End If
If Me.Controls("CheckBox" & i).Value = True Then
Me.Controls("CheckBox" & i).ForeColor = vbBlack
Else
Me.Controls("CheckBox" & i).ForeColor = vbRed
End If
Next
End Sub
Bin auch gern für andere Lösung offen, wie zb das mir eine MsgBox die Werte der ausgewählten Checkboxen ausgibt. Es sollte nur Klar erkennbar sein, welche Mitarbeiter man gerade löschen will.
Im moment kraust es mich schon vor dem nächsten Code der die entsprechende Bereiche dann auch leeren soll :/... vllt kann mir ja da schon mal jemand ein Tip geben :)
Freu mich auf Hilfe und fände es super wenn ihr mir mein Fehler kurz erklären könntet
danke!!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox ist hier besser als viele Checkboxen
19.12.2013 00:47:22
fcs
Hallo Marc,
den Farbumschlag der Checkboxen kann man nur realisieren, wenn man ein entsprechendes Ereignis für jede Checkbox anlegt oder ein entsprechendes Klassenmodul erzeugt.
Die Programmierung wird einfacher, wenn du eine 2-spaltige Listbox mit Mehrfachauswahl verwendest statt einer Vielzahl von Checkboxen.
In der 2. Spalte der Listbox wird wird beim Einlesen der Namen die Spalte gespeichert in der der Name steht. So steht diese Info direkt zur Verfügung, wenn die in der Listbox markierten Namen abgearbeitet werden.
Hier eine kleine Beispieldatei.
https://www.herber.de/bbs/user/88572.xlsm
Gruß
Franz

Anzeige
AW: Listbox ist hier besser als viele Checkboxen
19.12.2013 09:09:52
Marc
Das ist ja genial, schon mal vielen Dank dafür...
aber wo in dem Code kann ich den anpassen der er nicht nur auf Zeile 8 ClearContents anwendet sonder die entsprechende Spalte von 8 - 400?
Private Sub cmbLoeschen_Click()
'markierte Namen löschen
Dim lngSpalte As Long
If MsgBox("Markierte Namen jetzt löschen?", vbQuestion + vbOKCancel, _
"N A M E N   L Ö S C H E N") = vbCancel Then Exit Sub
Dim intItem As Integer
With Me.ListBox1
For intItem = 0 To .ListCount - 1
If .Selected(intItem) Then
lngSpalte = .List(intItem, 1)
With Worksheets("Gesamtübersicht")
.Cells(8, lngSpalte).ClearContents
End With
End If
Next intItem
End With
Call prcAuswahllisteFuellen
End Sub

Anzeige
AW: Listbox ist hier besser als viele Checkboxen
19.12.2013 09:25:21
hary
Moin Marc
.Cells(8, lngSpalte).Resize(393, 1).ClearContents

gruss hary

AW: Listbox ist hier besser als viele Checkboxen
19.12.2013 09:44:40
fcs
Hallo Marc,
als Alternative zu Harys Vorschlag und ggf. etwas leichter für einen VBA-Anfänger nachzuvollziehen.
            With Worksheets("Gesamtübersicht")
.Range(.Cells(8, lngSpalte), .Cells(400, lngSpalte)).ClearContents
End With
Gruß
Franz

AW: Listbox ist hier besser als viele Checkboxen
19.12.2013 12:48:35
Marc
Vielen Dank euch zwei!! Läuft wie es soll

AW: Listbox ist hier besser als viele Checkboxen
21.12.2013 00:34:44
Marc
Guten Abend,
muss euch doch noch mal was dazu fragen, war so davon begeistert das es funktioniert das mir das anfangs gar nicht auffiel :)
Beim einlesen der Listbox stehen rechts die Spalten, kann man das ausblenden? Für die Leute die später mal damit arbeiten wirkt das sicherlich etwas verwirrend!
Danke und Guß Marc

Anzeige
ColumnCount auf 1 setzen
21.12.2013 08:31:59
Matthias
Hallo
Setz ColumnCount der Listbox (in deren Eigenschaften) von 2 auf 1
Gruß Matthias

AW: Listbox ist hier besser als viele Checkboxen
21.12.2013 10:08:43
fcs
Hallo Marc,
du kannst die die Eigenschaft "ColumnWidths" der Listbox entsprechend anpassen
150Pt;0Pt
Dann wird die 2. Spalte nicht angezeigt.
Mathias Vorschlag funktioniert auch. Widerspricht aber irgendwie meiner Logik für eine mehrspaltige Listbox.
Gruß
Franz

AW: Listbox ist hier besser als viele Checkboxen
21.12.2013 11:03:35
Marc
Danke für die zwei Ratschläge, funzen natürlich beide!!
Wobei ich mich für die Varinate von fcs entschieden habe, bei Matthias seinem vorschlag hatte ich probleme mit der Feineinstellung da ich dann ein verticalbar bekommen habe. Die Varinate von fcs ist da einfacher zu handhaben.
Wünsch euch zwei eine frohes Fest!!
Gruß
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