Office: Prüfung ob Spalte leer

Helfe beim Thema Prüfung ob Spalte leer in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo alle zusammen, ich habe ein fast gut funktionierendes Marko zusammen gebastelt. Verschiedene Spalten werden mit Text in Spalten in tatsächliche... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von ExcelVbaRookie, 1. Dezember 2020.

  1. Prüfung ob Spalte leer


    Hallo alle zusammen,

    ich habe ein fast gut funktionierendes Marko zusammen gebastelt. Verschiedene Spalten werden mit Text in Spalten in tatsächliche Zahlen umgewandelt, in eine intelligente Tabelle formatiert, ein Pivot Table darunter - das klappt seit ein paar Wochen soweit alles gut.
    Jetzt hat sich heute gezeigt, dass die Spalte M leer sein kann. Dann läuft Text in Spalten auf einen Fehler. Jetzt will ich eine Prüfung laufen lassen, die guckt ob die Spalte vollständig leer ist und wenn nicht den "Text in Spalten Teil" ausführt und wenn sie vollständig leer ist den "Text in Spalten Teil" überspringt.

    Das hier habe ich geschrieben:

    If Not IsEmpty(Range("M2:M600")) Then GoTo Next1 Else GoTo Next2

    Next1: ... "Text in Spalten"
    Next2: ... Weiter mit formatieren als intelligente Tabelle

    Die Spalte M hat einen Titel in der ersten Zeile. Deswegen will ich die Spalte erst ab Zeile 2 prüfen. (Die Tabelle sollte die 600 Zeilen um Längen nicht erreichen.)
    Die Prüfung funktioniert aber nicht. Der Code springt immer zu Next1. Egal ob die Spalte M ab Zeile 2 gefüllte Zellen beinhaltet oder nicht.

    Kann mir bitte jemand sagen, wie ich diese Prüfung richtig vornehme?

    Vielen Dank im Voraus

    Grüße
    Harald

    :)
     
    ExcelVbaRookie, 1. Dezember 2020
    #1
  2. Moin
    Versuch es mal so.
    Code:
    gruss hary
     
  3. Hallo hary,

    vielen Dank.
    Ich habe das so verstanden und eingegeben:
    If Application.WorksheetFunction.CountA(Range("M2:M600")) = 0 Then GoTo Next1 Else GoTo Next2

    Dann springt der Code immer zu "Next2" und formatiert gleich als intelligente Tabelle...
    Das klappt so nicht. Habe ich das richtig verstanden?

    Mit "vollständig leer" meine ich tatsächlich, dass die Zellen keinen Inhalt haben. Also auch keine "0"

    Grüße
    Harald
     
    ExcelVbaRookie, 3. Dezember 2020
    #3
  4. Prüfung ob Spalte leer

    Moin
    Code:
    gruss hary
     
  5. Hallo hary,

    vielen Dank.
    Das habe ich jetzt so eingegeben:

    If Application.WorksheetFunction.CountA(Range("M2:M600")) = 0 Then
    GoTo Next1
    Else
    GoTo Next2
    End If

    Jetzt ist es wiederum egal ob in der Spalte M was drin steht oder nicht. Die Prüfung springt immer zu "Next2".

    Das erste "GoTo" wird ignoriert...?!

    Grüße
    Harald
     
    ExcelVbaRookie, 3. Dezember 2020
    #5
  6. HI,
    ich grätsche mal reiN.

    Ist gesichert, dass das richtige Tabellenblatt aktiv ist? Ohne Worksheet-Angabe greift Range auf das aktive Tabellenblatt zu, evtl. mal die Worksheet-Angabe davor ersetzen:

    Code:
    Tabelle1 muss natürlich durch den richtigen Blattnamen ersetzt werden.
     
    ReginaR, 3. Dezember 2020
    #6
  7. Hallo Regina,

    danke für's rein grätschen :-)

    Eigentlich ist das WS aktiv. An der Zeile habe ich einen Halt gesetzt, führe den vorherigen Code mit F5 aus und von da schrittweise weiter mit F8. Alle Aktionen werden in dem Worksheet durchgeführt.

    Ich habe das aber trotzdem mal so angepasst, wie Du geschrieben hast.

    Jetzt ist mir aufgefallen, dass - egal was ich einsetze - der Code "sieht" das erste "GoTo" nicht. Die gelbe Marke beim schrittweisen Durchgehen mit F8 springt immer direkt zum "Else".

    VBA hat mir beim Umschreiben einen Doppelpunkt hinter's "Else" gesetzt. Den habe ich auch mal stehen lassen und mit und ohne probiert.

    Der Marker springt also immer direkt zum Else. Ich habe das auch mit meiner ursprünglichen Zeile versucht, dasselbe.

    Hier die beiden "Codeblöcke", die ich versucht habe:

    If Application.WorksheetFunction.CountA(Worksheets("Tabelle1").Range("M2:M600")) = 0 Then
    GoTo Next2
    Else:
    GoTo Next1
    End If

    oder

    If Not IsEmpty(Range("M2:M600")) Then
    GoTo Next1
    Else:
    GoTo Next2
    End If

    Das jeweils erste GoTo scheint da überhaupt nicht zu stehen. Der Marker springt da einfach drüber. Ich hab's mit gefüllten Zellen in M versucht und mit leeren - bei beiden "Versionen".

    Der VBA Editor erkennt das "GoTo". Ich geb's klein ein und der Editor korrigert die Großschreibung.

    Grüße
    Harald
     
    ExcelVbaRookie, 3. Dezember 2020
    #7
  8. Prüfung ob Spalte leer

    HI Harald,
    ich habe den Code eben mal ausprobiert, funktioniert problemlos, es muss also an Deiner Datenlage liegen. Folglich wäre es jetzt sinnvoll eine Beispieldatei hochzuladen.
     
    ReginaR, 3. Dezember 2020
    #8
  9. Hallo Regina,

    hm - interessant.
    Ich habe die Tabelle mal anonymisiert, den Code etwas angepasst und den Rest, nach der Prüfung rausgenommen.

    Die Prüfung ist fast ganz unten und ich habe sie mehrfach auskommentiert. Dann ist sie leichter zu sehen.

    Nachdem in der letzten Spalte kein Betrag steht, läuft die Text in Spalten eben ins Leere und erzeugt einen Fehler. Den Rest kennst Du ja.

    Ich hoffe Du kannst mir vielleicht sagen, was mit dieser - wie nennst Du das - "Datenlage" - verkehrt ist.

    Viele Grüße
    Harald
     
    ExcelVbaRookie, 3. Dezember 2020
    #9
  10. Hallo Harald,
    merkwürdig: Die Zellen scheinen leer zu sein, sind es aber irgend wie doch nicht. Ich habe M2 bis M600 markiert und dann die Entf-Taste gedrückt. Danach funktioniert der Code.

    Wie hattest Du die Zellen geleert?
     
  11. Da ist in jeder Zelle ein Zeilenumbruch drin

    Mit

    Code:
    könnte man prüfen, ob überall nix drinsteht (Rückgabewert WAHR)
     
    Scorefun, 3. Dezember 2020
    #11
  12. Gnümpf: das hätte ich auch sehen können/müssen/dürfen ...
     
  13. Prüfung ob Spalte leer

    Ich grätsche mal mit: Sprungmarken sind ziemlich bäh. Vermeide GoTo wenn es geht.
    [/Graetsche]
     
    MisterBurns, 3. Dezember 2020
    #13
  14. Guten Morgen zusammen,

    vielen Dank für Eure Beiträge.

    Ich hatte gelesen, dass "GoTo" zu vermeiden ist, weil es zu Spaghetti Code führt. Nachdem meine Sprungmarken knapp darunter liegen und mir mangels Wissen über VBA nix Besseres einfiel, dachte ich das machen zu können. Im Prinzip war meine Idee ja nicht ganz verkehrt. Bei Regina funktioniert der Code.
    Ansonsten unbedingt vermeiden - das leuchtet mir ein - man kann sich mit GoTo ganz schön verfusseln.

    Jetzt verstehe ich aber immer noch nicht, wie ich diesen Fehler abfangen kann?

    Kann mir da bitte jemand helfen meinen ersten Error-Handler zu bauen?

    Vielen Dank und Grüße
    Harald
     
    ExcelVbaRookie, 3. Dezember 2020
    #14
  15. Guten Morgen Scorefun,

    ahm - wie erkennst Du denn, dass da ein Zeilenumbruch drin steht?

    Kann es sein, dass der Fehlversuch von Text in Spalten auf die leere Spalte diese Zeilenumbruch eingefügt hat?
    Oder das Script mit dem ich die Datei anonymisiert habe?
    Ich weiß nicht, wie ich das prüfe, sonst würde ich mir das in der original Datei mal anschauen...

    Gruß
    Harald
     
    ExcelVbaRookie, 3. Dezember 2020
    #15
Thema:

Prüfung ob Spalte leer

Die Seite wird geladen...
  1. Prüfung ob Spalte leer - Similar Threads - Prüfung Spalte

  2. Prüfung auf Tabellenwert erfolgt nicht

    in Microsoft Access Hilfe
    Prüfung auf Tabellenwert erfolgt nicht: Hallo, innerhalb einer DB "Sterbekasse" möchte ich in der Tabelle tblVersicherungen das Ja/Nein-Feld auf WAHR setzen, wenn der Anwender sich für eine von drei Optionen entscheidet, die ein...
  3. Bitte um Prüfung Datenbankmodells

    in Microsoft Access Hilfe
    Bitte um Prüfung Datenbankmodells: Guten Tag, ich habe ein ERD für ein Adressverwaltungsprogramm für VIPs erstellt. Ich wollte mal nachfragen, ob dieses mal jemand überprüfen kann? Ich bin mir bspw. nicht bei den Kardinalitäten...
  4. Meinung! Indize setzten oder Prüfung per Funktion

    in Microsoft Access Hilfe
    Meinung! Indize setzten oder Prüfung per Funktion: Hallo, ich sitze gerade an einer Anwendung. Hier prüfe ich in einem Form, bzw. einem Kombifeld, ob ein Wert schon eingegeben wurde, mit einer Fkt. Soweit so gut. Nun könnte ich ja auch daher...
  5. Prüfung der Webkompatibilität: Formular- und Berichtsfehler

    in Microsoft Access Tutorials
    Prüfung der Webkompatibilität: Formular- und Berichtsfehler: Prüfung der Webkompatibilität: Formular- und Berichtsfehler Access 2016 Access 2013 Access 2010 Mehr... Weniger...
  6. Prüfung der Webkompatibilität: Schemafehler

    in Microsoft Access Tutorials
    Prüfung der Webkompatibilität: Schemafehler: Prüfung der Webkompatibilität: Schemafehler Access 2016 Access 2013 Access 2010 Mehr... Weniger...
  7. Dringend: TEAMS-Anmeldung für Prüfung klappt nicht

    in Microsoft Teams Hilfe
    Dringend: TEAMS-Anmeldung für Prüfung klappt nicht: Guten Tag Wenn ich mich mit meinem MacBook Air in die TEAMS-App anmelden will, lädt die App nach Eingeben meiner E-Mail-Adresse ewig, d.h. ich kann mich nicht anmelden. Ich habe jedoch ein Konto...
  8. Prüfung auf Gleichheit und zusammenfassen zweier Spalten

    in Microsoft Excel Hilfe
    Prüfung auf Gleichheit und zusammenfassen zweier Spalten: Hallo mal wieder :) Mein derzeitiges Problem: In meiner Tabelle stehen in den Spalten Bezeichnungen, genauer Größen: " 2", " 3", " 4", " S", " M", " L", "XL" sowie ".S", ".M", & ".L". Die...