Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1228to1232
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

Problem mit Userform

Problem mit Userform
Franz
Hallo zusammen,
ich habe eine Userfor mit folgendem Code.

Private Sub UserForm_Activate()
Range("a1").Select
Dim X&
For X = 1 To 22
Me.Controls("Checkbox" & X).Value = Not Rows(X).Hidden
Next
End Sub


Private Sub CheckBox1_Click()
Range(Cells(30, 1), Cells(42, 1)).EntireRow.Hidden = Not CheckBox1.Value
End Sub
so geht es weiter mit den nächsten 21 Checkboxen
Eigentlich möchte ich den Zustand der ein- und ausblendeten Spalten beim Aufruf der Userform belassen und entsprechend anzeigen. Das X der jeweiligen Checkbox zeigt dann ab, ob die Spalten eingeblendet sind. Der jetztige COde aktiviert alle Checkboxen. Lasse ich den COde weg, sind dei Checkboxen alle nicht aktiviert, die Spalten sind dennoch eingeblendet.
Verständlich?
Viele Grüße
Franz

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Verständlich? Nein! Zeilen, Checkbox
18.09.2011 21:21:36
Matthias
Hallo
Verstehe fast nur Bahnhof!
Deine Spalten sind eigentlich Zeilen
EntireRow
Vielleicht meinst Du aber auch nicht Row sondern Column ?
Und wenn Du das was Du was Du im Code hast auch so willst, dann funktioniert das doch.
https://www.herber.de/bbs/user/76666.xls
Gruß Matthias
AW: Verständlich? Nein! Zeilen, Checkbox
18.09.2011 21:44:38
Franz
Hallo Matthias,
ja ich meinte natürlich Zeilen und keine Spalten. Sorry!
Dein Code funktioniert. Meiner nicht. Und ich weiß nicht warum.
Allerdings ist der Unterschied folgender:

Private Sub CheckBox1_Click()
Rows(1).Hidden = Not CheckBox1.Value
End Sub


Private Sub CheckBox1_Click()
Range(Cells(30, 1), Cells(42, 1)).EntireRow.Hidden = Not CheckBox1.Value
End Sub

Du blendest eine Zeile aus, ich mehrere (im Beispiel 30 bis 42). Liegt es daran? Und wenn ja, wie muss ich den Code ändern?
Viele Grüße
Franz
Anzeige
AW: Verständlich? Nein! Zeilen, Checkbox
18.09.2011 21:59:40
Matthias
Hallo
Vielleicht so:
Rows("30:42").EntireRow.Hidden = Not CheckBox1.Value
usw.
https://www.herber.de/bbs/user/76668.xls
Gruß Matthias
Zeilen, Checkbox
19.09.2011 03:50:07
Matthias
Hallo
Ich hatte in der Datei das .Activate-Ereignis noch nicht geändert, sorry!
Das musst Du wie Daniel gepostet hat noch anpassen.
Für die neu gepostete Datei also z.B. so:

Private Sub UserForm_Activate()
Me.Controls("Checkbox1").Value = Not Range("1:10").EntireRow.Hidden
Me.Controls("Checkbox2").Value = Not Range("11:20").EntireRow.Hidden
Me.Controls("Checkbox3").Value = Not Range("21:30").EntireRow.Hidden
End Sub
Das Ganze gilt dann aber nur für den jeweiligen Block.
Manuell ausgeblendete einzelne Zeilen werden in diesem Bsp. nicht abgefragt!
Gruß Matthias
Anzeige
AW: Problem mit Userform
18.09.2011 22:12:15
Daniel
Hi
das Problem ist, daß die Checkbox1 zwar für die Zeilen 30-42 zuständig ist, du aber beim Initialisieren der Userform die Checkbox1 entsprechend des Zustandes der Zeile 1 vorbelegst, dh mit einer Zeile, für die die Checkbox nicht zuständig ist, dh das passt überhaupt nicht zusammen.
wenn das zusammenpassen soll, dann musst du beim Initialisieren der Userform auch den gleichen Zellbereich abfragen, für den auch die Checkbox zuständig ist:

Private Sub UserForm_Activate()
Me.Controls("Checkbox1).Value = Not Range("30:42").EntireRow.Hidden
Me.Controls("Checkbox2).Value = Not Range("43:55").EntireRow.Hidden
End Sub

ob du da jetzt jede Checkbox einzeln aufführen musst oder das in einer Schleife abarbeiten kannst, hängt damit zusammen, wie deine Zellbereiche verteilt sind und ob die sich aus einer Schleife heraus berechnen lassen.
gruß, Daniel
Anzeige
AW: Problem mit Userform
19.09.2011 07:53:56
Franz
Hallo Daniel,
beim Aufruf des von Dir geposteten Codes

Private Sub UserForm_Activate()
Me.Controls("Checkbox1).Value = Not Range("30:42").EntireRow.Hidden
Me.Controls("Checkbox2).Value = Not Range("43:55").EntireRow.Hidden
End Sub
erhalte ich den Fehlerhinweis "Fehler beim Kompliieren - Syntaxfehler".
Manchmal ist Excel einfach Scheisse....
Und nu?
Viele Grüße
Franz
AW: Problem mit Userform
19.09.2011 08:49:39
Daniel
Hi
ergänze einfach die fehlenden Anführungszeichen am Ende bei Me.Controls("Checkbox1").
Gruß, Daniel
@Daniel : Ich hornochse. Klappt! Danke!
19.09.2011 19:07:37
Franz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige