Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
Anzeige
Archiv - Navigation
1932to1936
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

Wieso plötzlich Fehler

Wieso plötzlich Fehler
13.06.2023 18:23:04
kurt k

Guten Abend,
ich habe folgenden VBA Code:


   Dim X As Variant
    X = Application.Match(wksQUELLE.Range("K11").Value, wksZIEL.Columns(1), 0)
If IsError(X) Then
Set rngZIEL = wksZIEL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)               'Offset(1, 0 = 1 zeile drunter
Else
Set rngZIEL = wksZIEL.Cells(X, 1)                                               'Zeile wenn K11 schon vorhanden

MsgBox "Kundennummer schon vorhanden"
 Exit Sub
     wkbZIEL.Close True
End If
  

ich hatte mal was geändert, muss wohl irgendwie diesen Code unabsichtlich geändert haben.
Wenn die Kundennummer schon vorhanden ist, soll beendet, sonst weiter und kopiert werden.

mfg kurt k



13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wieso plötzlich Fehler
13.06.2023 18:42:23
Daniel
Hi
wenn man auf ist, dann sollte man sich nicht nur mit einem "funktioniert nicht" begnügen, sondern sich genauer anschauen, was da im einzelnen passiert, wenn es "nicht funktioniert".
also die erste Frage wäre: kommt die Messagebox immer, also auch wenn die Kundennummer nicht vorhanden ist oder kommt sie gar nicht, auch wenn die Kundennummer fehlt?
wenn das der Fall ist, dann liegts an der Zeile mit Application.Match, oder du hast eine falsche Zelle für den Suchwert.

wenn das korrekt funktioniert und die Datei aber nicht geschlossen wird, dann liegts daran, dass du das Exit Sub um eine Zeile nach oben verschoben hast, so dass das .Close nicht mehr ausgeführt wird, weil du das Makro vorher beendest.
Gruß Daniel


Anzeige
AW: Wieso plötzlich Fehler
13.06.2023 19:12:00
kurt k
Hallo Daniel,
geht von:
X = Application.Match(wksQUELLE.Range("K11").Value, wksZIEL.Columns(1), 0)
direkt zu:
End If

Datei sollte geschlossen werden, wenn Nummer vorhanden ist.

mfg kurt k


AW: Wieso plötzlich Fehler
13.06.2023 18:45:55
Pappawinni
Der Code ist ja nicht gut organisiert...
merkwürdig auf jeden Fall, dass
 wkbZIEL.Close True
praktisch unwirksam ist, weil zuvor Exit Sub kommt..
Welcher Fehler wird denn gemeldet ? Wo ?


AW: Wieso plötzlich Fehler
13.06.2023 19:00:22
Ulf
Hi Kurt
könnte auch sein, dass in der Tabelle ein Nichtzahlenwert für X entsteht, mir sieht es danach aus, als würde Variant verwendet damit das abgefangen wird.
Prüfe mal
if not isnumeric(x) then
msgbox x
stop
end if
hth
Ulf


Anzeige
Laufzeitfehler
13.06.2023 19:09:18
kurt k
Guten Abend Ulf,
es kommt Laufzeitfehler19

Dim X As Variant
    X = Application.Match(wksQUELLE.Range("K11").Value, wksZIEL.Columns(1), 0)
    
    If Not IsNumeric(X) Then
MsgBox X
Stop
End If
mfg kurt k


AW: Laufzeitfehler
13.06.2023 19:23:38
Ulf
Teste mal
F8 ...
debug.print wksQUELLE.Range("K11").Value'wert OK?
stop
debug.print wksziel.AddressLocal'Stimmt die Überprüfung?
stop
debug.print typename(x)'Bild o.ä, Übertragungsfehler?
stop
debug.print typename(x)'
stop
debup.print isarray(X)'vebundene Zelle?
stop

mfg
Ulf


Anzeige
Fehlermeldung
13.06.2023 19:29:01
kurt k
Hallo,
bleibt hier stehen:
Debug.Print wksZIEL.AddressLocal 'Stimmt die Überprüfung?
Fehler beim kompilieren.

mfg kurt k


AW: Fehlermeldung
13.06.2023 19:32:17
Daniel
das sollte wohl heißen:

debug.print wksziel.name

.addresslocal macht bei einem Tabellenblatt als Eigenschaft keinen Sinn.
Gruß Daniel


AW: Fehlermeldung
13.06.2023 19:38:58
Ulf
Ja
debug.print wksZiel.Columns(1).AddressLocal
hätte sein sollen
thx und sry


Lösung ?
13.06.2023 19:40:49
kurt k
Hallo zusammen,
erst mal sehr nett, das sich so viel Fachleute mit meinem Problem beschäftigen.

Ich habe so drin:
   Dim x As Variant
'Stop
    x = Application.Match(wksQUELLE.Range("K11").Value, wksZIEL.Columns(1), 0)
If IsError(x) Then
Set rngZIEL = wksZIEL.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)               'Offset(1, 0 = 1 zeile drunter
Else
Set rngZIEL = wksZIEL.Cells(x, 1)                                               'Zeile wenn K11 schon vorhanden
''MsgBox "Kundennummer schon vorhanden"
     wkbZIEL.Close True
 Exit Sub
End If
Ich bin auf Ulf's Hinweis gekommen mit Zahlendarstellung.
Habe die Kundennummer neu eingegeben und alles einwandfrei.
Es war in K11 oben links im Dreieck Grün
Wie könnte man es so darstellen, das die Nummer auch als Textwert verarbeitet wird.

mfg kurt k


Anzeige
AW: Lösung ?
13.06.2023 19:46:55
Ulf
Hi Kurt,
kommt bei SAP & Co mal vor bei Import
umwandeln ginge ~


x = Application.Match(Val(wksQUELLE.Range("K11").Value), wksZIEL.Columns(1), 0)
hth
Ulf


Danke an ALLE und jetzt Ulf ! -)
13.06.2023 19:54:59
kurt k


AW: Laufzeitfehler
13.06.2023 19:24:27
Daniel
schwer zu sagen, ohne die Datei und den Rest zu kennen.
Prüfe bitte, ob wksQuelle und wksZiel korrekt zugewiesen wurden und was in Zelle K11 der Quelle steht.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige