Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eintrag aus Kombinationsfeld per VBA auswählen

Eintrag aus Kombinationsfeld per VBA auswählen
Michael
Hallo,
ich möchte eine xls Datei per VBA öffnen und dann Werte aus ihr holen. Das Funktioniert auch wunderbar. Allerdings muss ich nun noch in einem Kombinationsfeld ein Wert auswählen damit ich die richtigen Daten aus dem Dokument ziehen kann.
Dieses will allerdings nicht funktionieren.
Hier mein Code:
Public Function GetValueWF(file As String, ort As String, sheet As Integer, boxname As String,  _
sheetname As String, FieldIndex As Integer) As Double
Dim Arbeitsmappe As Workbook, Tabelle1 As String, cb As MSForms.ComboBox
Set Arbeitsmappe = Application.Workbooks.Open(file)
Arbeitsmappe.Activate
Dim feldinhalt As Double
Volumen.OLEObjects("Dropdown1").SetFocus
Volumen.OLEObjects("Dropdown1").Object.ListIndex = 7
feldinhalt = Arbeitsmappe.Sheets(sheet).Range(ort).Value
GetValueWF = feldinhalt
Arbeitsmappe.Close SaveChanges:=False
End Function
Der Fehler: Laufzeitfehler 424 Objekt erforderlich bei Zeile -> Volumen.OLEObjects("Dropdown1").SetFocus
Wäre sehr schön wenn mir Jemand weiterhelfen könnte.
VG
Michael

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Eintrag aus Kombinationsfeld per VBA auswählen
29.07.2011 18:28:23
fcs
Hallo Michael,
wenn du Objekte in externen Arbeitsmappen ansprechen willst, dann gibst du am besten immer die Referenz zu den Eltern-/Eigentümer-Objekten komplett an.
Es müßte dann etwa wie folgt aussehen. Die erforderliche Anweisung zum Setzen des Index-Wertes hängt dann vom Typ der DropDown/Combobox. Ich tippe, dass du die Zeile mit "Shapes" verwenden muss.
Gruß
Franz
Sub aTest()
'  Test-Anweisungen zum Auslesen von Werten
ActiveSheet.Range("A3") = GetValueWF(file:="C:\Users\Public\Test\DataVolumen", _
ort:="A1", sheet:=1, boxname:="Combobox1", sheetname:="", FieldIndex:=Range("A2"))
ActiveSheet.Range("A4") = GetValueWF(file:="C:\Users\Public\Test\DataVolumen", _
ort:="A1", sheet:=1, boxname:="DropDown 2", sheetname:="", FieldIndex:=Range("A2"))
End Sub
Public Function GetValueWF(file As String, ort As String, sheet As Integer, boxname As String,  _
_
sheetname As String, FieldIndex As Integer) As Double
Dim Arbeitsmappe As Workbook, Tabelle1 As String ', cb As MSForms.Combobox
Application.ScreenUpdating = False
Set Arbeitsmappe = Application.Workbooks.Open(file)
'    Arbeitsmappe.Activate 'überflüssig
Dim feldinhalt As Double
On Error Resume Next 'Zeile nur zum Testen, damit bei falschem Objekt-Typ Zeile ü _
bersprungen wird.
'    Volumen.OLEObjects("Dropdown1").SetFocus ' nicht erforderlich - überflüssig
' Anweisung für eine Combobox aus der Steuerelemente-Toolbox (Active-X-Element)
Arbeitsmappe.Sheets("Volumen").OLEObjects(boxname).Object.ListIndex = FieldIndex '7
'    Volumen.OLEObjects("Dropdown1").SetFocus
' Anweisung für eine DropDown-Liste aus den Formularelementen
Arbeitsmappe.Sheets("Volumen").Shapes(boxname).ControlFormat.Value = FieldIndex '7
Application.Calculate 'ggf. erforderlich, wenn aufwendige Berechnungen an die Auswahl _
gekoppoelt sind
feldinhalt = Arbeitsmappe.Sheets(sheet).Range(ort).Value
GetValueWF = feldinhalt
Arbeitsmappe.Close SaveChanges:=False
Application.ScreenUpdating = False
End Function

Anzeige
AW: Eintrag aus Kombinationsfeld per VBA auswählen
01.08.2011 14:29:38
Michael
Wunderbar! Vielen Dank hat bestens geklappt!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige