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

Forumthread: combobox füllen aus tabelle

combobox füllen aus tabelle
26.04.2013 17:20:52
NewLine
Hi
Ich habe hier ein kleines Problem. Der code gibt mir einen Laufzeitfehler 70 Zugriff verweigert aus. Wenn ich nur eine combobox fülle funktioniert der code.
Private Sub UserForm_initialize()
Dim i As Long
Dim Anfangszeile As Long
Dim Anfangsspalte As Long
With Worksheets("DAdaten")
Anfangszeile = 1
Anfangsspalte = 3
For i = Anfangsspalte To .Cells(Anfangszeile, .Columns.Count).End(xlToLeft).Column
cboPA_Nummer.AddItem .Cells(Anfangszeile, i)
Next i
cboPA_Nummer.ListIndex = -1
Anfangszeile = 9
Anfangsspalte = 3
For i = Anfangsspalte To .Cells(Anfangszeile, .Columns.Count).End(xlToLeft). _
Column
cboLagerort.AddItem .Cells(Anfangszeile, i)
Next i
cboLagerort.ListIndex = -1
End With
End Sub
Danke
mfg

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Beispieldatei ?
26.04.2013 17:37:31
Matthias
Hallo Unbekannter
Es wird Dich sicher keiner mit NewLine ansprechen
Warum sollte das jemand nachbauen, wenn Du doch schon ein Formular fertig hast?
Ein Nachbau sieht immer anders aus als das Orginal.
Also lad doch bitte eine Bsp.Mappe hoch.
Nichtrelevante und persönliche Daten bitte vorher löschen
Dann erkläre bitte nochmal was Du vorhast und was nicht funktioniert
Die relevanten Steuerelemente und deren Code bitte in der Mappe belassen, damit man das prüfen kann
Du könntest wenigstens mit einem Realnamen den Beitrag beenden
Gruß Matthias

Anzeige
Danke hary, ich bin dann raus ... kwT
26.04.2013 17:48:22
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Combobox in Excel mit VBA füllen


Schritt-für-Schritt-Anleitung

Um eine Combobox in einer Excel Userform mit Daten aus einem Tabellenblatt zu füllen, kannst Du folgenden Code verwenden. Dieser Code geht davon aus, dass Du bereits ein Userform mit zwei Comboboxen (cboPA_Nummer und cboLagerort) erstellt hast.

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge den folgenden Code in das Userform ein:
Private Sub UserForm_Initialize()
    Dim i As Long
    Dim Anfangszeile As Long
    Dim Anfangsspalte As Long
    With Worksheets("DAdaten")
        Anfangszeile = 1
        Anfangsspalte = 3
        For i = Anfangsspalte To .Cells(Anfangszeile, .Columns.Count).End(xlToLeft).Column
            cboPA_Nummer.AddItem .Cells(Anfangszeile, i)
        Next i
        cboPA_Nummer.ListIndex = -1

        Anfangszeile = 9
        Anfangsspalte = 3
        For i = Anfangsspalte To .Cells(Anfangszeile, .Columns.Count).End(xlToLeft).Column
            cboLagerort.AddItem .Cells(Anfangszeile, i)
        Next i
        cboLagerort.ListIndex = -1
    End With
End Sub
  1. Stelle sicher, dass das Tabellenblatt „DAdaten“ existiert und die Daten in den angegebenen Zeilen und Spalten vorhanden sind.
  2. Teste das Userform, um zu überprüfen, ob die Comboboxen korrekt gefüllt werden.

Häufige Fehler und Lösungen

  • Laufzeitfehler 70 (Zugriff verweigert): Dieser Fehler tritt häufig auf, wenn Du versuchst, auf ein Steuerelement zuzugreifen, das nicht existiert oder nicht richtig benannt wurde. Überprüfe, ob die Namen der Comboboxen (cboPA_Nummer, cboLagerort) genau mit den Namen im Code übereinstimmen.

  • Keine Daten in der Combobox: Stelle sicher, dass die Daten im richtigen Bereich des Tabellenblatts stehen. Achte darauf, dass die richtige Zeile und Spalte im Code angegeben ist.


Alternative Methoden

Eine alternative Methode, um die Combobox zu füllen, wäre die Verwendung von Arrays oder direkten Zellreferenzen. Hier ein einfacher Weg, um die Combobox mit einem Array zu füllen:

Private Sub UserForm_Initialize()
    Dim DatenArray As Variant
    DatenArray = Application.Transpose(Worksheets("DAdaten").Range("C1:C10").Value)

    Dim i As Long
    For i = LBound(DatenArray) To UBound(DatenArray)
        cboPA_Nummer.AddItem DatenArray(i)
    Next i
End Sub

Diese Methode kann nützlich sein, wenn Du die Daten vorher in einem Array speichern möchtest.


Praktische Beispiele

  1. Füllen einer Combobox aus einer Liste: Angenommen, Du hast eine Liste von Produkten in der Spalte A eines Tabellenblatts. Du kannst diese Liste in eine Combobox füllen:
Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Produkte")

    Dim i As Long
    For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        cboProdukte.AddItem ws.Cells(i, 1).Value
    Next i
End Sub
  1. Füllen aus mehreren Spalten: Wenn Du die Combobox mit Werten aus mehreren Spalten füllen möchtest, kannst Du die Werte zusammenführen:
Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Daten")

    Dim i As Long
    For i = 1 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        cboKombination.AddItem ws.Cells(i, 1).Value & " - " & ws.Cells(i, 2).Value
    Next i
End Sub

Tipps für Profis

  • Verwende die List-Eigenschaft der Combobox, um die gesamte Liste auf einmal zu füllen, anstatt AddItem mehrmals zu verwenden. Dies kann die Leistung verbessern, insbesondere bei großen Datenmengen.
cboPA_Nummer.List = Application.Transpose(Worksheets("DAdaten").Range("C1:C10").Value)
  • Achte darauf, die Comboboxen vor dem Füllen zu leeren, um doppelte Einträge zu vermeiden:
cboPA_Nummer.Clear

FAQ: Häufige Fragen

1. Wie kann ich die Combobox mit Werten aus einer anderen Datei füllen?
Du kannst Werte aus einer anderen Excel-Datei laden, indem Du die Datei öffnest und auf die entsprechenden Zellen zugreifst. Stelle sicher, dass die Datei geöffnet und der richtige Pfad angegeben ist.

2. Was kann ich tun, wenn die Combobox nicht angezeigt wird?
Überprüfe, ob das Userform korrekt initialisiert und sichtbar ist. Stelle sicher, dass die Combobox im Userform vorhanden und richtig benannt ist.

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