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

MSForms.ComboBox an Prozedur übergeben

MSForms.ComboBox an Prozedur übergeben
28.07.2014 14:03:06
Hendrik
Hallo zusammen,
ich habe die Prozedur:

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)
i = i + 1
If .Offset(i, 0).Value = "" Then blnEnde = True
Loop
End With
End Sub

Diese rufe ich wie folgt auf:
Call durchsucheAuswahl(cboServer, strBlattAbfragen, "I", intBlattAbfragenStartZeile)
cboServer ist eine ComboBox, in der dann Server stehen sollen. Diese stehen in Spalte I.
Beim Debuggen ist meineBox nach dem Aufruf der Prozedur aber leer. Wie kommt das?!
Danke und Grüße
Hendrik

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
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

Anzeige
AW: MSForms.ComboBox an Prozedur übergeben
28.07.2014 21:01:48
Hendrik
Danke, Franz.
So ganz verstanden habe ich meinen Fehler noch nicht, aber ich werde mir das anschauen. Danke!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige