Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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 / VERGLEICH - Funktion in VBA -- Support benötigt

MATCH / VERGLEICH - Funktion in VBA -- Support benötigt
12.02.2024 21:45:24
Michel44
Hallo zusammen,

mit dem folgenden Makro will ich im aktiven Tabellenblatt aus den Zahlen 1 bis 24, die untereinander im Zellbereich B2:B25 stehen, die Position der Zahl 12 auslesen und in Zelle A2 schreiben.
Leider erscheint bei mir nach mehreren Debugging-Versuchen und Internetrecherchen noch immer die Fehlermeldung "Laufzeitfehler '1004': Die Match-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden." Für Support wäre ich extrem dankbar.

Option Explicit
Sub Test()
Dim SuperWert As Double
SuperWert = WorksheetFunction.Match(12, "B2:B25", 0)
Range("A2").Value = SuperWert
End Sub

Viele Grüße
Michel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MATCH / VERGLEICH - Funktion in VBA -- Support benötigt
12.02.2024 22:07:17
Piet
Hallo

kleine Korrektur im Code notwendig, der Text Range() fehlt!
Bitte beachten, wenn der Wert 12 nicht vorhanden ist, gibt es einen Laufzeitfehler. Den muss man mit On Error abfangen.

mfg Piet

Sub Test()

Dim SuperWert As Double
On Error GoTo Fehler
SuperWert = WorksheetFunction.Match(12, Range("B2:B25"), 0)
Range("A2").Value = SuperWert
Exit Sub
Fehler: MsgBox "Der Wert 12 ist nicht vorhanden!"
End Sub
AW: MATCH / VERGLEICH - Funktion in VBA -- Support benötigt
12.02.2024 22:44:48
Alwin Weisangler
Hallo miteinander,

es braucht kein On Error - besser so:



Sub Test()
Dim SuperWert As Variant
SuperWert = Application.Match(12, Columns(2), 0)
If Not IsError(SuperWert) Then Range("A2").Value = SuperWert
End Sub

Es zählt immer nur die Treffernummer des Eintrages. Colums(2) stellt sicher, dass der zurückgegebene Wert die Zeilennummer ist.

Gruß Uwe
Anzeige
AW: MATCH / VERGLEICH - Funktion in VBA -- Support benötigt
13.02.2024 20:00:24
Michel44
Vielen Dank Piet, es klappt!

Jetzt nur noch eine Frage: Wie gehe ich vor, wenn ich anstelle der Zahlenliste eine Liste mit Datumsangaben durchsuchen will?
-> siehe unten die Liste, die im Zellbereich B2:B25 steht.

Der folgende Code gibt mir wieder in der Zeile mit "Match" eine Fehlermeldung "Laufzeitfehler '1004': Die Match-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden" aus.

Sub Superdatum_finden()

Dim SuperWert As Double
SuperWert = WorksheetFunction.Match("21.11.2023", Range("B2:B25"), 0)
Range("C2").Value = SuperWert
End Sub


07.11.2023
08.11.2023
09.11.2023
10.11.2023
11.11.2023
12.11.2023
13.11.2023
14.11.2023
15.11.2023
16.11.2023
17.11.2023
18.11.2023
19.11.2023
20.11.2023
21.11.2023
22.11.2023
23.11.2023
24.11.2023
25.11.2023
26.11.2023
27.11.2023
28.11.2023
29.11.2023
30.11.2023
Anzeige
AW: MATCH / VERGLEICH - Funktion in VBA -- Support benötigt
13.02.2024 20:22:04
Piet
Hallo

freut mich das ich dir helfen konnte. Nun zum neuen Problem. Da halte ich Match für ungeeignet.
Das Datum steht bei Match als Text, in der Suchzelle steht aber eine ZAHL - die ist auf Datum formatiert!
Da ist die Find Methode über Set mit - Not is Nothing - besser geeignet Damit klappt es bei mir.

mfg Piet

Sub Superdatum_finden()

Dim SuperWert As Double
Set rfind = Range("B2:B25").Find(what:=CDate("21.11.2023"))
If Not rfind Is Nothing Then
Range("C2").Value = rfind.Row
Else
MsgBox "Datum nicht gefunden!"
End If
End Sub
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige