Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

combobox mit Werten aus anderem workbook

58 views
Skip to first unread message

Gerd Welzel

unread,
Jan 29, 2003, 10:13:54 AM1/29/03
to
Hallo alle,

Folgendes Szenario:
In einem workbook1, sheet1 habe ich eine combobox, die ich mit Daten aus
workbook2, sheet1 füllen möchte. Den Datenbereich in workbook2, sheet1 habe
ich mit "Firma" benamt.
Im Eigenschatsfenster der combobox habe ich bei "ListFillRange" stehen:
workbook2.xls!Firma

In workbook1 habe ich in "DieseArbeitsmappe" folgenden code, mit dem ich
workbook2 öffne:

Private Sub Workbook_Open()
Workbooks.Open "C:\workbook2.xls"
End Sub

Öffne ich nun workbook1, so kommt die Meldung nach "Verknüpfungen
aktuallisieren" bevor workbook2 geöffnet wird.
Dadurch wird der ListFillRange-Bereich nicht gefunden.
Im Eigenschatsfenster der combobox steht zwar immer noch
"workbook2.xls!Firma" aber die combobox ist leer.
Erst wenn ich ListFillRange der combobox lösche und neu eingebe, sind die
Daten wieder in der combobox.

Nun meine Frage:
Wie kann ich den benamten Bereich nach dem Öffnen des workbooks2 an die
combobox übergeben?

Für Tips und Hilfen im voraus vielen Dank.

--
Konfiguration:
win98 SE mit allen updates
office 2000 professional mit allen updates

Mit freundlichen Grüßen

Gerd Welzel


Thomas Ramel

unread,
Jan 29, 2003, 10:41:29 AM1/29/03
to
Grüezi Gerd ;-)

Gerd Welzel schrieb:


>
> Wie kann ich den benamten Bereich nach dem Öffnen des workbooks2 an die
> combobox übergeben?

Du könntest WB2 öffnen und die Werte mittels .AddItem der Combobox hinzufügen.
Um den benannten Berich durchzugehen bietet sich eine For ... Each-Schleife an.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

Melanie Breden

unread,
Jan 29, 2003, 10:54:02 AM1/29/03
to
Hallo Gerd,

"Gerd Welzel" schrieb:


>
> Folgendes Szenario:
> In einem workbook1, sheet1 habe ich eine combobox, die ich mit Daten aus
> workbook2, sheet1 füllen möchte. Den Datenbereich in workbook2, sheet1 habe
> ich mit "Firma" benamt.
> Im Eigenschatsfenster der combobox habe ich bei "ListFillRange" stehen:
> workbook2.xls!Firma
>
> In workbook1 habe ich in "DieseArbeitsmappe" folgenden code, mit dem ich
> workbook2 öffne:
>
> Private Sub Workbook_Open()
> Workbooks.Open "C:\workbook2.xls"
> End Sub
>
> Öffne ich nun workbook1, so kommt die Meldung nach "Verknüpfungen
> aktuallisieren" bevor workbook2 geöffnet wird.
> Dadurch wird der ListFillRange-Bereich nicht gefunden.
> Im Eigenschatsfenster der combobox steht zwar immer noch
> "workbook2.xls!Firma" aber die combobox ist leer.
> Erst wenn ich ListFillRange der combobox lösche und neu eingebe, sind die
> Daten wieder in der combobox.
>
> Nun meine Frage:
> Wie kann ich den benamten Bereich nach dem Öffnen des workbooks2 an die
> combobox übergeben?

probiers mal hiermit:

Private Sub Workbook_Open()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim i As Integer
Set wb1 = ActiveWorkbook

'Prüfen ob Mappe schon geöffnet
For i = 1 To Workbooks.Count
If Workbooks(i).Name = "workbook2.xls" Then
Set wb2 = Workbooks(i)
Exit For
End If
Next
'Wenn nicht geöffnet, dann öffne
If wb2 Is Nothing Then
Workbooks.Open Filename:="C:\eigene Dateien\workbook2.xls"
Set wb2 = ActiveWorkbook
End If

With wb1.Worksheets(1)
.ComboBox1.ListFillRange = "workbook2.xls!Monate"
End With
End Sub

mit Gruß
Melanie

____________________
Melanie Breden
[Microsoft MVP für Excel]

Gerd Welzel

unread,
Jan 29, 2003, 11:03:18 AM1/29/03
to
Hallo Thomas,

tja, alles schön und gut, aber da komme ich leider nicht weiter.
In der Online Hilfe ist das für einen Laien auch nicht so toll beschrieben.
Könntest Du mir vielleicht noch ein kleines Beispiel für die Syntax geben?

Mein Ansatz:

