AW: MSForms.ComboBox an Prozedur übergeben
28.07.2014 16:07:07
fcs
Hallo Hendrik,
ich hab dein Makro mal in einem Userform getestet.
Es funktioniert.
Bei dir muss irgendetwas bei der Blatt- oder Zeilenauswahl nicht stimmen oder in der Zelle unterhalb der gewählten Startzeile in Spalte "I" steht eine Formel mit dem Ergebnis "".
Nachfolgend meine Testmakros.
Gruß
Franz
'Initialisierungs-Prozedur des Userforms
Private Sub UserForm_Initialize()
Dim strBlattAbfragen As String, intBlattAbfragenStartZeile As Variant
'Testeingaben
strBlattAbfragen = InputBox("Blatt für Serverauswahl", "strBlattAbfragen", "Master")
intBlattAbfragenStartZeile = Application.InputBox("Startzeile für Serverauswahl in Spalte I", _
_
"intBlattAbfragenStartZeile", 2, Type:=1)
'Diese rufe ich wie folgt auf:
Call durchsucheAuswahl(cboServer, strBlattAbfragen, "I", intBlattAbfragenStartZeile)
End Sub
'nachfolgende Makros in einem allgemeinen Modul oder unter dem Userform-Modul
Sub durchsucheAuswahl(meineBox As MSForms.ComboBox, strBlatt As String, strSpalte As String, _
intStartZeile)
Dim blnEnde As Boolean
Dim i As Long
blnEnde = False
With ThisWorkbook.Worksheets(strBlatt).Range(strSpalte & intStartZeile)
Do While blnEnde = False
Call ergaenzeBox(meineBox, .Offset(i, 0).Value)
' meineBox.AddItem .Offset(i, 0).Value 'ALternativzeile für Call ergaenzeBox(...)
i = i + 1
If .Offset(i, 0).Value = "" Then blnEnde = True
' If IsEmpty(.Offset(i, 0)) Then blnEnde = True 'alternative Prüfung
Loop
End With
End Sub
Sub ergaenzeBox(objBox As Object, varItem)
objBox.AddItem varItem
End Sub