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

Typen unverträglich

Typen unverträglich
16.01.2023 15:20:57
T
Hallo ihr lieben, ich habe in meine Code leider ein kleines Problem, finde aber den Fehler nicht bzw weiß es nicht besser:

Sub Makro1()
'Definieren des Quell- und Zielblatts
Dim mzz As Worksheet, archiv As Worksheet
Set mzz = ThisWorkbook.Sheets("mzz_1")
Set archiv = ThisWorkbook.Sheets("Archiv")
'Definieren des letzten benutzten Zeilen in Spalte AJ auf dem Quellblatt
Dim lastRow As Long
lastRow = mzz.Cells(mzz.Rows.Count, "AJ").End(xlUp).Row
'Kopieren der relevanten Zeilen auf das Zielblatt und Löschen der originalen Zeilen
For i = lastRow To 1 Step -1
If Len(mzz.Cells(i, "AJ").Value) > 2 Then
mzz.Rows(i).Copy
archiv.Rows(archiv.Cells(archiv.Rows.Count, "A").End(xlUp).Row + 1).PasteSpecial xlPasteValues
mzz.Rows(i).Delete
End If
Next i
End Sub
Folgende Zeile macht Probleme (Heißt nicht, das die danach nicht auch noch Probleme machen würden.....):

If Len(mzz.Cells(i, "AJ").Value) > 2 Then
Wäre super wenn mir einer sagen könnte, wo das Problem liegt.
Danke euch!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 'Len' kennt kein .Value, lass es weg oT
16.01.2023 15:39:42
JoWE
AW: Blödsinn, vergiss meinen Post oT
16.01.2023 15:41:50
JoWE
AW: Typen unverträglich
16.01.2023 15:49:06
onur
Du hast irgendwo in der Spalte einen Fehlerwert (z.B. "#NV!").
AW: Typen unverträglich
16.01.2023 15:53:13
JoWE
Vermutlich geht cells(i,"AJ") nicht ,
nimm mal die Spaltennummer von "AJ".
Also cells(i, column("AJ")) .
AW: Typen unverträglich
16.01.2023 15:54:05
onur
Auch Quatsch!
AW: Ja, stimmt
16.01.2023 16:02:49
JoWE
AW: Ja, stimmt
16.01.2023 16:05:52
onur
Das war auch meine erste Reaktion, weil ich nie mit Cells UND Spaltenbuchstaben arbeiten würde, aber ich hab es totzdem getestet, da sonst der Fehler bei lastrow schon aufgetreten wäre. :)
AW: Ja, stimmt
16.01.2023 16:19:48
Daniel
Cells kann beides verarbeiten, Spaltenbuchstaben und Spaltennummer.
Der Preis dafür ist, dass Cells eine als Text angegebene Spaltennummer nicht als solche erkennt, sondern nach der Spalte mit dieser Bezeichnung sucht und dann nicht findet.
die Zeilennummer darf man hingegen als Text angeben, da diese immer eine Zahl sein muss, wird VBA dann versuchen, den Text in eine Zahl zu wandeln.
dh
funktioniert: Cells("1", 1)
funktioniert nicht: Cells(1, "1")
Gruß Daniel
Anzeige
AW: Ja, stimmt
16.01.2023 16:39:28
onur
Macht nur keinen Sinn, bei Cells die Spalte als "A" anzugeben, weil man (zumindest ich) Cells eigentlich wegen der variablen Spaltennummer vorzieht.
Range benutze ich fast nur, wenn ich eine fixe Zelle oder einen Bereich mit mehreren Zellen bezeichnen will, weil es halt schneller geht.
AW: Ja, stimmt
16.01.2023 17:06:59
Daniel
naja, oft ist die Spalte Fix und die Zeile variabel.
und wenn man nicht auf Z1S1-Modus umgestellt hat, ist es einfacher den Spaltenbuchstaben abzulesen als diesen dann noch in die Spaltennummer umzurechnen, vorallem wenns mal über Z hinaus geht (ich bin eigentlich schon nach "M" draussen und muss dann rechnen)
Gruß Daniel
Anzeige
AW: Debug und Wert der Zelle bei Fehler....
16.01.2023 15:57:34
EtoPHG
Hallo¨
Eigentlich müsste die fehlerhafte Zeile gelb markeiert sein und im VBE angezeigt werden. Dann mit dem dem Cursor über i den Wert auslesen und im Tabellenblatt den Inhalt der entsprechenden Zelle In Zeile(ausgelesener Wert), Spalte AJ feststellen. Was ist deren Inhalt bei Auftauchen des Fehlers?
Gruess Hansueli
AW: Typen unverträglich
16.01.2023 16:04:51
Daniel
HI
ich würde mich auch der Vermutung von onur anschließen, irgendwo steckt ein Fehlerwert in einer der Zellen. Das kann auf jeden Fall den beschriebenen Fehler verursachen.
du kannst das ja selber prüfen. Wenn der Fehler auftritt, dann hält der code ja an dieser Stelle an und du kannst dir anschauen, welchen Wert die Variable i hat (Zeilennummer) und was in der betroffenen Zelle steht.
auch sollte man, wenn der Fehler in einer Schleife (For-Next) auftritt, ob dies bereits beim ersten Durchlauf (i = Startwert) oder erst später auftritt.
Tritt der Fehler nicht sofort beim ersten Umlauf aus, liegt die Ursache in der Regel beim verarbeiteten Zellinhalt und nicht am Code. (wobei der Code ggf angepasst werden kann, um auch untypische Inhalte fehlerfrei zu verarbeiten)
eine möglichkeit der Anpassung wäre, das .Value durch .Text zu ersetzen. Hier ist die Ausgabe immer ein Text, auch bei einem Fehler bekommst du dann nicht einen Fehlerwert, sondern den entsprechenden Fehlertext, aber als normalen Text.
Gruß Daniel
Anzeige
AW: Formelfehler in Zelle
16.01.2023 19:54:46
Piet
Hallo Kollegen
Hallo onur
mich hat die Frage interessiert ob es wirklich ein Formelfehler ist, und habe es getestet. Stimm!!!
Mit dieser Codeaenderung kann man diesen Fehler abfangen. Er wird mit MsgBox angezeigt!
LastZell für Archiv braucht man nur einmal ermitteln, und zaehlt die LastArchiv mit +1 weiter
mfg Piet
  • 
    Sub Makro1()
    Dim lastRow As Long, lastArchiv As Long
    Dim mzz As Worksheet, archiv As Worksheet
    'Definieren des Quell- und Zielblatts
    Set mzz = ThisWorkbook.Sheets("mzz_1")
    Set archiv = ThisWorkbook.Sheets("Archiv")
    'Definieren des letzten benutzten Zeilen in Spalte AJ auf dem Quellblatt
    lastRow = mzz.Cells(Rows.Count, "J").End(xlUp).Row
    lastArchiv = archiv.Cells(Rows.Count, "A").End(xlUp).Row
    'Kopieren der relevanten Zeilen auf das Zielblatt und Löschen der originalen Zeilen
    For i = lastRow To 1 Step -1
    If IsError(mzz.Cells(i, "J")) Then
    MsgBox "Formelfehler in Zeile " & i
    ElseIf Len(mzz.Cells(i, "J")) > 2 Then
    lastArchiv = lastArchiv + 1
    mzz.Rows(i).Copy
    archiv.Rows(lastArchiv).PasteSpecial xlPasteValues
    mzz.Rows(i).Delete
    End If
    Next i
    Application.CutCopyMode = False
    End Sub
    

  • Anzeige
    AW: Spalte AJ oder J ? o.r. T.
    16.01.2023 20:22:46
    GerdL
    Gruß Gerd
    AW: Spalte AJ oder J ? o.r. T.
    16.01.2023 20:30:17
    Piet
    Hallo Gerd
    vielen vielen Dank für deine Aufmerksamkeit! Selbstverstaendlich "AJ" statt J ...
    Das kommt, wenn man einen alten XP Laptop mit kleinem 13 Zoll Bildschirm hat, und zum testen die SpalteJ nimmt!
    mfg Piet
    AW: Typen unverträglich
    17.01.2023 07:55:21
    T
    Hallo in Die Runde!
    Vielen Dank für das ganze Feedback und die Mühe - es war wirklich ein #NV innerhalb von 5000 Zeilen........
    Aber Fehler gefunden und behoben und es geht :)

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige