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.

Bestimmte Zelle Suchen und Auflisten
#1
Hallo ich habe folgendes Problemchen, so sieht ungefähr meine Tabelle aus:

SpalteA.......SpalteB
GKZ..........Typ

7W08.........Art 1 Z ohne R
7W23.........Art 1 Z ohne R
7S09.........Art 1 Z ohne R
7S73.........Art 1 Z ohne R
7S99.........Art 1 Z ohne R
7W23.........Art 2 X mit R

in der Zelle E1 wird der gesuchte Wert eingeben und in F1 wieder der zugehörige Typ ausgegeben.
Meine Suchfunktion funktioniert soweit das wenn der gesuchte Wert gefunden wurde der Typ ausgegeben wird. Jedoch kommt in SpalteA 7W23 zweimal vor, ich möchte aber folgende Ausgabe:
Wenn nach 7W23 gesucht wird soll der Typ in der Spalte F untereinander aufgelistet werden
7W23 Art1 Z ohne R
Art 2 X mit R

Mein Code:

Code:
Sub ZeileFinden()
Dim Ergebnis As Range

Set Ergebnis = Tabelle1.Columns(1).Find(what:=Tabelle1.Range("E1").Value, _
                lookat:=xlWhole)

If Ergebnis Is Nothing Then
MsgBox "Leider nichts gefunden"
Else

Tabelle1.Range("F1").Value = Tabelle1.Cells(Ergebnis.Row, 2).Value
End If

End Sub

Ich hoffe es kan mir jemand dabei weiterhelfen BlushBlush

Danke

claudia
Antworten Top
#2
Hallo Claudia,

in diesem Fall musst Du die FindNext Methode nutzen. Ist in der Excel Hilfe knapp beschrieben.

So sollte es gehen:

Code:
Option Explicit

Sub ZeileFinden()
   Dim i As Long
   Dim Ergebnis As Range
   Dim strgAddress As String


   With Tabelle1.Columns(1)
      .Columns(6).ClearContents  'Spalte F wird zuerst geleert
      Set Ergebnis = .Find(what:=Tabelle1.Range("E1").Value, _
                   lookat:=xlWhole)
      If Not Ergebnis Is Nothing Then
         strgAddress = Ergebnis.Address
         Do
            i = i + 1
            Tabelle1.Range("F" & i).Value = Tabelle1.Cells(Ergebnis.Row, 2).Value
            Set Ergebnis = .FindNext(Ergebnis)
         Loop While Not Ergebnis Is Nothing And Ergebnis.Address <> strgAddress
      Else
         MsgBox "Leider nichts gefunden"
      End If
   End With
  
End Sub

Bei größeren Datenbeständen eignet sich der Spezialfilter besser.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • claudia
Antworten Top
#3
Perfekt Dankeeeeeee :23:
Antworten Top
#4
Hallo Claudia,

probier es mal so:

Code:
Sub Suche()
Dim i As Long
Dim ZeileMax As Long
Dim Treffer As Range
Dim strBegriff As String
  
With Tabelle1
strBegriff = .Range("E1").Value
Set Treffer = .Range("A2")
.Columns(6).ClearContents
      
ZeileMax = .Cells(Rows.Count, 6).End(xlUp).Row
      
For i = 1 To WorksheetFunction.CountIf(Columns(1), strBegriff)
  
    Set Treffer = Columns(1).Find(What:=strBegriff, After:=Treffer, _
                LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False)

    If Not Treffer Is Nothing Then
        Treffer.Offset(0, 1).Copy Destination:=Range("F" & ZeileMax)
        ZeileMax = ZeileMax + 1
    End If
          
Next i
End With

End Sub

Gruß
Max
Antworten Top


Gehe zu:


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