Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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
Inhaltsverzeichnis

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

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
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
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

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
Anzeige
AW: @ Gerd-jaja-dein code ist super! owT
19.04.2009 15:52:33
robert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige