Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

3spaltige Daten, auswählen per Dropdown und Ergebnis in unterschiedliche Zellen setze
#1
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
... das Gras wächst nicht schneller, nur weil man daran zieht ...
Antworten Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rose
Antworten Top
#3
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.
... das Gras wächst nicht schneller, nur weil man daran zieht ...
Antworten Top
#4
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rose
Antworten Top
#5
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.
... das Gras wächst nicht schneller, nur weil man daran zieht ...
Antworten Top
#6
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rose
Antworten Top
#7
(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
... das Gras wächst nicht schneller, nur weil man daran zieht ...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste