Office: Debug-Fehlermeldung bei cells-Eigenschaft

Helfe beim Thema Debug-Fehlermeldung bei cells-Eigenschaft in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Ich nutze in einer Anwendung folgende Befehlsfolge: With ActiveWorkbook.Worksheets("wsJournal") Columns("A:C").Delete Columns("F:I").Delete... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von stau, 4. September 2019.

  1. Debug-Fehlermeldung bei cells-Eigenschaft


    Hallo,
    Ich nutze in einer Anwendung folgende Befehlsfolge:

    With ActiveWorkbook.Worksheets("wsJournal")
    Columns("A:C").Delete
    Columns("F:I").Delete
    Columns("G:H").Delete
    lzS = .Cells(.Rows.Count, 1).End(xlUp).Row
    For a = 1 To lzS
    Rows(a).Interior.ColorIndex = 2
    wsJournal.Cells(a, 3) = wsJournal.Cells(a, 3) * -1
    Next a
    End With
    Dabei erhalte ich die Debug-Fehlermeldung "Typen unverträglich" in der Zeile wsJournal.Cells(a, 3) = wsJournal.Cells(a, 3) * -1.
    Die Variable lzS ist als long definiert und hat zur Zeit der Ausführung den Wert 58.
    Mit dem Befehl will ich die Inhalte der 3. Spalte negativieren.

    Seltsamerweise hat während der Testphase dieser Befehl schon funktioniert, wobei ich allerdings Eingabe- und Ausgabe-Arbeitsblatt getrennt hatte.

    Kann mir hier jemand einen Rat geben.

    :)
     
  2. Hallo,

    Ich nehme mein Frage ganz schnell zurück.
    Gerade habe ich nämlich festgestellt, dass ich bei a=1 die Überschriftszeile erwischt hatte, die in Spalte 3 keine numerischen Werte enthält.

    Entschuldigung.
     
  3. Hallo stau,

    bei mir kommt ein Fehler, wenn in besagter Zelle Cells(58,3) ein Textwert drin steht mit dem man nicht rechnen kann, zB. das Wort Hilfe - allerdings kommt bei mir der Fehlerwert 13.
    Steht ein Textwert drin wie '23, dann wird auch gerechnet und es steht dann -23 drin, ist die Zelle leer, dann 0.
    Ich Frage mich allerdings, wozu dieses Konstrukt gut sein soll:
    With ActiveWorkbook.Worksheets("wsJournal")
    End With
    denn Du nutzt es einfach nicht. Bei den 3 nachfolgenden Delete-Befehlen fehlt vor Columns der Punkt, damit sich diese Spalten auf die vorgenannte Tabelle beziehen, wie auch beim Rows-Beehl in der For-Schleife.
    Und da, wo Du die Tabelle ansprichst, machst Du eine volle Referenzierung [wsJournal.Cells(a, 3)] statt .Cells(a, 3)
    Laß Dir doch mit Debug.Print .Cells(a, 3).Value und Debug.Print VarType(.Cells(a, 3).Value) mal den Zellwert und den Datentyp davon im Direktfenster anzeigen.
    Eine gute Praxis ist das verwenden von Haltepunkten (F9) und schrittweise weitersteppen im Code mit F8 und im Überwachungsfenster kann man sich auch diese Informationen anzeigen lassen.

    Gruß von Luschi
    aus klein-Paris

    PS: Ich hoffe, diese Begriffe sind keine Bömischen Dörfer für Dich, wenn JA, dann bitte fleißig Googeln!
     
  4. Debug-Fehlermeldung bei cells-Eigenschaft

    Hallo Luschi,

    Die Einbindung meiner Befehle in With / End With war wirklich sinnlos.
    Ich habe das herausgenommen und die Zeilenbestimmung geändert in
    "lzS = wsJournal.Cells(Rows.Count, 1).End(xlUp).Row".

    Die Delete-Befehle funktionierten nur deshalb, weil ich ein Worksheet.Activate davor gestellt hatte.

    Die BT9-Taste war mir völlig fremd. Eine tolle Testholfe.

    Herzlichen Dank für Deine Unterstützung, die mich wieder etwas weiter gebracht hat mit meinen spärlichen Kenntnissen.
     
  5. Hallo Horst,

    auch von mir noch eine kleine Hilfe. Wie Luschi bereits geschrieben hat, kannst du mit F8 den Code schrittweise durchgehen. Das hat zusätzlich noch den großen Vorteil, dass du so erkennen kannst, welche Werte die Variablen erhalten. Klicke zB mal so lange auf F8, bis die Zeile nach
    Code:
    gelb markiert ist. Fährst du nun mit dem Mauszeiger auf "lzS", erfährst du, welcher Wert ermittelt wurde.

    Auf diese Weise kommt man immer wieder auf Fehler drauf, wenn Variablen Werte annehmen, die sie eigentlich nicht annehmen dürften/sollten.
     
    MisterBurns, 6. September 2019
    #5
  6. Hallo stau,

    und genau in dieser Zeile: Code:
    ist eine Fehlerquelle drin, die zum Vba-Fehler führen kann aber nicht muß: Rows hat keine von Dir festgelegte Referenz zu einem Tabellenblatt und zeigt somit automatisch auf das aktive Sheet, das auf dem Monitor zu sehen ist.
    Das geht solange gut, wie ein Tabellen- oder Makroblatt aktiv ist, das Grafik- und Dialogblatt haben aber diese Rows-Methode nicht und dann knallt's.
    Benutze also fleißig die With-Anweisung und schreibe die obere Zeile immer so: Code:
    Gruß von Luschi
    aus klein-Paris

    PS: Warum die Variable 'lzS' (S wie Spalte) benannt wurde statt 'lzR' (Row) oder 'lzZ' (Zeile), bleibt wohl Dein Geheimnis.
     
  7. Hallo Bernie,
    Vielen Dank für Deinen Tipp.
    Auf diese Weise habe ich bisher meine Anwendungen getestet.
    Manchmal mühsam, besonders wenn man 700 Datenzeilen mehrfach einzeln abarbeiten muss. Dafür stelle ich mir immer ein paar Testdaten zusammen, deren Ergebnis ich parallel noch manuell nachvollziehen kann.
    Nur die Nutzung der F9-Taste war mir völlig unbekannt.
     
  8. Debug-Fehlermeldung bei cells-Eigenschaft

    Hallo Luschi,

    Du hast natürlich recht.
    Ich habe statt dessen immer eine Worksheets.Activate-Anweisung vorangestellt, und damit lief es ja. Ich vermute mal, dass das kein sauberes Programmieren ist.
    Ich stelle sofort wieder auf die With-Anweisung um.

    Ich habe mir zuhause 2 VBA-Bücher zugelegt und einen Online-Kurs belegt, um mein spärliches Wissen zu verbessern. Aber solche Tricks wie vor Columns einen Punkt setzen zu müssen! Noch nirgends wahrgenommen. Ganz toll.
    Wie lernt man so etwas, ohne aus eigenen Fehlern zu lernen und Experten wie Dich in Anspruch zu nehmen?

    Nochmals herzlichen Dank.
     
  9. Ich habe nun aufgrund von Luschis Empfehlungen wo immer möglich Activate-Befehle durch With-Anweisungen ersetzt.

    Gleich beim ersten bekomme ich die Fehlermeldung "Der Index befindet sich außerhalb des gültigen Bereichs".

    Das Arbeitsblatt habe ich definiert mit
    Dim wsJournal As Worksheet
    Set wsJournal = Worksheets("Lxw_Journal")

    Die zum Fehler führende With-Anweisung lautet:
    With ActiveWorkbook.Worksheets("wsJournal")
    .Columns("A:C").Delete
    .Columns("F:I").Delete
    .Columns("G:H").Delete
    lzS = .Cells(Rows.Count, 1).End(xlUp).Row
    For a = 2 To lzS
    .Rows(a).Interior.ColorIndex = 2
    .Cells(a, 3) = Cells(a, 3) * -1
    Next a
    End With

    Ich finde meinen Fehler nicht. Wo steckt der?
     
  10. Hallo,

    so:

    Code:
     
  11. Hallo Nepomuk,

    Ups! Tatsächlich. So läuft es.
    Ich frage mich nur, warum zuvor einige With-Anweisungen in der von mir beschriebenen (umständlicheren) Version gelaufen sind.

    Ich danke für Deine Aufmerksamkeit.
     
  12. Hallo,

    mit With öffnest du einen Verweis auf ein Objekt auf dass du dich mit den Punkten vor dessen Eigenschaften beziehst. In deiner Prozedur fehlt der aber einmal vor Rows.Count und einmal vor Cells.

    Was mir noch komisch vor kommt, du löschst Spalten. Einmal A:C dann F:I. Aber, nach dem löschen von A:C sind die Spalten F:I die ehemaligen Spalten I:L. Ist das so gewollt? Normalerweise löscht man immer von rechts nach links und von unten nach oben. Damit verrutschen die Zeilen/Spalten nicht.
     
  13. Debug-Fehlermeldung bei cells-Eigenschaft

    Hallo Nepomuk,

    Danke für Deine Erklärung.
    Und das mit dem Spaltenlöschen ist so gewollt und richtig.
    Ich werde mir merken, dass das Entfernen von rechts nach links viel sinnvoller und weniger fehleranfällig ist.
     
  14. Hi,

    man kann auch alle Spalten auf ein mal löschen: Code:
    Achtung: Columns versteht diese komplexen Bereich nicht. Aber Range("A:C") und Colmns("A:C") verhalten sich genau gleich. Nur bei nicht zusammenhängenden Spalten versagt Columns().
     
Thema:

Debug-Fehlermeldung bei cells-Eigenschaft

Die Seite wird geladen...
  1. Debug-Fehlermeldung bei cells-Eigenschaft - Similar Threads - Debug Fehlermeldung cells

  2. Bedingte Formatierung funktioniert nicht

    in Microsoft Excel Hilfe
    Bedingte Formatierung funktioniert nicht: Hallo, ich habe eine Excel Datei erstellt und es funktioniert alles, bis auf eine bedingte Formatierung. Ich verstehe einfach nicht wieso. Habe in der Liste schon andere Formatierungen, die sehr...
  3. Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...

    in Microsoft Outlook Hilfe
    Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...: Hallo, habe seit der Installation von MS Office 2021 Pro ein Problem mit Outlook, dass auch nach 3-maliger Neuinstallation und mit dem MFCMAPI-Tool die Fehlermeldung auch nicht verschwindet. Bin...
  4. Fehlermeldung XML Erweiterungspacket

    in Microsoft Word Hilfe
    Fehlermeldung XML Erweiterungspacket: Hallo, kennt wer diese Fehlermeldung bei Word (Windows 10 pro/Word 2016)? Es tritt auf, wenn ich auf die Registerkarte Ansicht gehe und geht nicht mehr weg. Word stellt dann im Hintergrund eine...
  5. Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]

    in Microsoft Excel Hilfe
    Excel Powerquery: Nach Schließen & Laden Fehlermeldung [DataFormat.Error]: Hallo zusammen! Ich bin gerade dabei von einem Teams-Sharepoint-Ordner Daten mit Power-Query abzurufen. Ich lade die Daten über "Daten Abrufen -> Datei -> Sharepoint-Ordner" und gebe dann den...
  6. Hyperlink mit Hilfe Sverweis

    in Microsoft Excel Hilfe
    Hyperlink mit Hilfe Sverweis: Hallo, ich weiß ähnliche Themen gab es leider schon, aber ich bin bisher dadurch absolut nicht weitergekommen. Ich bin hier echt am verzweifeln. Ich habe eine Liste mit verschiedenen Dateien...
  7. Makro Zeitproblem! (Debug Modus funktioniert es, sonst nicht)

    in Microsoft Excel Hilfe
    Makro Zeitproblem! (Debug Modus funktioniert es, sonst nicht): Ich hab ein Makro das nur richtig funktioniert, wenn ich es debuge. Code: Sub stueckliste_add() Dim strDatei, wks As Worksheet Dim Sheet As Worksheet Set Sheet = ActiveSheet strDatei =...
  8. Kann man die Debug Meldung deaktivieren?

    in Microsoft Excel Hilfe
    Kann man die Debug Meldung deaktivieren?: Hallo Leute, wenn ich ein Makro schreibe für jemanden, der von VBA keine Ahnung hat und in diesem Makro aus irgend einem Grund beim ausführen ein Laufzeitfehler kommt, öffnet sich einFenster mit...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden