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

Variablenübergabe an UF

Variablenübergabe an UF
26.09.2008 14:40:00
Michael
Hallo zusammen,
ich habe folgendes Problem.
Ich lege in einem Modul 3 variable Arrays mit Strings an. Mit diesen fülle ich Listboxen in einer Userform.
Über einen Button rufe ich eine weitere Sub auf, die wieder im eigentlichen Modul hinterlegt ist, weil zwecks Handling für mich sinnvoller ist. Dort möchte ich die Strings weiterverarbeiten.
Nun mein Problem: Ich kann die Arrays nicht an die Userform übergeben, genauer an das Button_Click()-Ereignis und von dort wieder der aufgerufenen Sub.
Wie also könnte ich meine Arrays von SUB -> UF (Click) -> SUB übergeben?
Wichtig ist für mich KEINE Public-Variablen anzulegen oder eine Extraschleife schreiben zu müssen, in der ich den Inhalt der Listboxen auslese. Kurz und knackig... :)
Der Code sieht in etwa so aus:
Hauptsub XYZ

Public Sub XYZ()
UserForm.Show   hier irgendwie die Übergabe? Auch mit Load UserForm(strArray1(), strArray2()) _
geht es nicht
End Sub


Userform 123


Private Sub Button_Click()   hier Übergabe? Fehlermeldung bei üblicher Übergabe Button_Click( _
strArray1 as String, strArray2 as String).
Aufruf_Routine_ABC
End Sub


Routine ABC


Public Sub Aufruf_Routine_ABC()
End Sub


Ich hoffe sehr, ihr könnt mir helfen!
Danke!
Micha

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

Betreff
Datum
Anwender
Anzeige
AW: Variablenübergabe an UF
26.09.2008 14:45:18
Rudi
Hallo,

oder eine Extraschleife schreiben zu müssen, in der ich den Inhalt der Listboxen auslese.


brauchst du auch nicht.
MeinArray=Listbox1.List
Gruß
Rudi

AW: Variablenübergabe an UF
26.09.2008 14:45:52
Horst
Hi,
"...KEINE Public-Variablen..."
Und wieso das?
mfg Horst
AW: Variablenübergabe an UF
26.09.2008 15:07:00
Michael
Hallo,
ich möchte das Modul später exportieren und in einer .dll unterbringen. Ich will ausschließen, dass die Variablen von anderen Modulen geändert werden können.
Das Auslesen der List-Eigenschaft funktioniert leider nicht. Ich hab es wie folgt geschrieben (mehrere Versuche):
Dim Test() as String
'Dim a as Double
'Redim Preserve Test(a)
'For a = 0 To UBound(UserForm.ListBox.List)
Test(a) = UserForm.ListBox.List
'Next a
Also einmal nur Test = UserForm...
dann Test() = Userform...
dann mit der for-Schleife.
Jedesmal "Typen unverträglich"?
Anzeige
AW: Variablenübergabe an UF
26.09.2008 15:38:00
Horst
Hi,
Array muss Variant sein!
mfg Horst
AW: Variablenübergabe an UF
26.09.2008 16:46:25
Michael
Hallo,
ich kann es leider erst Montag auf Arbeit wieder ausprobieren, aber wieso sollte ein Array vom Typ Variant sein müssen?! Man kann doch auch Arrays von einem Datentyp definieren. Funktioniert jedenfalls bei mir tadellos. Oder gibt die List-Eigenschaft einen Variant-Array zurück?
Gruß
Micha
AW: Variablenübergabe an UF
26.09.2008 17:04:32
Horst
Hi,
ein Array, das ein anderes in einem Rutsch aufnehmen soll, muss Variant sein, findest
du auch in der Hilfe.
mfg Horst
AW: Variablenübergabe an UF
26.09.2008 18:13:00
Michael
Ach so, na dann wird es ja hoffentlich funktionieren! :)
Erstmal Dankeschön!
Ich gebe nochmal eine Rückmeldung.
Btw. die Hilfe ist leider nicht immer eine Hilfe... ;)
Schönes WE!
Micha
Anzeige
AW: Variablenübergabe an UF
29.09.2008 12:45:57
Michael
Hallo noch einmal,
mit einem Variant funktioniert es. Leider nur 2-dimensional und nur die Zeilen auslesen zu wollen, erzeugt eine Fehlermeldung.
Da die Variablenübergabe Sub - UF - Sub nicht wirklich einfach zu realisieren ist, habe ich nun doch eine Routine geschrieben, mit der ich die einzelnen Elemente der ListBoxen einem bzw. mehreren Arrays zuweise:
Dim LB As Control
'Auslesen der ListBox-Einträge
For Each LB In frmXYZuordnung.Controls
If TypeName(LB) = "ListBox" Then
If LB.Name = "KF_List" Then
For a = 0 To frmXYZuordnung.KF_List.ListCount - 1
ReDim Preserve strGruppenKF(a)
strGruppenKF(a) = frmXYZuordnung.KF_List.List(a, 0)
Next a
ElseIf LB.Name = "KL_List" Then
For a = 0 To frmXYZuordnung.KL_List.ListCount - 1
ReDim Preserve strGruppenKL(a)
strGruppenKL(a) = frmXYZuordnung.KL_List.List(a, 0)
Next a
ElseIf LB.Name = "XY_List" Then
For a = 0 To frmXYZuordnung.XY_List.ListCount - 1
ReDim Preserve strGruppenXY(a)
strGruppenXY(a) = frmXYZuordnung.XY_List.List(a, 0)
Next a
End If
End If
Next LB
Falls noch jemand eine Idee hat, wie eine einfache Variablenübergabe zu realisieren ist: Bitte! :)
Vielen Dank für die Hilfe!
Micha
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige