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

Fehlerbehandlung Application.Match

Fehlerbehandlung Application.Match
Rudi
Hallo
Ich verwende in meinem Coding die Application.Match-Funktion, um nachzusehen, ob gewünschte Werte in einem anderen Tabellenblatt vorhanden sind.
Das Problem ist es jetzt, den Code bei Auftreten eines Fehlers (= Nicht-Finden des entsprechenden Wertes) weiter laufen lassen zu können. Ich habe diverse Einträge in den Foren studiert, dort ist aber meistens die Rede von einer Fehlerausgabe mittels MsgBox oder dem Abbruch der Prozedur.
Genau dies möchte ich aber nicht. Wird ein entsprechender Wert nicht gefunden, soll einfach mit dem Programm weitergefahren werden.
Übrigens: der aufgetretene Fehler ist 1004: ...Match-Eigenschaft... nicht zugeordnet werden.
Wie schaffe ich das?
Danke für eure Unterstützung.
Gruss, Rudi
bin mir nicht sicher,...
24.06.2012 22:50:15
Matze,Matthias
Hallo Rudi,
meintest du sowas : Application.DisplayAlerts = False
VG Matze
AW: bin mir nicht sicher,...
24.06.2012 23:02:28
Rudi
Hallo Matze
Dumme Frage: Wo schreibe ich das hin? In der Prozedur selber geht's nicht...
Danke, Gruss
Rudi
On Error Resume Next am Anfang der Sub! orT
25.06.2012 01:02:24
Luc:-?
Gruß Luc :-?
AW: On Error Resume Next am Anfang der Sub! orT
25.06.2012 09:48:08
Rudi
Hallo Luc:-?
Danke für deinen Tipp. Habe ich schon probiert, hat aber nichts gebracht... Ich probier's nochmals, vielleicht hat's ja sonst noch einen Fehler.
Gruss,
Rudi
AW: Application.Match
25.06.2012 10:04:47
hary
Hallo Rudi
Schau Dir den Aufbau mal an.

Dim a As Variant
a = Application.Match("x", Sheets("Tabelle2").Range("A1:A6"), 0) ' sucht x im Bereich
If Not IsNumeric(a) Then 'wenn nicht vorhanden dann
MsgBox "nicht vorhanden" 'hier kommt dein Code hin
Else                     'sonst
MsgBox "vorhanden"
End If

gruss hary
Anzeige
AW: Application.Match
25.06.2012 21:25:54
Rudi
Hallo Hary
Vielen Dank, es funktioniert! Ich war ein Hornochse, habe das IsNumeric immer falsch interpretiert :-(
Gruss, Rudi
AW: Fehlerbehandlung Application.Match
25.06.2012 10:16:20
Peter
Hallo Rudi,
das NICHT Gefunden kannst Du doch über die Abfrage des Ergebnisses ermitteln:
Public Sub WertSuchen()
Dim SearchRange  As Range
Dim TestWert     As String
Dim myVar        As Variant
TestWert = Range("B1").Value
Set SearchRange = ThisWorkbook.Sheets("Tabelle1").Range("A1:A10")
myVar = Application.Match(TestWert, SearchRange, 0)
If IsError(myVar) Then
MsgBox "der gesuchte Wert " & TestWert & " wurde nicht gefunden!", _
64, "   den gesuchten Wert gibt es nicht."
Else
MsgBox "der gesuchte Wert " & TestWert & " wurde in Zeile " & myVar & _
" gefunden.", 48, "    der Wert wurde gefunden."
End If
End Sub
Gruß Peter
Anzeige
AW: Fehlerbehandlung Application.Match
25.06.2012 21:28:15
Rudi
Hallo Peter
Vielen Dank für deine Hilfe! Jetzt scheint's zu klappen!
Gruss, Rudi
besser mit CountIf
25.06.2012 11:29:22
Rudi
Hallo Rudi,
um nachzusehen, ob gewünschte Werte in einem anderen Tabellenblatt vorhanden sind.
Wenn du das mit Application.Countif machst, wird kein Fehler verursacht sondern das Ergebnis ist 0 falls nicht vorhanden.
Gruß
Rudi
Außerdem kann man das auch mit dem eigentl...
25.06.2012 15:28:44
Luc:-?
…dafür vorgesehenen Container WorksheetFunction (statt Application) machen, Rudi;
dabei bleibt der alte Inhalt einer Variablen (zB 0, -1 bzw Empty) erhalten, wenn man ihr das Ergebnis von WorksheetFunction.Match zuweist, weil Container-Fktt keine Fehlerwerte zurückgeben, sondern ggf höchstens einen Fehler auslösen, der mit On Error Resume Next übergangen wdn kann. Dann kann man allerdings nicht wie bei Application.Match den Fehler mit If IsError(…) Then abfragen, sondern muss fragen, ob der Wert der Variablen noch der Initialwert ist (der natürl entsprd eindeutig gewählt wdn muss). Da CountIf idR keinen Fehler, sondern (wie schon Rudi schrieb) 0 zurückgibt, ist hier die Vwendg von Application anstelle des Containers unnötig, zumal nur das Container-Objekt vom VBE-Intellisense unterstützt wird (Anzeige der Anzahl der mögl Argumente).
Gruß Luc :-?
Anzeige
Container
25.06.2012 22:58:52
Rudi
Hallo,
warum sollte ich den nutzen, wenn ich per Application.Function die Möglichkeit habe, die Rückgabe eines Fehlers zu prüfen, anstatt einen Fehler temporär zu ignorieren?
Gruß
Rudi
Intellisense, deshalb - falls benötigt, ...
26.06.2012 17:42:48
Luc:-?
…Rudi,
ansonsten ist Container-Verwendung kaum aufwendiger und die Rückgabe eines Fehlers ohne den nicht sonderl vorteilhafter, nur das wohl hier auf On Error Resume Next verzichtet wdn kann. Allerdings muss man evtl Fehler ohnehin stets auf irgendeine Weise abfangen.
Die Entscheidung für oder gg den Container ist natürl jedem selbst überlassen, wobei es durchaus sein könnte, dass Application… nur 'ne Hintertür von ihm ist, denn die Fktt, die nicht im Container sind, fktn wohl auch auf diese Weise nicht, wenn ich nicht irre.
Gruß Luc :-?
Anzeige
AW: Fehlerbehandlung Application.Match
25.06.2012 21:31:24
Rudi
Hallo Alle
Vielen herzlichen Dank für eure wertvollen Beiträge. Ich komme jetzt weiter!
Gruss, Rudi

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige