Re: Tabelle über Suchbegriffliste filtern
- From: Eberhard Funke <nomail@invalid>
- Date: Sat, 9 Jul 2005 19:41:46 +0200
Am Sat, 09 Jul 2005 16:26:54 +0200 schrieb Mark Ise:
> Ich hab es inzwischen mit VBA hinbekommen, aber eine Formel mit VERWEIS,
> WENN, VERGLEICH, oder sowas wäre mir lieber.
>
>
> Hier mal meine Ergüsse:
> --------------------------------------
> Sub Suche_String(SearchS As Variant)
> ' Durchsucht einen Bereich nach einem String und markiert die Zeile,
> ' wenn der String gefunden wurde
>
> With Worksheets(1).Range("i2:i500")
> Set c = .Find(SearchS, LookIn:=xlValues)
> If Not c Is Nothing Then
> firstAddress = c.Address
> Do
> zeile = c.Row
> Cells(zeile, 14).Value = "1"
> Set c = .FindNext(c)
> Loop While Not c Is Nothing And c.Address <> firstAddress
> End If
> End With
> End Sub
> -------------------------------------
> Sub VergleicheMitListe()
>
> ' Lösche alte Werte
> Worksheets(1).Range("n2:n500").ClearContents
>
> Dim SuchString As Variant
>
> With Worksheets(2).Range("a2:a50")
> For Each d In .Value
> Suche_String (d)
> Next d
> End With
>
> End Sub
> --------------------------------------
>
> BTW: Ich hab für den Anfang Copy und Paste mit der Excelhilfe benutzt.
> Ansonsten hätte ich das nicht annähernd so hinbekommen.
Hallo Mark,
diese beiden Ansätze haben mich etwas irritiert, aber probier's trotzdem
mal so:
Sub Suche_String()
'******************
'Durchsucht einen Bereich nach Strings aus einer Liste
'und ersetzt den Inhalt der Zelle durch eine 1,
'wenn der String gefunden wurde.
'Wahlweise können dann die Zellen, die keine 1
'enthalten, min 0 (Null) überschriebeb werden.
'******************
Dim rngBer As Range, rngListe As Range
Dim LZelle As Range, c As Range
Dim firstaddress As String
Set rngBer = Application.InputBox _
(prompt:="Bitte Datenbereich markieren", Type:=8)
Set rngListe = Application.InputBox _
(prompt:="Bitte Listenbereich markieren", Type:=8)
'hier kannst Du entweder die Bereiche mit der Maus
'markieren oder sie von Hand eintippen
On Error Resume Next
For Each LZelle In rngListe
Set c = rngBer.Find(LZelle.Value, LookAt:=xlPart)
If Not c Is Nothing Then
firstaddress = c.Address
Do
c.Value = 1
Set c = rngBer.FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
Next LZelle
'wenn die nicht-1-Zellen mit 0 (Null) überschrieben
'werden sollen, dann die folgenden auskommentierten
'Zeilen reaktivieren:
'Dim rngBZelle As Range
'For Each rngBZelle In rngBer
' If rngBZelle.Value <> 1 Then
' rngBZelle.Value = 0
' End If
'Next rngBZelle
End Sub
--
Gruß Eberhard
XL 2000
Eberhard(punkt)Funke(at)t-online.de
.
- References:
- Tabelle über Suchbegriffliste filtern
- From: Mark Ise
- Re: Tabelle über Suchbegriffliste filtern
- From: Eberhard Funke
- Re: Tabelle über Suchbegriffliste filtern
- From: Mark Ise
- Tabelle über Suchbegriffliste filtern
- Prev by Date: Re: Solver mag seine mitgelieferten Bedingungen nicht
- Next by Date: Excel00 VBA-Code unterbrechen für Benutzer (markieren einer Spalt
- Previous by thread: Re: Tabelle über Suchbegriffliste filtern
- Next by thread: Re: Tabelle über Suchbegriffliste filtern
- Index(es):
Relevant Pages
|