Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
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

ergebnis find-methode formatabhängig ?

ergebnis find-methode formatabhängig ?
t4z
Hi Leute,
hab zwar schon im Netz gesucht, aber weiss eben nicht so recht, wie ich das Thema formulieren soll.
_________A_________B
1_______1,23______1,234
Die Zahl in B1 entspricht der gesamten "Länge" der Zahl - es kommen also keine weiteren Stellen dazu.
Beide Zahlen sind identisch - nur die Darstellung der Nachkommastellen unterschiedlich. Demnach ist in
Excel:
=A1=B1 ist WAHR, genau wie
VBA:
range("A1") = range("B1") ist True
range("A1") = 1.234 ist True
Jedoch findet die Find-Methode
Range("A1:B1").find(range("A1"), , xlValues)
nur die Zelle B1, egal ob A1 oder B1 beim Suchstart aktiv war.
Ganz abgesehen davon, wird selbst B1 nicht mehr gefunden, sollte in B1 aufgrund zu geringer Spaltenbreite nur noch #### enthalten sein.
Wie kann ich die Find-Methode so verwenden, dass sie nach dem gesamten Inhalt und nicht nach dessen Darstellung / Format sucht?
Die Schleife für die "manuelle" Suche kann ich mir zwar schreiben, aber fände es total unnötig/umständlich - immerhin gibt Excel eine Suchfunktion von Haus aus mit. Also bitte kein Antworten ala "Warum versuchst du es nicht mit einer eigenen Schleife" - bitte nicht falsch verstehen
Vielen Dank, t4z
mit Application.Match
13.11.2009 11:28:46
Tino
Hallo,
hier ein Vorschlag mit Application.Match
Sub Match_Ueber_Zellbereich(Bereich As Range, SuchWert As Variant)
Dim rZellen As Range
Dim LCol As Long, tempCol As Long
Dim varRow

With Sheets(Bereich.Parent.Name)
    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
               If Bereich.Rows.Count < 2 Then Exit Do
       Loop
    
       varRow = 0
    Next LCol
End With

If Not rZellen Is Nothing Then
 Set Bereich = rZellen
Else
 Set Bereich = Nothing
End If

End Sub

Sub BeispielVerwendung()
Dim ErgebisZellen As Range, vSuchwert

'Suchwert 
vSuchwert = Sheets("Tabelle1").Range("B1").Value2

'Suchbereich 
Set ErgebisZellen = Sheets("Tabelle1").Range("1:5")

Match_Ueber_Zellbereich ErgebisZellen, vSuchwert

If Not ErgebisZellen Is Nothing Then
 MsgBox "Suchwert '" & vSuchwert & "' wurde in den Zellen " & ErgebisZellen.Address(False, False) & " gefunden"
Else
 MsgBox "nix gefunden"
End If
End Sub
Gruß Tino
Anzeige
AW: mit Application.Match
13.11.2009 12:11:00
t4z
wow, das hast du doch nicht alles für mich geschrieben, oder? vielen dank
Also gibt es keine Möglichkeit das Ganze über die Find-Methode zu erledigen? Sollte es keine Möglichkeit geben, dann werde ich die Match-Version testen.
war hier schon ein Thema
13.11.2009 12:27:57
Tino
Hallo,
war hier im Forum schon oft ein Thema, das die Find Methode vom Format der Zelle abhängt.
Sei beruhigt dieses Teil habe ich vor einiger Zeit schon geschrieben. ;-)
Gruß Tino
AW: war hier schon ein Thema
13.11.2009 12:39:57
t4z
ok, vielen Dank
Hab gerade nochmal per Google gesucht, mit folgender Anfrage:
find format (vba|excel) -date inurl:herber
und verschiedenen Abwandlungen gesucht (auch ohne inurl:herber) und konnte nichts finden.
Bitte gebt mir ein oder zwei Links, die sich mit diesem Thema befassen. Vielleicht auch etwas von Microsoft.
Vielen Dank, t4z
Anzeige
AW: war hier schon ein Thema
13.11.2009 14:04:06
t4z
Lustige URL, aber für wie blöd hältst du mich eigentlich? Ich suche das Ganze nicht im Kontext mit Datumsangaben sondern mit ganz normalen Werten - und jetzt komm mir bitte nicht mit sowas wie "Datumsangaben sind in Excel auch nichts anderes als numerische Werte". Zu meinem eigentlichen Thema kommt nur leider bei deinem Ansatz noch das Thema Datum hinzu, was je nach Ländereinstellung anders interpretiert wird (bspw. DD.MM.YY = MM.DD.YY). Der Fokus liegt dabei eher auf dem Datum und nicht auf numerischen Werten, wie bei mir.
Aber gut, zwischenzeitlich habe ich den Kram selbst über ne VBA-Schleife erledigt.
Vielen Dank an Alle, Gruß t4z
Anzeige
liegt das am heutigen Datum?
13.11.2009 14:08:12
Oje
Freitag, den 13., daß alle so aggresiv sind? Oder ist das Wetter schuld?
Oder vielleicht auch die Kinderstube?
Kopfschüttel
Ich halte hier niemanden für blöd, und...
13.11.2009 14:32:45
Jens
Hallo
... das ist auch kein Grund sich angegriffen zu fühlen.
Mir ging es eher darum, dass Du mit Excel-gut und VBA-gut wohl schon die z.B. Google-Suche verwenden könntest, mit Kriterien, die den Deinigen entsprechen.
Wenn Du mit dem falschen Bein aufgestanden bist, dann lass es doch nicht hier raus. Das war weiß Gott nicht böse gemeint.
Nichts für ungut.
Gruß Jens
es geht weniger um die Ländereinstellung,...
14.11.2009 08:08:33
Tino
Hallo,
sondern eher wie die Zelle für die Anzeige formatiert ist. (Sichtbare Nachkommastellen)
z. Bsp. kann ich die Zelle für ein Datum auf JJJJ Formatieren
oder die Zelle bei Zahlen ohne Nachkommastellen darstellen.
Gruß Tino
Anzeige
AW: ergebnis find-methode formatabhängig ?
13.11.2009 12:08:51
xr8k2
Hallo,
du musst in Formeln, nicht in Werten suchen:
Range("A1:B1").Find(Range("A1"), ActiveCell, xlFormulas)

Gruß,
xr8k2
AW: ergebnis find-methode formatabhängig ?
13.11.2009 12:19:27
t4z
Für den beschriebenen Fall hast du natürlich Recht. Ich habe versucht mein Problem möglichst abstrahiert darzustellen, damit das eigentliche Thema schneller erfasst werden kann. Der zu durchsuchendende Bereich enthält Formeln, deren Ergebnisse z.B. 1,234 sind und wie im Eröffnungspost dargestellt werden. Genau nach diesen Ergebnissen möchte ich suchen, ohne vorher ne Wertkopie zu machen, um dann "in Formeln" zu suchen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige