Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1756to1760
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
fehlermeldung bei vergleich unter vba
03.05.2020 18:19:56
excelsocke
Hallo allerseits
Sub LädenHinzufügen()
'---------------------------------------------------- Läden Hinzufügen -------------------
Dim WsF As WorksheetFunction
Set WsF = Application.WorksheetFunction
Dim datum As Date, datvorm As Date, letzteZeileläden As Variant, istda As Variant
Dim Tabname As String, hinzu As Variant, wert As Variant
hinzu = InputBox("Laden hinzufügen", "Laden hinzufügen")
laden = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row + 1
If hinzu = "" Then Exit Sub
wert = WsF.Match(hinzu, Range("B1:B" & laden), 0)
If WsF.IsNumber(wert) = True Then
Cells(WsF.Match(hinzu, Range("B1:B" & laden), 0), 2).Select
MsgBox (hinzu & " Ist schon vorhanden!" & vbCrLf & "Siehe makierte Zelle")
Exit Sub
End If
If WsF.IsError(wert) = True Then
MsgBox (hinzu & " wird hinzu gefügt!" & vbCrLf & "Siehe makierte Zelle")
Cells(laden, 2).Select
Cells(laden, 2) = hinzu
laden2 = Sheets("Daten").Range("D" & Rows.Count).End(xlUp).Row + 1
Sheets("Daten").Cells(laden2, 4) = hinzu
End Sub

ich habe mit dem obigen Code folgendes Problem.
ich nutze die formel Match um zu prufen ob ein wert schon vorhanden ist.
ist der wert vorhanden läuft das makro wie gewünscht.
ist ein wert jedoch nicht vorhanden, den ich aber einfügen möchte, streikt die funktion match mit
der meldung:
laufzeitfehler 1004
die Match Eigenschaften-Objektes kann nicht zugeordnet werden
Vielen Dank für Eure Hilfe und bleibt gesund
Jörg

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: fehlermeldung bei vergleich unter vba
03.05.2020 18:22:59
Hajo_Zi
Hallo Jörg,
If Not IsError(match ... then
GrußformelHomepage
'If Not IsError(match ...) then' verhindert ...
04.05.2020 02:49:29
Luc:?
…keinen Fehler (vgl Luschi)! Die Verwendung von Not mit IsError ist dann trotzdem Quatsch, denn das wäre ja schon die Alternative (Next):
On Error Resume Next
If IsError(Application.Match(…)) Then
Else: …
End If

Morhn, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
AW: fehlermeldung bei vergleich unter vba
03.05.2020 18:26:27
Luschi
Hallo Jörg,
Application.WorksheetFunction.Match benötigt eine Absicherung durch On Error Resume Next
Bei Application.Match ist das nicht erforderlich und Dein Programm sollte funktionieren.
Gruß von Luschi
aus klein-Paris
AW: fehlermeldung bei vergleich unter vba
03.05.2020 18:56:12
excelsocke
Hallo Luschi
Mein Programm läuft jetzt wie gewünscht. Vielen Dank
Habe den Programmteil wie folgt abgeändert:
wert = Application.Match(hinzu, Range("B1:B" & laden), 0)
If WsF.IsNumber(wert) = True Then
Cells(Application.Match(hinzu, Range("B1:B" & laden), 0), 2).Select
MsgBox (hinzu & " Ist schon vorhanden!" & vbCrLf & "Siehe makierte Zelle")
Exit Sub
End If
If WsF.IsError(wert) = True Then
MsgBox (hinzu & " wird hinzu gefügt!" & vbCrLf & "Siehe makierte Zelle")
-----------------------------------------------------------------------------------------------
Hallo Hajo
Auch Dir vielen Dank für deine Antwort.
Sie war für mich leider zu spärlich das ich sie umsetzen konnte.
viele Grüße und bleibt Gesund
Jörg
Anzeige
AfW: fehlermeldung bei vergleich unter vba
04.05.2020 03:10:01
Daniel
Hi
Wenn du dir das Ergebnis der Match-Funktion in eine Variable lädst, dann verwende doch diese, anstatt die Match-Funktion nochmal auszuführen.
If WsF.IsNumber(wert) = True Then
Cells(wert, 2).Select
Gruß Daniel

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige