Clever-Excel-Forum

Normale Version: 3spaltige Daten, auswählen per Dropdown und Ergebnis in unterschiedliche Zellen setze
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin,
ich habe eine Tabelle A42:C120 (3Spalten, ca. 80Zeilen)
Auf Tabellenblatt 2 möchte ich in einer Combobox diesen "Datenvorrat" einlesen und darstellen.
Nach Auswahl einer Zeile sollen die 3 Werte der gewählten Zeile in 3 unterschiedliche Zellen geschrieben werden. (Excel 2010+VBA)

Mein erster Ansatz:
Private Sub UserForm_Initialize()
Sheets("zugkraft").Select
  ListBox1.ColumnCount = 5
  ListBox1.RowSource = "a42:c120"
'Wenn cells(6,1) besetzt ist, kommt Fehler, daher: vorher löschen
  Cells(6, 1).ClearContents
'In diese Zelle wird ausgewähltes Element ausgegeben
  ListBox1.ControlSource = "a6"
'Mit BoundColumn Werte in a6 verändern
ListBox1.BoundColumn = 0
'ListBox1.BoundColumn = 2
End Sub

War nicht erfolgreich, da ich schon mit der Angabe Listbox1.RowSource="a1:e4" eine Fehlermeldung mit Laufzeitfehler 438 bekomme (Objekt unterstützt diese Eigenschaft nicht)

Den Code oben habe ich aus Herbers.Excelbereich vor Jahren mal als Beispiel bei mir abgelegt und jetzt hervorgeholt um es für mich anzupassen. Aber mit der RowSource-Anweisung komme ich schon an meine Grenzen. Vielleicht kann mir jemand auf die Sprünge helfen?

Hat jemand zufällig eine Quelle, wo sowas schon mal behandelt wurde? Ich habe leider bisher noch nichts wirkliches treffendes für mich finden können.
Vielen Dank für Eure Hilfe im Voraus.
HG
Rolf
Hallo Rolf,

wo genau befindet sich die ListBox1? Du schreibst: in Tabelle2, der Code dreht sich jedoch um ein Userform.
PS: Ich sehe gerade: ComboBox! Was jetzt nun?

Gruß Uwe
uuups... Sorry... das kommt davon... Ctrl-C+V und ein "bisschen" anpassen... Smile

Also Listbox... durchgängig Smile

Auf dem Tabellenblatt 2 stehen die Daten.
Ich weiss, dass ich dann auch schreiben müsste: ListBox1.RowSource = "Tabelle2!a42:c120"

Aber mir macht schon RowSource den Strich durch die Rechnung...

Mir ist auch nicht wirklich klar, wie ich dann - falls ich eine fertig gefüllte Listbox hätte - gezielt die 3 Werte in unterschiedliche Zellen ausleiten kann.
Hallo Rolf,

keine Ahnung, was bei Dir das Problem ist, aber so funktioniert es bei mir:
Option Explicit

Private Sub ListBox1_Change()
 With ListBox1
   If .ListIndex > -1 Then
     Range("A6").Value = .List(.ListIndex, 0)
     Range("B6").Value = .List(.ListIndex, 1)
     Range("C6").Value = .List(.ListIndex, 2)
     End If
 End With
End Sub

Private Sub UserForm_Initialize()
 ListBox1.ColumnCount = 5
 ListBox1.RowSource = "Tabelle2!a42:c120"
End Sub
Gruß Uwe
Hallo Uwe,
ich muss leider nochmal was nachfragen...

Private Sub Workbook_Open()
Dim CordFaktorenAuswahl As ComboBox
Dim letzteZahnscheibenWahlindex As Integer

    ThisWorkbook.Worksheets("Zahnriemen").Activate
    Sheets("Zahnriemen").CordFaktorenAuswahl.ListFillRange = "DoNotTouch!H22:I26"
    Sheets("Zahnriement").CordFaktorenAuswahl.ListIndex = 0  'Listbox von Zugstrang auf Stahlcord setzen
      
   
Dieser Anfang meines Codes macht mich noch irre.
Mal funktioniert es super, dann wieder bekomme ich eine Fehlermeldung 438 bei der magenta markierten Zeile. (Objekt unterstützt diese Eigenschaft oder Methode nicht)
Ich finde einfach nicht raus, warum mir das um die Ohren gehauen wird... Der Bereich und das Tabellenblatt "DoNotTouch...." ist definitiv vorhanden.


Fällt Dir vielleicht spontan auf, wo es hängt? Ich sehe es jedenfalls nicht.
Danke im Voraus.
Hallo Rolf,

(25.01.2018, 12:19)Rose schrieb: [ -> ]Fällt Dir vielleicht spontan auf, wo es hängt? Ich sehe es jedenfalls nicht.

Du deklarierst CordFaktorenAuswahl als Combobox, weist dieser Variable dann aber keine Combobox per Set-Befehl zu. Wenn aber die Combobox so heißen sollte, lass die Deklarationszeile weg. Die kannst Du aber auch generell weglassen.
Vermutlich heißt die Combobox anders oder die ColumnCount-Eigenschaft steht auf 1.

Gruß Uwe
(25.01.2018, 14:39)Kuwer schrieb: [ -> ]oder die ColumnCount-Eigenschaft steht auf 1.

Gruß Uwe

Hej Uwe,
vielen Dank... Scheint an der Eigenschaft zu liegen. Warum auch immer stand die auf "2"...
Im Moment scheint es nun zu gehen.

Morgen früh probiere ich es noch mal genauer..

Sei vorerst herzlichst bedankt...!

HG
Rolf