Userform (initialise)
08.07.2003 13:31:02
Volker
habe eine Frage und bitte es wurde mir hier mal bei einer Userform geholfen
und es funktioniert auch tadellos ...jedoch jetzt muss ich umbauen.
Kann bei den Comboboxen mit dieser Art die Bildlaufleisten nicht ausblenden.
Wie muss ich vorgehen das das ganze über (initialise - userform) funktioniert.
Beim Change - Ereignis geht die Userform suchen in Tabelle2,Tabelle3 usw suchen ob
ein gleicher Schlüsselwert vorhanden ist ....es können mehrere Schlüsselwerte sein
mit verschiedener Anzahl an Spalten und liest es in Comboboxen ein....
Hier ein Beispiel-Code dieser Userform
Vielleicht kann mir jemand weiterhelfen...
Danke
Volker
In Tabelle1 ist die Userform angebunden....
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Private Sub TextBox1_Change()
Detail.Show
End Sub
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Show Detail
If Target.Column = 1 Or Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Or Target.Column = 5 Or Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then
Zeile = Target.Row
Call UpdateUF
Detail.Show
Application.EditDirectlyInCell = False
End If
End Sub
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Option Explicit
Public Zeile As Long
Sub UpdateUF()
Dim lfNr As Object
Dim lngArr As Long
'On Error Resume Next
Detail.Label1 = Cells(Zeile, 1)
Detail.PLZ = Cells(Zeile, 2)
Detail.OText = Cells(Zeile, 3)
Detail.GTextt = Cells(Zeile, 4)
Detail.BHMT.ColumnCount = 2
Detail.BHMT.Clear
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
With Worksheets("Tabelle2")
lngArr = 0
For Each lfNr In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
If lfNr = Cells(Zeile, 5) Then lngArr = lngArr + 1
Next lfNr
If lngArr = 0 Then
'MsgBox "Es gibt keinen Eintrag in Tabelle2"
Else
ReDim MyArray(1 To lngArr, 0 To 3)
lngArr = 0
For Each lfNr In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
If lfNr = Cells(Zeile, 5) Then
lngArr = lngArr + 1
MyArray(lngArr, 0) = .Cells(lfNr.Row, 2)
MyArray(lngArr, 1) = .Cells(lfNr.Row, 3)
MyArray(lngArr, 2) = .Cells(lfNr.Row, 4)
MyArray(lngArr, 3) = .Cells(lfNr.Row, 5)
End If
Next lfNr
Detail.BHMT.List = MyArray
End If
With Worksheets ("Tabelle3") usw...