Löschen von Zelleninhalten - abhängig von anderen Zelleninhalten

  • Excel

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von BullPack.

    Löschen von Zelleninhalten - abhängig von anderen Zelleninhalten

    Guten Tag !

    Ist mir sehr peinlich, das ich mich heute hier vorstelle, und dann auch noch gleich mit einem Problem ankomme.
    Ich bitte dies zu entschuldigen.

    Ich habe folgendes Problem. Ich bekomme aus einer SQL Server Verbindung regelmäßig Exporte, die ich zur Visualisierung von Projektstati verwenden möchte.
    Die Exporte sind eine Liste aller Projekte - je 8 Zeilen ist ein Projekt - genauer - jede Zahl (1-8) ist ein Projektstatus.

    Sieht dann so aus :

    ID Nummer / Field1 / Field2 /
    Field3 /
    Field4 / Field5 / Field6 / Notiz
    1 Notiz
    2 Notiz
    3 Notiz
    4 Notiz
    5 Notiz
    6 Notiz
    7 Notiz
    8 Notiz

    Spalte L (hier die erste sichtbare) nummeriert immer von 1-8 durch) - und Spalte W sind die Notizen.
    Nun möchte ich die "Notiz" hinten löschen - und zwar bei den Zeilen 2-8. Bei der ersten Zeile soll die Notiz drinn bleiben.

    Diese Funktionalität wäre extrem Hilfreich für mich - denn ich bekomme als Export um die 1000 - 2000 Zeilen.

    Kann mir wer helfen ? Idealerweise als VB Code für ein Makro ?

    lg, Robert.
    Hi ! Ja - bitte sehr.

    Im Anhang sind die beiden Screenshots !

    Danke im Voraus !

    Vielleicht noch zur Erklärung : Es kommen etliche Duzend dieser "8-er Blöcke" hintereinander. Händisch das zu lösen ginge nicht. In Summe sollte es dann so aussehen wie im 3. Screenshot ...




    lg, Robert.
    Bilder
    • Ausgangslage.JPG

      31,04 kB, 437×164, 128 mal angesehen
    • Wunsch.JPG

      28,08 kB, 434×160, 132 mal angesehen
    • Wunsch_2.JPG

      65,33 kB, 436×481, 124 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BullPack“ ()

    sind da leerzeilen dazwischen?
    oder gehts nach Zeile acht direkt weiter?
    falls direkt weiter geht...

    Visual Basic-Quellcode

    1. dim rng as Range
    2. for each rng in Range("DieSpalte:DieSpalte")
    3. if not rng.row = 1 or rng.row mod 9 = 0 then
    4. rng.value = ""
    5. end if
    6. next

    so in der Art
    Danke ! Ich werds versuchen.

    In Deinem Code steht "DieSpalte:DieSpalte"

    Ist das dann in meinem Fall "L:W" ?

    LG und Danke nochmal !

    Robert.


    uiii. Das löscht aber alles zwischen L und W ... und dann hängt sich Excel auf ....

    Long long Way Home ...

    lg Robert

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BullPack“ ()

    Hi !

    Also es läuft ... aber es löscht ALLE Notizen. Es bleiben also die gewünschten je 8. Zeile Notizen nicht stehen - sondern es werden alle gelöscht.
    Na dann beginnen wir mal mit dem Spielen ...

    Beziehungsweise - wo wird den definiert welche Spalte die ist mit den laufenden nummern (1-8) ?

    lg, Robert.
    na das machst du selber....
    das

    Visual Basic-Quellcode

    1. Range("spalte:spalte")

    sagt wo gesucht wird...
    ggf brauchst du ein paar klammern in der Abfrage ob in der zeile gelöscht werden soll....

    Visual Basic-Quellcode

    1. not (Bedingung or Bedingung)
    Tja ... ich muss es einsehen - ich bin doch ein wenig arg eingerostet.
    Im Augenblick hadere ich ein wenig mit dem Code.
    Ich verstehe ihn - Die Zeilen :


    If Not rng.Row = 1 Or rng.Row Mod 9 = 0 Then
    rng.Value = ""

    Sind mir klar - wenn innerhalb der Range die Zeile gleich 1 - oder ein ganzes vielfaches von 9 ist, dann mach nix - in jedem anderen Fall setze die Zelle auf "". Soweit so gut.
    Aber es funktioniert leider nicht. Er löscht einfach munter drauf los.
    Ich mag VB - aber ich bin nicht mehr so schnell wie ich schon mal war ...

    lg, Robert.
    Reicht es da nicht, einfach alle Werte außer jedem 8. in ner For-Schleife rauszulöschen, statt da umständlich mit Modulo rumzurechnen?

    Visual Basic-Quellcode

    1. For i = 2 To 100 Step 8: Range("W" & i, "W" & i + 6).Clear: Next
    Statt 100 müsste da dann halt rein, wie viele Zeilen durchsucht werden sollen