Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

ergebnis find-methode formatabhängig ? | Herbers Excel-Forum


Betrifft: ergebnis find-methode formatabhängig ? von: t4z
Geschrieben am: 13.11.2009 10:58:54

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

  

Betrifft: mit Application.Match von: Tino
Geschrieben am: 13.11.2009 11:28:46

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


  

Betrifft: AW: mit Application.Match von: t4z
Geschrieben am: 13.11.2009 12:11:00

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.


  

Betrifft: war hier schon ein Thema von: Tino
Geschrieben am: 13.11.2009 12:27:57

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


  

Betrifft: AW: war hier schon ein Thema von: t4z
Geschrieben am: 13.11.2009 12:39:57

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


  

Betrifft: AW: war hier schon ein Thema von: Jens
Geschrieben am: 13.11.2009 12:48:20

Hallo Unbekannter

http://tinyurl.com/ya5hu3a

Gruß Jens


  

Betrifft: AW: war hier schon ein Thema von: t4z
Geschrieben am: 13.11.2009 14:04:06

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


  

Betrifft: liegt das am heutigen Datum? von: Oje
Geschrieben am: 13.11.2009 14:08:12

Freitag, den 13., daß alle so aggresiv sind? Oder ist das Wetter schuld?
Oder vielleicht auch die Kinderstube??

Kopfschüttel


  

Betrifft: Ich halte hier niemanden für blöd, und... von: Jens
Geschrieben am: 13.11.2009 14:32:45

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


  

Betrifft: es geht weniger um die Ländereinstellung,... von: Tino
Geschrieben am: 14.11.2009 08:08:33

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


  

Betrifft: z. Bsp. hier mit Datum... von: Tino
Geschrieben am: 13.11.2009 12:49:52

Hallo,
, Zahlen verhalten sich aber ähnlich.
https://www.herber.de/forum/archiv/992to996/t992568.htm



Gruß Tino


  

Betrifft: AW: ergebnis find-methode formatabhängig ? von: xr8k2
Geschrieben am: 13.11.2009 12:08:51

Hallo,

du musst in Formeln, nicht in Werten suchen:

Range("A1:B1").Find(Range("A1"), ActiveCell, xlFormulas)

Gruß,
xr8k2


  

Betrifft: AW: ergebnis find-methode formatabhängig ? von: t4z
Geschrieben am: 13.11.2009 12:19:27

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.


Beiträge aus den Excel-Beispielen zum Thema "ergebnis find-methode formatabhängig ?"