Clever-Excel-Forum

Normale Version: Listbox Daten aus anderer Datei nehmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Fennek,

Hier die Tabelle mit der Datenbank wo die Listbox leider nicht funktionniert und eben auch folgende Punkte:

1. Sind die Daten die in dieser Listbox angezeigt werden sollen nicht in der gleichen Excel Datei was ich schon mal plus minus hinbekommen hab dass er mir die Daten aus der anderen Datei nimmt Smile
2. Die Listbox die er momentan anzeigt bekomme ich nur 1 Spalte wieder gegeben doch nicht die weitere Spalten die ich noch möchte.
3. Sollte die Listbox nur die Zeilen anzeigen die in der Datenbank in Spalte B KEINE Daten enthalten.
4. Muss ich in der Listbox die Zeilen auswählen können die er mir dann in der Tabelle unter dem letzten Eintrag in der Tabelle dann hinzufügt momentan setzt er mir die Spalte in die falsche Spalte der Tabelle hinzu.
Die Datenbank Datei muss auf dem Desktop stehn da sonst der Pfad im VBA falsch ist!

Ich hab dir die ominöse Datei mit der Datenbank mal hinzugefügt

Der Makroname ist: ZeigeForm doch jetzt bekomm ich nicht mal mehr die Userform angezeigt sondern einen Fehler "400" wie gesagt ich bin am Ende!

Vielen lieben Dank
Hallo Patrick,

da läuft etwas grundsätzlich falsch. Du sammelst Code, der teilweise recht kompliziert und und teilweise schwach und setzt ihn noch fehlerhaft in "thisWorkbook" anstelle eines Moduls.

Abgesehen davon, dass ich UserForms und Listboxes eh nicht mag, es sind zuviele Zeile und Spalten um das noch übersichtlich dazustellen.

Verbundene Zellen und schlecht (teilweise) ausgefüllte Tabellen erschweren jedes VBA Programm.

Anbei ein Code, der die Datenbank auf leere Zeilen in Spalte B filtert und in ein neues Blatt der Makro-Datei schreibt. Die Zuordnung zwischen beiden Datensätzen ist nicht trivial.

Schaumal, ob du als Zwischenschritt damit zurecht kommst.

Code:
Sub Daten_laden()
If Sheets.Count = 1 Then Sheets.Add , Sheets(1)

Dim WBDaten As Workbook
Dim WS As Worksheet: Set WS = ActiveSheet

Pfad = ThisWorkbook.Path & "\"
Datenbank = "Datenbank.xlsx" '<<<<<<<< anpassen >>>>>>>>

Set WBDaten = GetObject(Pfad & Datenbank)
    If WBDaten.Sheets(1).Range("A1").MergeCells Then WBDaten.Sheets(1).Range("A1").EntireRow.Delete
    
    With WBDaten.Sheets(1).Cells(1).CurrentRegion 'Range(Cells(2, 1), Cells(lc, ls))
        .AutoFilter 2, "="
        .Copy
        WS.Range("A1").PasteSpecial xlValue
        .AutoFilter
    End With
WBDaten.Close 0
Set WBDaten = Nothing
End Sub

Die einzige Voraussetzung ist, dass beide Workbooks im selben Verzeichnis sind.

mfg
Vielen dank, passt Smile