Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Listbox mehr anzeigen

Betrifft: Listbox mehr anzeigen von: Stefan Glander
Geschrieben am: 12.11.2014 09:06:02

Guten Morgen Forum,

ich habe auf einer UF eine Listbox1 die ich wie folgt befülle:

Über die Combobox1 wähle ich aus, aus welchem Tabellenblatt die Daten stammen sollen.

Private Sub ComboBox1_Change()
    Dim objDic As Object, rngC As Range
    Set objDic = CreateObject("Scripting.dictionary")
    If ComboBox1.ListIndex = 0 Then Exit Sub
    With Sheets(ComboBox1.Text)
        For Each rngC In .Range(.Cells(7, 3), .Cells(Rows.Count, 3).End(xlUp))
            objDic(rngC.Value) = 0
        Next
    End With
    ListBox1.List = objDic.keys
        ListBox1.Visible = True
End Sub
Danach öffnet sich die Listbox1
dort habe ich nun folgenden Code:
Private Sub ListBox1_Click()
    Dim i As Integer
    If ComboBox1.ListIndex = 0 Then Exit Sub
    With Sheets(ComboBox1.Text).Columns(3)
        Set Suchergebnis = .Find(ListBox1.Text, LookIn:=xlValues, lookat:=xlWhole)
            If Not Suchergebnis Is Nothing Then
                For i = 1 To 15
                Controls("Textbox" & i).Value = Suchergebnis.Offset(0, i - 1).Value
                Next
            End If
    End With
        ListBox1.Visible = False
End Sub
Im Moment werden Die Werte aus Spalte "C" angezeigt. Wie bekomme ich es den nun hin das auch die dazugehörigen Werte aus Spalte "D" mit angezeigt werden?

Gruß

Stefan

  

Betrifft: AW: Listbox mehr anzeigen von: robert
Geschrieben am: 12.11.2014 09:41:19

Hi,

Zitat: ich befülle... ich wähle aus...usw

das ganze grenzt an eine Auftragsarbeit, denn alles was Du hast, ist aus dem Forum.

Was hast Du eigentlich wirklich selbst erstellt?

Du solltest versuchen,die Makros auch zu verstehen bzw. anzupassen.

Eigeninitiative wäre nicht schlecht.

Gruß
robert


  

Betrifft: AW: Listbox mehr anzeigen von: Stefan Glander
Geschrieben am: 12.11.2014 09:57:13

Hallo Robert,

schön das Du geantwortet hast. Auf meinen Eintrag von gestern hattest Du es ja nicht nötig.

Aber nun zu dem was du eben geschrieben hast.
Ja, ich habe sehr viel aus diesem Forum. Ich versuche auch die Sachen zu verstehen.
Ich kann dieses am besten wenn ich Beispiele sehe.
Ich glaube auch nicht, um auch mal etwas Schärfe meinerseits hier rein zu bringen, damit hast Du bereits gestern angefangen, das Du beurteilen kannst ob es sich um, wie hast Du so schon gesagt, Auftragsarbeit handelt und was ich selber erstellt habe.
So wie Du entscheiden kannst ob Du hier jemandem Helfen möchtest oder nicht, bitte ich Dich doch einfach, wenn Du der Meinung bist das es nicht okay ist mir zu helfen solche Kommentare zu unterlassen.
Helfe oder lasse es doch einfach.
Ich finde Deine Reaktion überzogen, nur weil ich nicht weiß wie ich hier in diesem Beispiel einen ListIndex einbinden soll.

Noch mit freundlichem Gruß
Stefan


  

Betrifft: Der ist nur für ROBERT von: Stefan Glander
Geschrieben am: 12.11.2014 21:54:40

Hallo Robert,

was hast Du an meiner Nachricht eigentlich nicht verstanden?

So wie Du entscheiden kannst ob Du hier jemandem Helfen möchtest oder nicht, bitte ich Dich doch einfach, wenn Du der Meinung bist das es nicht okay ist mir zu helfen solche Kommentare zu unterlassen.
Helfe oder lasse es doch einfach.

Irgendwie bin ich kurz davor meine Erziehung zu vergessen!

Also nochmal: Helfe oder lasse es! Spare Dir Deine nicht angebrachten Kommentare und genieße Dein Rentnerdasein, aber bitte Löffel mich nicht weiter voll.

In der Hoffnung das Du das nun akzeptieren kannst

Schönen Abend

Stefan


  

Betrifft: AW: Listbox mehr anzeigen von: fcs
Geschrieben am: 12.11.2014 11:07:17

Hallo Stefan,

Listbox1:
Hier die Eigenschaft ColumnCount auf 2 ändern und ggf. auch ColumnsWidths anpassen.

Combobox1:
Makro wie folgt anpassen. Es wird zusätzlich zusätzlich die Zeilennummer zu den Werten in Spalte C im Dictionary-Objekt erfasst. So kann man dann die weiteren Informationen für die Listbox zusammenstellen.

Sinnvoll wäre es, die Spaltennummer auch in einer weiteren Spalte der Listbox zu erfassen. Dann könnte man im Listbox1-Change-Makro auf die Suchfunktion verzichten und über die Zeilennummer des gewählten Eintrags in der List der Listbox direkt auf die Daten in der Tabelle zugreifen.

Gruß
Franz

Private Sub ComboBox1_Change()
    Dim objDic As Object, rngC As Range
    Dim intBox As Integer, arrListe(), objItem As Variant
    Set objDic = CreateObject("Scripting.dictionary")
    If ComboBox1.ListIndex = 0 Then Exit Sub
    On Error GoTo Fehler
    With Sheets(ComboBox1.Text)
        For Each rngC In .Range(.Cells(7, 3), .Cells(Rows.Count, 3).End(xlUp))
            objDic.Add rngC.Value, rngC.Row
Next_rngC:
        Next
    End With
    ReDim arrListe(1 To objDic.Count, 1 To 2)
    With Sheets(ComboBox1.Text)
        intBox = 0
        For Each objItem In objDic
          intBox = intBox + 1
          arrListe(intBox, 1) = objItem '.Cells(objDic.Item(objItem), 3)
          arrListe(intBox, 2) = .Cells(objDic.Item(objItem), 4)
        Next objItem
    End With
    ListBox1.List = arrListe
    ListBox1.Visible = True
Fehler:
    With Err
      Select Case .Number
        Case 0 'alles ok
        Case 457 'doppelter Schlüssel im Dictionary-Object
          Resume Next_rngC
        Case Else
          MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
      End Select
    End With
    Erase arrListe
    Set objDic = Nothing
End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "Listbox mehr anzeigen"