Supportnet / Forum / Tabellenkalkulation
dropdown menue mit Einträgen aus anderer Datei
Frage
Hallo Supporters,
bräuchte mal wieder einen Rat von Euch.
Ziel diesmal:
Ich möchte auf einer userform ein dropdown feld platzieren welches mir zum Beispiel die Spalte A aus einer anderen, geschlossenen Datei anzeigt.
1. Frage:
Ist sowas per dropdown überhaupt möglich?
Bisher habe ich nur so etwas hinbekommen:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\......"
with usrNeuesFormular.cboNamensliste
.RowSource = ("A3:A10")
.ListIndex = "0"
End With
Application.ScreenUpdating = True
End Sub
Leider ist die Quelldatei dabei geöffnet, ist ja klar...
Das wollte ich aber eigentich nicht. Bau ich anschließen ein er soll die Datei zumachen sind auch die Daten im Dropdown futsch.....auch irgendwie klar...
Hintergrund:
Die Quelldatei wird ständig aktualisiert. Somit kann ich "additem" für meinen code nicht benutzen...Gibt es evtenuell eine andere Möglichkeit für mich???
Bin wie immer über jeden Vorschlag dankbar!!!
Grüße und einen schönen Tag
Mola
Antwort 1 von coros
Hi Mola,
damit Du Daten in z.B. ein Kombinationsfeld einlesen kann, muss die Datei vorher geöffnet werden, sonst geht das nicht. Das ist leider immer so bei Excel. Einzige Ausnahme ist wenn Du Dir durch eine Verknüpfung Daten in einer Zelle anzeigen lässt. Aber bei dem was Du vor hast, muss die Datei geöffnet sein.
Der VBA Code dafür würde folgendermaßen lauten:
Bei dem Code werden die Daten aus Spalte A von Zeile 1 bis zur letzten beschriebenen Zelle in dem Kombinationsfeld aufgeführt.
Ich hoffe, Dir hilft’s etwas.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
damit Du Daten in z.B. ein Kombinationsfeld einlesen kann, muss die Datei vorher geöffnet werden, sonst geht das nicht. Das ist leider immer so bei Excel. Einzige Ausnahme ist wenn Du Dir durch eine Verknüpfung Daten in einer Zelle anzeigen lässt. Aber bei dem was Du vor hast, muss die Datei geöffnet sein.
Der VBA Code dafür würde folgendermaßen lauten:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Beispiel.xls"
For i = 1 To Workbooks("Beispiel.xls").Sheets(1).Range("A65536").End(xlUp).Row
ComboBox1.AddItem (Cells(i, 1))
Next
Workbooks("Beispiel.xls").Close
End Sub
Bei dem Code werden die Daten aus Spalte A von Zeile 1 bis zur letzten beschriebenen Zelle in dem Kombinationsfeld aufgeführt.
Ich hoffe, Dir hilft’s etwas.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Mola
Abend Coros,
na das ist doch genau das was ich wollte ***BINGO***!!!!
Ich mein, dass was ich gebastelt hatte verstehe ich. Also warum er mir die cbo leer gemacht hat wenn ich dem obigen code "Workbooks("Beispiel.xls").Close" hinzugefügt habe.
Jetzt muss ich mir aber noch genauer das for i ansehen....ich mein ich verstehe es schon ungefähr das er die Spalte A von unten hochgeht usw. aber das in so eine Schreibweise zu packen ***uff***....naja, hol ich doch glatt nochmal den großen "Excel-VBA" raus und lese das nochmal nach! Vorher lasse ich das Makro aber noch 3 mal durchlaufen weil es so super klappt!!!
Dankeschön Coros und einen schönen Abend!!!
Gruß
Mola
na das ist doch genau das was ich wollte ***BINGO***!!!!
Ich mein, dass was ich gebastelt hatte verstehe ich. Also warum er mir die cbo leer gemacht hat wenn ich dem obigen code "Workbooks("Beispiel.xls").Close" hinzugefügt habe.
Jetzt muss ich mir aber noch genauer das for i ansehen....ich mein ich verstehe es schon ungefähr das er die Spalte A von unten hochgeht usw. aber das in so eine Schreibweise zu packen ***uff***....naja, hol ich doch glatt nochmal den großen "Excel-VBA" raus und lese das nochmal nach! Vorher lasse ich das Makro aber noch 3 mal durchlaufen weil es so super klappt!!!
Dankeschön Coros und einen schönen Abend!!!
Gruß
Mola
Antwort 3 von coros
Moin Mola,
freut mich, dasss ich mit dem VBA Code richtig gelegen habe.
Noch etwas zur Aufklärung: Die Schleife aus dem VBA Code arbeitet nicht von unten nach oben, sondern von Zeile 1 bis zur letzten beschriebenen Zelle in Spalte A, also von oben nach unten. Wenn Sie von unten nach oben laufen würde, dann sähe die Befehlszeile folgendermaßen aus:
Danke Dir auch für die Rückmeldung.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
freut mich, dasss ich mit dem VBA Code richtig gelegen habe.
Noch etwas zur Aufklärung: Die Schleife aus dem VBA Code arbeitet nicht von unten nach oben, sondern von Zeile 1 bis zur letzten beschriebenen Zelle in Spalte A, also von oben nach unten. Wenn Sie von unten nach oben laufen würde, dann sähe die Befehlszeile folgendermaßen aus:
For i = Workbooks("Beispiel.xls").Sheets(1).Range("A65536").End(xlUp).Row To 1 Step -1
Danke Dir auch für die Rückmeldung.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 4 von nighty
hi all :)
auslesen einer zelle aus einer geschlossenen datei
gruss nighty
Sub makro01()
Cells(1, 1) = ExecuteExcel4Macro("´C:\test\" & "[Mappe1.xls" & "]Tabelle1" & "´!" & Range("A1").Range("A1").Address(, , xlR1C1))
End Sub
auslesen einer zelle aus einer geschlossenen datei
gruss nighty
Sub makro01()
Cells(1, 1) = ExecuteExcel4Macro("´C:\test\" & "[Mappe1.xls" & "]Tabelle1" & "´!" & Range("A1").Range("A1").Address(, , xlR1C1))
End Sub
Antwort 5 von Mola
Hallo Coros und Hallo Nighty,
habt vielen Dank für Eure Beiträge - muss noch viel lernen ;)
Grüßle
Mola
habt vielen Dank für Eure Beiträge - muss noch viel lernen ;)
Grüßle
Mola