Private Sub Workbook_Open()
Dim cboFirma As ComboBox
Workbooks.Open "C:\workbook2.xls"
Workbooks("workbook1.xls").Worksheets("sheet1").Activate
Worksheets("sheet1").cboFirma.Activate
With cboFirma
.AddItem
?????????????????????ß
End With
End Sub

Gerd Welzel

unread,
Jan 29, 2003, 11:06:48 AM1/29/03
to
Hallo Melanie,

erstmal herzlichen Dank für die schnelle Hilfe. Werd es gleich testen, und
mich dann nochmal melden.

Gruß
Gerd

"Melanie Breden" <Mel...@NOSPAMm-breden.de> schrieb im Newsbeitrag
news:eNhlF66xCHA.364@TK2MSFTNGP12...
> Hallo Gerd,

Frank Arendt-Theilen

unread,
Jan 29, 2003, 11:26:59 AM1/29/03
to
Hallo Gerd,
wie folgt:

Private Sub Workbook_Open()
Workbooks.Open "f:\mappe2.xls"
ThisWorkbook.Worksheets(1).OLEObjects("ComboBox1").ListFillRange = _
"[" & Workbooks("Mappe2.xls").Name & "]" & _
Workbooks("Mappe2.xls").Worksheets(1).Name & "!" & _
Workbooks("Mappe2.xls").Worksheets(1).Range("Firma").Address
End Sub

Anmerkung:
Es wird erst die zweite Arbeitsmappe geöffnet und anschliessend die
Combobox gefüllt.

MfG Frank
_________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de

Melanie Breden

unread,
Jan 29, 2003, 11:26:37 AM1/29/03
to
Hallo Gerd,

"Gerd Welzel" schrieb:
>


> erstmal herzlichen Dank für die schnelle Hilfe. Werd es gleich testen, und
> mich dann nochmal melden.
>

habe noch eine kleine Veränderung eingebaut, damit das Workbook 1 wieder aktiviert wird:

Private Sub Workbook_Open()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim i As Integer
Set wb1 = ActiveWorkbook

Application.ScreenUpdating = False


'Prüfen ob Mappe schon geöffnet
For i = 1 To Workbooks.Count

If Workbooks(i).Name = "ComboboxMappe2.xls" Then


Set wb2 = Workbooks(i)
Exit For
End If
Next

'Wenn nicht geöffnet, dann öffne
If wb2 Is Nothing Then

Workbooks.Open Filename:="E:\Melanie\Excel\NG\jumper\ComboboxMappe2.xls"
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
End If

With wb1.Worksheets(1)
.ComboBox1.ListFillRange = "ComboboxMappe2.xls!Monate"
End With

wb1.Activate
Application.ScreenUpdating = True
Set wb1 = Nothing
Set wb2 = Nothing

Gerd Welzel

unread,
Jan 29, 2003, 11:46:47 AM1/29/03
to
Hallo Thomas,

hat sich erledigt.
Melanie und Frank haben mir genügend "Stoff" zum testen und anpassen
bereitgestellt.
Vielen Dank und bis dann
Gerd

"Thomas Ramel" <t.r...@mvps.org> schrieb im Newsbeitrag
news:3E37F629...@mvps.org...

Gerd Welzel

unread,
Jan 29, 2003, 11:55:15 AM1/29/03
to
Hallo Frank,

auch Dir herzlichen Dank!
Wie immer kurz und bündig ;-))
Werde Deinen vba-code auch noch testen.

Gruß
Gerd Welzel

"Frank Arendt-Theilen" <Thei...@t-online.de> schrieb im Newsbeitrag
news:g20g3v43qk4nvtecf...@4ax.com...

Gerd Welzel

unread,
Jan 29, 2003, 11:52:19 AM1/29/03
to
Hallo Melanie,

funktioniert vorzüglich.
Das workbook1 wieder aktiviert wird, habe ich grad noch selbst hinbekommen
;-))
Aber die Objektvariablen zu entleeren, hätte ich schlichtweg übersehen.

Herzlichen Dank für Deine schnelle kompetente Hilfe.

Gruß
Gerd

Aber


"Melanie Breden" <Mel...@NOSPAMm-breden.de> schrieb im Newsbeitrag

news:eVSnSM7xCHA.2536@TK2MSFTNGP09...

Melanie Breden

unread,
Jan 29, 2003, 3:12:34 PM1/29/03
to
Hallo Gerd,

"Gerd Welzel" schrieb


> funktioniert vorzüglich.
> Das workbook1 wieder aktiviert wird, habe ich grad noch selbst hinbekommen
> ;-))
> Aber die Objektvariablen zu entleeren, hätte ich schlichtweg übersehen.
>
> Herzlichen Dank für Deine schnelle kompetente Hilfe.

danke für deine Rückmeldung, freut mich wenn ich dir auch hier helfen konnte

0 new messages