Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

listbox an function übergeben

Forumthread: listbox an function übergeben

listbox an function übergeben
02.07.2002 14:23:15
Simon
hallo forum, habe folgende function:

Function openfile_pro(feld As String, listbox_a As listbox, fehler As Integer, exit_fun As Integer, meldung As String) As integer

listbox_a.AddItem feld

End Function

die ich wie folgt aufrufen möchte:

resultat = openfile_pro(Range("a6"), userform1.listbox1, 1, 1, "Falsche Eingabe")

nun bekomme ich aber eine fehlermeldung bezüglich der übergabe vom userform1.listbox1. ich möchte der funktion übergeben, welche listbox behandelt werden soll.

kann man das überhaupt und ist mein ansatz grundsätzlich richtig?

vielen dank schon im voraus

Simon

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: listbox an function übergeben
02.07.2002 16:10:50
Michael Scheffler
Hallo,

Dein Functions-Statement ist verkehrt. Es gibt keinen Typ "Listbox". Entweder, Du vereinbarst "Control" oder "Object", dann stehen Dir aber die speziellen Eigenschaften und Methoden der Listbox bei Schreiben des Codes nicht zur Verfügung oder Du vereinbarst: "MSForms.ListBox"

Gruß

Micha

Anzeige
Re: listbox an function übergeben
02.07.2002 16:47:22
Simon
danke schon mal, muss es morgen mal ausprobieren.

gruss simon

Re: listbox an function übergeben
03.07.2002 09:22:36
Simon
Vielen Dank Micha, habe die sache ausprobiert und es hat funktioniert.

Gruss Simon

Anzeige

Infobox / Tutorial

Listbox an Funktion übergeben in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Listbox an eine Funktion in Excel VBA zu übergeben, befolge diese Schritte:

  1. Definiere die Funktion: Stelle sicher, dass du die Funktion korrekt definierst. Anstelle des Typs "Listbox" solltest du MSForms.ListBox verwenden. Hier ein Beispiel:

    Function openfile_pro(feld As String, listbox_a As MSForms.ListBox, fehler As Integer, exit_fun As Integer, meldung As String) As Integer
       listbox_a.AddItem feld
    End Function
  2. Rufe die Funktion auf: Achte darauf, die Funktion mit der richtigen Listbox zu verwenden. Beispiel:

    resultat = openfile_pro(Range("A6"), UserForm1.ListBox1, 1, 1, "Falsche Eingabe")
  3. Überprüfe die Eingaben: Stelle sicher, dass die Listbox und die Eingabewerte korrekt sind.


Häufige Fehler und Lösungen

  1. Fehlermeldung bei der Übergabe der Listbox:

    • Lösung: Verwende den Typ MSForms.ListBox in deiner Funktionsdefinition.
  2. Listbox wird nicht aktualisiert:

    • Lösung: Überprüfe, ob die Listbox korrekt referenziert wird und dass die Funktion tatsächlich aufgerufen wird.

Alternative Methoden

Wenn du die Listbox nicht direkt übergeben möchtest, kannst du auch:

  • Globale Variablen: Deklariere die Listbox als globale Variable im Modul, sodass sie in der Funktion zur Verfügung steht.

    Dim MyListBox As MSForms.ListBox
    
    Sub Beispiel()
      Set MyListBox = UserForm1.ListBox1
      openfile_pro Range("A6").Value
    End Sub
    
    Function openfile_pro(feld As String)
      MyListBox.AddItem feld
    End Function
  • Objektparameter: Verwende den Typ Object, jedoch verlierst du spezifische Listbox-Methoden.


Praktische Beispiele

Hier ein kurzes Beispiel, um eine Listbox mit Werten aus einem Bereich zu füllen:

Sub FuelleListbox()
    Dim i As Integer
    For i = 1 To 10
        openfile_pro Cells(i, 1).Value, UserForm1.ListBox1, 0, 0, ""
    Next i
End Sub

In diesem Beispiel wird die Listbox mit den Werten aus den ersten 10 Zeilen der ersten Spalte gefüllt.


Tipps für Profis

  • Verwende Error Handling: Implementiere Fehlerbehandlung in deiner Funktion, um unerwartete Eingaben abzufangen.

    On Error GoTo Fehlerbehandlung
  • Setze die Listbox zurück: Wenn du die Listbox mehrfach befüllst, stelle sicher, dass du sie vor dem Hinzufügen neuer Elemente leerst:

    UserForm1.ListBox1.Clear

FAQ: Häufige Fragen

1. Warum kann ich den Typ "Listbox" nicht verwenden?
Der Typ "Listbox" existiert nicht in VBA. Du musst MSForms.ListBox oder Object verwenden.

2. Was ist der Vorteil, die Listbox als Parameter zu übergeben?
Durch die Übergabe der Listbox kannst du die Funktion flexibler gestalten und sie für verschiedene Listboxen wiederverwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige