Microsoft Excel

Herbers Excel/VBA-Archiv

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

Listbox zeigt nicht alle treffer an


Betrifft: Listbox zeigt nicht alle treffer an von: Dominik
Geschrieben am: 01.09.2019 19:29:29

hallo,

der nachfolgende code soll alle gleichen zahlen aus textbox 17 in tabelle2 spalte A suchen und die gefunden werte in der listbox mit den spalteninhalten von b:d neben dem gefunden wert ausgeben.

jetzt findet der code zwar alle gleichen zahlen, gibt mir in der listbox aber nur die letzte gleiche gefunden zahl mit den spalten daneben in der listbox aus, und von den anderen gefunden werten nur die zahlen ohne der spalten daneben.

2. frage: nachdem alle gefundenen treffer in der listbox angezeigt werden, würde ich gerne durch klick auf z.b. den ersten wert in der listbox einen hyperlink öffnen der auch auf tabellenblatt 2 in spalte F steht. und wenn ich den zweiten wert in der listbox anklicke soll hier auch der entsrpechende link geöffnet werden.

Private Sub CommandButton1_Click()
  Dim rng As Range
  Dim strFirst As String
  ListBox5.Clear
  With Sheets("Tabelle2")
    Set rng = Sheets(2).Range("P:P").Find(What:=TextBox17.Value, LookIn:=xlValues, LookAt:= _
xlWhole)
    If Not rng Is Nothing Then
      strFirst = rng.Address
      ListBox5.ColumnCount = 4
      Do
        ListBox5.AddItem rng.Value
        ListBox5.List(I, 1) = Sheets(2).Cells(rng.Row, 4)
        ListBox5.List(I, 2) = Sheets(2).Cells(rng.Row, 5)
        ListBox5.List(I, 3) = Sheets(2).Cells(rng.Row, 6)
      
   
        
        Set rng = Sheets(2).Range("P:P").FindNext(rng)
      Loop While Not rng Is Nothing And strFirst <> rng.Address
    End If
  End With
  Set rng = Nothing
End Sub
vielen dank für eure hilfe.

gruß Dominik

  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Hajo_Zi
Geschrieben am: 01.09.2019 19:30:42

Hallo Dominik,

frage jemand der neben Dir sitzt der sieht die Datei.
Die meisten hier sehen Sie nicht.
Da Sie nicht auf Deinen Rechner schauen.
Vielleicht sollte die Datei verlinkt werden?

Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm*, Forum* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.

Das ist nur meine Meinung zu dem Thema.

Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)



GrußformelHomepage


Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.


  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Nepumuk
Geschrieben am: 01.09.2019 20:05:25

Hallo Dominik,

teste mal:

Private Sub CommandButton1_Click()
    Dim rng As Range
    Dim objSheet As Worksheet
    Dim strFirst As String
    Set objSheet = Worksheets("Tabelle2")
    With ListBox5
        .Clear
        .ColumnCount = 5
        Set rng = objSheet.Columns("P").Find(What:=TextBox17.Value, _
            LookIn:=xlValues, LookAt:=xlWhole)
        If Not rng Is Nothing Then
            strFirst = rng.Address
            Do
                .AddItem rng.Value
                .List(.ListCount - 1, 1) = objSheet.Cells(rng.Row, 4).Value
                .List(.ListCount - 1, 2) = objSheet.Cells(rng.Row, 5).Value
                .List(.ListCount - 1, 3) = objSheet.Cells(rng.Row, 6).Value
                .List(.ListCount - 1, 4) = rng.Row
                Set rng = objSheet.Columns("P").FindNext(After:=rng)
            Loop Until strFirst = rng.Address
        End If
    End With
    Set rng = Nothing
    Set objSheet = Nothing
End Sub

Private Sub ListBox5_Click()
    With ListBox5
        ThisWorkbook.FollowHyperlink Worksheets("Tabelle2").Cells( _
            Clng(.List(.ListIndex, 4)), 6).Hyperlinks(1).Address
    End With
End Sub

Ich musste in der ListBox eine weitere Spalte einfügen damit ich weis in welcher Zeile sich der gewünschte Hyperlink befindet.

Gruß
Nepumuk


  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Dominik
Geschrieben am: 01.09.2019 23:05:36

Hallo Nepumuk,

vielen dank funktioniert genauso so wie ich es haben wollte.

eine frage habe ich noch zu dem Private sub listbox 5 kannst du mir erklären was er da genau macht und für was die zahlen 4, 6 und 1 in hyperlink stehen. ich bekommen es nämlich nicht zum laufen.

gruß dominik


  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Nepumuk
Geschrieben am: 02.09.2019 07:27:02

Hallo Dominik,

die 4 steht für die fünfte Spalte der ListBox (Zeilennummer). Die 6 für die sechste Spalte der Tabelle (F). Und die 1 für den ersten Hyperlink in der Zelle, wobei es in Zellen nur einen Hyperlink geben kann.

Gruß
Nepumuk


  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Dominik
Geschrieben am: 03.09.2019 19:52:04

hallo Nepumuk,

vielen vielen dank es funktioniert.

eine sache ist mir noch eingefallen, da ich die datei verschicken will und auch andere außerhalb des netzwerkes die pdf datei öffnen sollen, geht dies nur wenn ich die pdf datei in excel als objekt einbette. ist es auch möglich darüber in einer listbox die jeweilige pdf datei in der entsprechenden zelle zu öffnen? hoffe das geht.

Gruß Dominik


  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Nepumuk
Geschrieben am: 03.09.2019 21:32:47

Hallo Dominik,

teste mal:

Private Sub ListBox5_Click()
    Dim objOLEObject As OLEObject
    Dim lngRow As Long
    With ListBox5
        lngRow = Clng(.List(.ListIndex, 4))
    End With
    For Each objOLEObject In Worksheets("Tabelle2").OLEObjects
        With objOLEObject
            If .TopLeftCell.Row = lngRow Then
                Call .Verb(Verb:=xlVerbPrimary)
                Set objOLEObject = Nothing
                Exit For
            End If
        End With
    Next
End Sub

Gruß
Nepumuk


  

Betrifft: AW: Listbox zeigt nicht alle treffer an von: Dominik
Geschrieben am: 03.09.2019 22:35:42

Hallo Nepumuk,
1000 dank du bist genial ;)

gruß Dominik


Beiträge aus dem Excel-Forum zum Thema "Listbox zeigt nicht alle treffer an"