Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Match versus Find

Forumthread: Match versus Find

Match versus Find
19.04.2009 11:52:37
klexcel
Hallo alle,
neulich habe ich hier einen interessanten Beitrag über die Vorteile der Funktion Match gegenüber der Find-Methode gelesen. Leider finde ich das nicht mehr. Meine Versuche, die Match-Funktion auf einen größeren bereich Range("A2:DE3000") sind leider kläglich gescheitert. Kann mir Jemand helfen?
Grüße Hubert
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Match versus Find
19.04.2009 12:00:24
Tino
Hallo,
die Match Funktion funktioniert wie bzw. ist die Excel- Funktion Vergleich und kann nur auf eine Spalte oder Zeile angewendet werden.
Schau einfach mal in der Hilfe unter der Funktion "VERGLEICH" nach.
Gruß Tino
AW: Match versus Find
19.04.2009 12:08:42
klexcel
Hallo Tino,
vielen Dank für die schnelle Antwort. Dann hat die Find-Methode also doch eine gewisse Exixtenzberechtigung.
Grüße Hubert
Anzeige
AW: Match versus Find
19.04.2009 12:12:48
Tino
Hallo,
würde ich schon sagen, kommt eben darauf an was man machen will.
Gruß Tino
AW: Match versus Find
19.04.2009 14:32:05
Gerd
Hallo Hubert!

Sub test()
Dim strMatch As String, vntRetVal As Variant, lngCol As Long
Dim Bereich As Range, Fund As Range
'strMatch = InputBox("suchbegriff")
'If StrPtr(strMatch) = 0 Or strMatch = "" Then Exit Sub
strMatch = "Apfel" 'Testwert
With ActiveSheet
For lngCol = 1 To 109
Set Bereich = .Range(.Cells(2, lngCol), .Cells(3000, lngCol))
Do
vntRetVal = Application.Match(strMatch, Bereich, 0)
If IsNumeric(vntRetVal) Then
If Not Fund Is Nothing Then
Set Fund = Union(Fund, .Cells(Bereich.Row + vntRetVal - 1, lngCol))
Else
Set Fund = .Cells(Bereich.Row + vntRetVal - 1, lngCol)
End If
Set Bereich = Range(.Cells(Bereich.Row + vntRetVal, lngCol), .Cells(3000, lngCol))
End If
Loop While IsNumeric(vntRetVal) And Bereich.Row 


Gruß Gerd

Anzeige
AW: Match versus Find
19.04.2009 14:55:48
klexcel
Hallo Gerd,
vielen Dank. So hatte ich das auch gelöst, hatte aber auf eine "elegantere Möglichkeit" gehofft.
Grüße Hubert
AW: Match versus Find
19.04.2009 15:15:25
robert
hi, zuerst...
Meine Versuche, die Match-Funktion auf einen größeren bereich Range("A2:DE3000") sind leider kläglich gescheitert. Kann mir Jemand helfen?(Zitat)
und dann diese antwort an gerd ?
gruß
robert
Anzeige
AW: Match versus Find
19.04.2009 16:07:20
Tino
Hallo,
so müsste es über einen Beliebigen Zellbereich funzen.
Sub Test()
Dim Bereich As Range, rZellen As Range
Dim LCol As Long, tempCol As Long
Dim SuchWert, varRow

SuchWert = "Apfel"

'hier den Suchbereich anpassen********************************** 
Set Bereich = Range("A3:Z100")

    For LCol = 1 To Bereich.Columns.Count
       
       tempCol = 1
       
       Do While IsNumeric(varRow)
         
            varRow = Application.Match(SuchWert, Bereich.Columns(LCol).Range(Cells(tempCol, 1), Cells(Bereich.Rows.Count, 1)), 0)
            
               If IsNumeric(varRow) Then
                  If rZellen Is Nothing Then
                   Set rZellen = Bereich(varRow + tempCol - 1, LCol)
                   tempCol = tempCol + varRow
                  Else
                   Set rZellen = Union(rZellen, Bereich(varRow + tempCol - 1, LCol))
                   tempCol = tempCol + varRow
                  End If
               End If
       
       Loop
    
       varRow = 0
    Next LCol


If Not rzelle Is Nothing Then MsgBox rZellen.Address

End Sub


Gruß Tino

Anzeige
AW: Match versus Find
19.04.2009 16:31:31
klexcel
Hallo,
ich habe es so gelöst:
Modul Modul1
Option Explicit 
 
Sub Beispiel2() 
 Dim iWert As Integer 
 Dim iZei As Integer 
 Dim iSp As Integer 
 iWert = 32 
 For iSp = 1 To 30 
 iZei = CInt(Application.Match(iWert, Columns(iSp), 0)) 
 Cells(iZei, iSp).Interior.ColorIndex = 4 
 Next iSp 
End Sub 


[size=8]Code eingefügt mit [url=http://vbahtml.origo.ethz.ch] VBA in HTML 2.0.0.1[/url][/size]
Grüße Hubert

Anzeige
AW: Match versus Find
19.04.2009 15:19:04
Gerd
Hallo Hubert,
falls Du mit Eleganz die Anzahl der Codezeilen u. Schleifendurchläufe meinst :-)

Sub test2()
Dim R As Range, Fund As Range
Set R = ActiveSheet.Columns("A:DE")
R.Replace "Apfel", True, xlWhole
On Error Resume Next
Set Fund = R.SpecialCells(xlCellTypeConstants, xlLogical)
On Error GoTo 0
If Not Fund Is Nothing Then
R.Replace True, "Apfel", xlWhole
MsgBox Fund.Address
Else
MsgBox "Apfel" & " wurde nicht gefunden!"
End If
End Sub


Gruß Gerd

Anzeige
AW: @ Robert
19.04.2009 15:33:58
Gerd
Hi Robert !
Manche kapieren halt schneller als wir u. kriegen sowas in drei Stunden auf die Reihe.
Das müssen wir akzeptieren. :-)
Gruß Gerd
AW: @ Gerd-jaja-dein code ist super! owT
19.04.2009 15:52:33
robert
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige