Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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

Userform Combobox

Userform Combobox
03.06.2009 11:22:19
tursiops
Hallo!
Ich habe gesperrte Trennzeilen in einer Tabelle, die über ein Userform gefüttert wird. Nun möchte ich, dass in der Combobox der Userform diese Trennzeilen nicht ausgewählt werden können.
Wie stelle ich das am günstigsten an?
- kann man nur ungesperrte Zellen auswählen bzw. die Liste filtern (wenn Zellwert = "Trennzeile" - dann...)
Vielen Dank im Voraus

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Combobox
03.06.2009 11:37:20
tursiops
Super - Danke Danke!!!
Gruß tursiops
AW: Userform Combobox
03.06.2009 11:54:36
tursiops
Hallo nochmal!
Ich habe etwas Schwierigkeiten den Code in den bestehenden einzufügen.

Private Sub UserForm_Activate()
Dim lZeile As Long
Dim iRow As Integer
Application.ScreenUpdating = False
Application.Run "Blattschutz_aus"
Sheets("B & A").Select
With ComboBox4
.ColumnCount = 3
.ColumnWidths = "3 cm; 3 cm; 1 cm"
For lZeile = 4 To Range("BZ94").End(xlUp).Row
.AddItem Cells(lZeile, 78).Text
.List(.ListCount - 1, 1) = Cells(lZeile, 79).Text
.List(.ListCount - 1, 2) = Cells(lZeile, 80).Text
Next lZeile
If .ListCount > 0 Then ComboBox7.List = ComboBox4.List
End With
Application.Run "Blattschutz_an"
Application.ScreenUpdating = True
End Sub


Egal wie, die RowSource Eigenschaften können nicht gesetzt werden...
Kann ich nochmal etwas Hilfe bekommen?
Gruß tursiops

Anzeige
AW: Userform Combobox
03.06.2009 12:11:43
Hans
Hallo,
das sollte in etwa so funktionieren:

Private Sub UserForm_Initialize()
Dim lZeile As Long
Sheets("B & A").Select
With ComboBox4
.ColumnCount = 3
.ColumnWidths = "3 cm; 3 cm; 1 cm"
.List = Range(Cells(4, 78), Cells(Range("BZ94").End(xlUp).Row, 80)).Value
.ListIndex = 0
End With
End Sub


gruss hans

AW: Userform Combobox
03.06.2009 12:32:04
tursiops
Ähm...
Das ging daneben...
Es ging darum Deinen Codeabschnitt für die Combobox einzubauen:
.............................................
Dim iRow As Integer
For iRow = 1 To WorksheetFunction.CountA(Columns(1))
If Cells(iRow, 1).Locked = False Then
ComboBox4.AddItem Cells(iRow, 1).Value
End If
Next iRow
...................................

Private Sub UserForm_Initialize()
Dim lZeile As Long
Dim iRow As Integer
Sheets("B & A").Select
With ComboBox4
.ColumnCount = 3
.ColumnWidths = "3 cm; 3 cm; 1 cm"
For lZeile = 4 To Range("BZ94").End(xlUp).Row
.AddItem Cells(lZeile, 78).Text
.List(.ListCount - 1, 1) = Cells(lZeile, 79).Text
.List(.ListCount - 1, 2) = Cells(lZeile, 80).Text
Next lZeile
If .ListCount > 0 Then ComboBox7.List = ComboBox4.List
End With
End Sub


Der zuvor von mir eingestellte Code an sich funktioniert, Ist nur sehr gekürzt. Es fehlt halt nur der Filter für die Combobox, damit gesperrte Zellen nicht in der Liste aufgeführt werden.
Gruß tursiops

Anzeige
AW: Userform Combobox
03.06.2009 12:47:40
Hans
... sorry, hatte ich falsch verstanden. Wie folgt:

Private Sub UserForm_Initialize()
Dim arr() As Variant
Dim iZeile As Integer, iArr As Integer
Sheets("B & A").Select
With ComboBox4
.ColumnCount = 3
.ColumnWidths = "3 cm; 3 cm; 1 cm"
For iZeile = 4 To Range("BZ94").End(xlUp).Row
If Cells(iZeile, 78).Locked = False Then
ReDim Preserve arr(0 To 2, 0 To iArr)
arr(0, iArr) = Cells(iZeile, 78).Value
arr(1, iArr) = Cells(iZeile, 79).Value
arr(2, iArr) = Cells(iZeile, 80).Value
iArr = iArr + 1
End If
Next iZeile
ComboBox4.Column = arr
If iArr = 0 Then .ListIndex = 0
End With
End Sub


gruss hans

Anzeige
AW: Userform Combobox
03.06.2009 13:16:31
tursiops
Danke für die schnelle Antwort!
Noch bekomme ich eine Laufzeitfehler auf diese Zeile:
ComboBox4.Column = arr
(Laufzeitfehler 380 - Eingeschaft Column konnte nicht gesetzt werden. Ungültiger Eigenschaftswert)
- teste aber noch -
Gruß tursiops
AW: Userform Combobox
03.06.2009 13:51:09
tursiops
Noch ne blöde Frage...
wie hast Du denn hier das RowSource Ereignis festgelegt? Ich finde es nirgens...
AW: Userform Combobox
03.06.2009 13:54:04
Hans
... es ist kein gebundenes Steuerelement (was in UserForms immer empfehlenswert ist).
Bei gebundenen Steuerelementen ist es nicht möglich, einzelne Zellwerte zu unterdrücken.
gruss hans
Anzeige
AW: Userform Combobox
03.06.2009 14:29:00
tursiops
Hallo!
Ich habs auch gefunden (im Code), hatte die alte Beispieldatei noch offen und bin verrutscht...
Nun habe ich allerdings das nächste Problem. Beim zusammenfügen des ganzen Codes nimmt er meine Bezeichner für die Userform nicht mehr. Ich schätze, ich habe den Code falsch zusammengebaut, komme aber nicht dahinter:

Private Sub UserForm_Initialize()
Dim arr() As Variant
Dim iZeile As Integer, iArr As Integer
If Val(Application.Version) >= 9 Then
hWndForm = FindWindow("ThunderDFrame", Me.Caption) '


AW: Userform Combobox
03.06.2009 14:47:38
Hans
... ich vermute mal, dass Du über einen API-Aufruf das Verschieben der Form verhindern möchtest. Für den API-Aufruf ist "Initialize" das falsche Ereignis, das richtige ist "Activate". Ändere also den Prozedurnamen entsprechend um.
Für meinen Teil des Codes ist es dann egal, wenn die UserForm nicht zwischendurch mit "Hide" aus- und "Show" wiedereingeblendet wird.
gruss hans
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige