Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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
Auflisten in Listbox
Gregor
Hallo
Mit folgendem Makro suche ich aus einer Tabelle Projekte und gebe das Ergebnis laufend mit einer MsgBox aus. Statt der MsgBox möchte ich die gefunden Projekte in einer ListBox auflisten, das heisst alle Suchergebnisse in eine ListBox kopieren. Wie muss ich mein Makro abändern?
Sub Projekt_in_Meilensteine_suchen()
Application.ScreenUpdating = False
Dim Teilwert As Variant, Auswahl As Variant
Dim Beginn As Integer, intLastRow As Integer, Zeile As Integer, Zähler As Double
Dim Zielblatt As Variant, Quellblatt As Variant, Projekt As Variant
Dim c As Range, z As Long
Zielblatt = ActiveSheet.Name
Quellblatt = "Meilensteine"
Teilwert = InputBox(Prompt:="Bitte Projketbegriff eingeben" & vbNewLine & vbNewLine _
& " (Teil des Projektnamens)", _
Title:="  Projekt suchen", _
Default:="Wert eingeben")
If Teilwert = "" Then End
Zähler = 0
For Each c In Worksheets(Quellblatt).Columns(2).Cells
If c.Value Like "*" & Teilwert & "*" Then
Zähler = Zähler + 1
Zeile = c.Row
Auswahl = MsgBox(Worksheets(Quellblatt).Cells(Zeile, 1).Value & vbCrLf & Worksheets( _
Quellblatt).Cells(Zeile, 2).Value & vbCrLf & vbCrLf & " Weitersuchen?", vbYesNo, "    Suchergebnis " & Zähler)
If Auswahl = 7 Then
Worksheets(Quellblatt).Activate
Rows(Zeile).Select
ActiveWindow.ScrollRow = Zeile
End
End If
Application.ScreenUpdating = False
End If
Next
If Zähler = 0 Then MsgBox Prompt:="Keine Übereinstimmung mit" & vbCrLf + vbCrLf _
& "'" & Teilwert & "'" _
& vbCrLf & vbCrLf & "gefunden", _
Title:="   Suchergebnis"
Application.ScreenUpdating = True
End Sub
Vielen Dank und Gruss
Gregor

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Auflisten in Listbox
28.09.2010 10:23:47
marcl
Hallo Gregor,
versuch mal folgendes (ungetestet):
DeineUserForm.DeineCombobox.AddItem (Worksheets(Quellblatt).Cells(Zeile, 1).Value & vbCrLf & Worksheets( _Quellblatt).Cells(Zeile, 2).Value
Damit sollten alle Einträge in eine Auswahlbox eingelesen werden.
Gruß
marcl
AW: Auflisten in Listbox
28.09.2010 12:08:28
Gregor
Hallo
Vorab vielen Dank.
Ich habe im Forum noch folgenden Code gefunden:
Sub Suchen()
Dim rngFind As Range, rngFirst As Range
usrSuchen.Show
usrSuchen.lstFind.Clear
Set rngFind = Sheets("Meilensteine").Columns(2).Find( _
what:="Test", _
lookat:=xlPart, _
LookIn:=xlValues)
If rngFind Is Nothing Then
Beep
MsgBox "Kein Suchbegriff gefunden!"
Exit Sub
End If
Set rngFirst = rngFind
Do
usrSuchen.lstFind.AddItem rngFind
Set rngFind = Sheets("Meilensteine").Columns(2).FindNext(rngFind)
Loop While Not rngFind Is Nothing And _
rngFind.Address  rngFirst.Address
End Sub
Ich möchte aber in meiner ListBox mit 2 Spalten in der 1. Spalte den Eintrag aus Spalte A (Meilensteine) und in Spalte 2 den Eintrag aus Spalte B (Meilensteine), in diesem Fall rngFind eintragen.
Danke und Gruss
Gregor
Anzeige
umgebaut
28.09.2010 12:22:44
Rudi
Hallo,
Sub Suchen()
Dim rngFind As Range, rngFirst As Range, arrFind(), n As Integer
'usrSuchen.Show
usrSuchen.LstFind.Clear
Set rngFind = Sheets("Meilensteine").Columns(2).Find(what:="Test", _
lookat:=xlPart, _
LookIn:=xlValues)
If rngFind Is Nothing Then
Beep
MsgBox "Kein Suchbegriff gefunden!"
Exit Sub
End If
n = 1
ReDim Preserve arrFind(1 To 2, 1 To n)
arrFind(1, n) = rngFind.Offset(, -1)
arrFind(2, n) = rngFind
Set rngFirst = rngFind
Do
Set rngFind = Sheets("Meilensteine").Columns(2).FindNext(rngFind)
If Not rngFind Is Nothing Then
n = n + 1
ReDim Preserve arrFind(1 To 2, 1 To n)
arrFind(1, n) = rngFind.Offset(, -1)
arrFind(2, n) = rngFind
End If
Loop While Not rngFind Is Nothing And rngFind.Address  rngFirst.Address
With usrSuchen.LstFind
.ColumnCount = 2
.List = Application.Transpose(arrFind)
End With
End Sub

Gruß
Rudi
Anzeige
ähnlich wie die von Rudi
28.09.2010 12:38:29
Rudi
Hallo,
Sub suchen()
Dim rngFind As Range, rngFirst As Range
Dim ArrayData(), nCount As Long
Dim Suchbegriff As String

Suchbegriff = "Test1"

With Sheets("Meilensteine")
   
    nCount = Application.WorksheetFunction.CountIf(.Columns(2), Suchbegriff)
 
    If nCount = 0 Then
         Beep
         MsgBox "Kein Suchbegriff gefunden!"
    Else
         Redim ArrayData(nCount - 1, 1)
         nCount = 0
         
         Set rngFind = .Columns(2).Find( _
         what:=Suchbegriff, _
         lookat:=xlPart, _
         LookIn:=xlValues)
        
         Set rngFirst = rngFind
         
         Do
            ArrayData(nCount, 0) = .Cells(rngFind.Row, 1)
            ArrayData(nCount, 1) = rngFind
            nCount = nCount + 1
            Set rngFind = .Columns(2).FindNext(rngFind)
         Loop While rngFind.Address <> rngFirst.Address
         
         With usrSuchen.lstFind
            .Clear
            .ColumnCount = 2
            .List = ArrayData
         End With
         
         usrSuchen.Show
    End If
End With

End Sub
Gruß Tino
Anzeige
das ist natürlich ...
28.09.2010 12:41:58
Rudi
Hallo Tino,
... erheblich besser als meine ständige ReDim-Preserve-erei.
Gruß
Rudi
AW: das ist natürlich ...
28.09.2010 14:07:59
Gregor
Hallo zusammen
Super vielen Dank.
Beim Code von Tino erhalte ich bei
nCount = Application.WorksheetFunction.CountIf(.Columns(2), Suchbegriff)
für nCount jedoch immer 0, sodass die Meldung kein Suchbegriff kommt. Für welchen Suchbegriff auch immer.
Wieso könnte das nicht klappen?
Gruss Gregor
du suchst ja auch ...
28.09.2010 14:20:33
Rudi
Hallo,
nach Teilen (xlPart). Da kann CountIf nicht funktionieren.
Gruß
Rudi
AW: du suchst ja auch ...
28.09.2010 15:07:19
Gregor
Hallo Rudi
Na klar, könnte als nCount letzte Zeile definieren.
Gregor
arbeite mit Platzhalterzeichen *
28.09.2010 22:26:04
Tino
Hallo,
ich habe darauf nicht geachtet, sorry.
Baue die Zählenwenn- Funktion mit Platzhalterzeichen.
nCount = Application.WorksheetFunction.CountIf(.Columns(2),"*" & Suchbegriff & "*")
Gruß Tino
Anzeige
AW: arbeite mit Platzhalterzeichen *
01.10.2010 11:58:02
Gregor
Hoi Tino
oK, vielen Dank
Grego

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige