Suchen / Markieren / Weitersuchen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm InputBox MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Suchen / Markieren / Weitersuchen
von: Patrizia
Geschrieben am: 16.07.2002 - 12:50:07

Hallo !!!

Ich hoffe das mir jemand bei meinem Problem helfen kann.

Ich möchte in einer Spalte nach einem Wert suchen. Ich habe eine UserForm angelegt auf dieser Buttons mit der entsprechenden Suchfunktion belegt (z.B. Button 1 = Suche in Spalte A). Bei Druck auf einen Button öffnet sich dann eine InputBox in der ich meinen Suchwert eintragen kann und nach Druck auf den OK-Button wird die Spalte durchsucht und wenn der Wert gefunden wird die ganze Zeile (die diesen Wert enthält) markiert.

Soweit funktioniert alles wunderbar. Ich habe nun folgendes Problem und hoffe das mir jemand helfen kann:

In der Regel kommen die Werte mehrfach in einer Spalte vor. Bei meinem Code wird aber immer nur eine Zeile markiert auch wenn mehrere mit dem gleichen Wert vorhanden sind. D.h. mein Code müßte um die Funktion erweitert werden das er nicht nur die erste gefunde Zeile markiert sondern alle Zeilen mit dem entsprechenden Wert markiert werden.

Für eure Hilfe bedanke ich mich bereits im voraus.

Hier nun mein bisheriger Code:

Sub SucheSpalteH()
Dim rngFind As Range
Dim strBegriff As String
strBegriff = InputBox("Suchbegriff:")
If strBegriff = "" Then Exit Sub
Set rngFind = Columns(8).Find(strBegriff, LookAt:=xlWhole, LookIn:=xlFormulas)
If rngFind Is Nothing Then
Beep
MsgBox "Suchbegriff wurde nicht gefunden!"
Exit Sub
End If
Rows(rngFind.Row).Select
End Sub

nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: @lex
Geschrieben am: 16.07.2002 - 13:15:09

Hallo Patrizia !
Ich würde ich der Spalte die letzte beschriebene Zeile ermitteln,
und dann ein For-To-Schleife durchlaufen lassen.
z.B.:
iCol = 8
iRow = Cells(Rows.Count,iCol).End(xlup).Row
For iCount = 1 to iRow
If Cells(iRow, iCol).Value = strBegriff then rows(iCount).....
Next iCount

nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: Patrizia
Geschrieben am: 16.07.2002 - 13:20:24

Und wo soll ich das in meiner Formel eintragen ????

nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: @lex
Geschrieben am: 16.07.2002 - 13:46:48

Sorry hatte ich überlesen :-)
Versuchs mal mit diesem Fragment :
Sub Suchen()

Dim iRow, iCount, iCol, intZ As Integer
Dim strBegriff, As String
Dim rngFile as Range
iCol = 1
iRow = Cells(Rows.Count, iCol).End(xlUp).Row
strBegriff = InputBox("Suchbegriff:")
intZ = 0
For iCount = 1 To iRow
Set rngFile = Cells(iCount, iCol).Find(strBegriff, LookAt:=xlWhole, LookIn:=xlFormulas)
    If Not rngFile Is Nothing Then
    MsgBox iCount
    intZ = intZ + 1
    End If
Next iCount
    If intZ = 0 Then
    Beep
    MsgBox ("Nix da !")
    End If
End Sub

VG,
Alex

nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: Patrizia
Geschrieben am: 16.07.2002 - 14:15:31

Hallo,

dein Codefragment ist super !!!
Zeigt die Zeilen (in einer MsgBox) an in welchen sich der Suchbefehl befindet. Wenn jetzt noch eine Möglichkeit bestehen würde die Zeilen zu markieren dann wäre es perfekt !!!!


nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: @lex
Geschrieben am: 16.07.2002 - 14:23:59

Füge unter MsgBox z.b.
Cells(iCount,iCol).Interior.ColorIndex = 4 ein
Die Zeile wird dann eingefärbt.
Mit der Farbe musst Du etwas rumspielen. 4 ist z.B. grün

VG,
@lex

PS: Freut mich, dass Du mit dem Code was anfangen kannst.
So etwas motiviert einen Anfänger wie mich ungemein

nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: Patrizia
Geschrieben am: 16.07.2002 - 15:48:06

Hallo !!!

Das mit dem Einfärben funktioniert auch spitze. Jetzt habe ich fast das was ich wollte im Prinzip schon genau das was ich wollte es gibt nur ein Problem wenn ich bei der Inputbox nichts
eingebe sondern einfach auf abbrechen gehen färbt er mir die ganze Spalte in der entsprechenden Farbe ein (alle leeren Felder in dieser Spalte).
Hast vielleicht noch ne Idee.
Wäre ganz super.
Danke schon mal für deine super Hilfe.


nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: WernerB.
Geschrieben am: 16.07.2002 - 18:54:33

Hallo Patrizia,

das nachstehende Makro sollte auch ohne Anpassungen alle Deine Wünsche erfüllen:


Option Explicit
Sub SucheSpalteH()
Dim As Range
Dim strBegriff As String, sR As String
Dim laR As Long
Dim As Boolean
    strBegriff = InputBox("Suchbegriff:")
    If strBegriff = "" Then Exit Sub
    laR = Cells(Rows.Count, 8).End(xlUp).Row
    t = False
    For Each c In Range("H1:H" & laR)
      If c.Value = strBegriff Then
        t = True
        sR = sR & c.Row & ":" & c.Row & ","
      End If
    Next c
    If t = True Then
      sR = Left(sR, Len(sR) - 1)
      Range(sR).Select
    Else
      Beep
      MsgBox "Suchbegriff wurde nicht gefunden!"
    End If
End Sub

Viel Erfolg wünscht
WernerB.
nach oben   nach unten

Re: Suchen / Markieren / Weitersuchen
von: @lex
Geschrieben am: 17.07.2002 - 11:04:00

:-)
Hätte ich ja auch testen können.

Versuch mal unter
strBegriff = InputBox("Suchbegriff:")
diese einzufügen:
If strBegriff = "" Then Exit Sub
Dann sollte es nicht mehr passieren

VG,
Alex

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Suchen / Markieren / Weitersuchen"