Microsoft Excel

Herbers Excel/VBA-Archiv

Zeile löschen wenn 1. Zelle bestimmte Farbe

Betrifft: Zeile löschen wenn 1. Zelle bestimmte Farbe von: k.reffert
Geschrieben am: 30.08.2004 17:58:11

Guten Tag, zusammen, versuche mich im Selbsstudium an VBA und beisse mir noch an kleinsten Dingen die Zähne aus...:
im aktiven Worksheet möchte ich jene Zeilen löschen, deren 1. Zelle (also in Spalte A) schwarz ist [die farbigen Markierungen in Spalte A dienten der Gliederung].
Irgendwie muß ich wohl Cells.Interior.ColorIndex=1 unterbringen, aber wie kriege ich genau diese Zellen selektiert?
Da die betreffenden Zeilen ja nicht aufeinander folgen, sondern an beliebiger Stelle stehen können, muß da sicher auch noch 'ne Schleife rein, weil VBA ja solange die Deletion wiederholen soll, bis keine Zeilen mehr beginnend mit schwarzer Zelle vorhanden sind?
Für eure Hilfe an mich Laien vielen Dank im Voraus.
PS: Habe das Archiv durchforstet, hoffentlich nichts übersehen, das mir jetzt Schelte einbringt ;-)
Gruss,
Karin

  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Uduuh
Geschrieben am: 30.08.2004 18:04:12

Hallo,
als Grundsatz: Löschen immer von unten.
Sub schwarz_weg()
  Dim iRow As Integer
  Application.ScreenUpdating = False
  For iRow = Cells(65536, 1).End(xlUp).Row To 1 Step -1
    If Cells(iRow, 1).Interior.ColorIndex = 1 Then
      Rows(iRow).EntireRow.Delete shift:=xlUp
    End If
  Next iRow
  Application.ScreenUpdating = True
End Sub

Gruß aus'm Pott
Udo


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Nepumuk
Geschrieben am: 30.08.2004 18:08:00

Hallo Udo,
"Dim iRow As Integer" ? Gefährlich bei 65536 Zeilen. :-)
Gruß
Nepumuk


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Uduuh
Geschrieben am: 31.08.2004 00:05:52

Hallo Nepomuk,
OK, Long wäre sicherer.

Gruß aus'm Pott
Udo


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: k.reffert
Geschrieben am: 30.08.2004 18:17:38

Das war fix, Udo, vielen Dank!!!
Leider tut sich damit nix; irre ich mich vielleicht bzgl. der Farbe, könnte es auch "Automatisch" sein, welcher ColorIndex wäre das dann?
Dank auch für den Hinweis die Suche resp. das Löschen immer von unten anzufangen...
Gruss,
Karin


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Nepumuk
Geschrieben am: 30.08.2004 18:06:31

Hallo Karin,
so geht's:


Public Sub Karin()
    Dim lng_Row As Long
    Application.ScreenUpdating = False
    For lng_Row = Rows.Count To Step -1
        If Cells(lng_Row, 1).Interior.ColorIndex = 1 Then Rows(lng_Row).Delete Shift:=xlShiftUp
    Next
    Application.ScreenUpdating = True
End Sub


Da du nicht schreibst, ob sich in den Zellen auser Farbe noch Werte befinden, muss die komplette Spalte dursucht werden. Sin aber Werte drin, dann so:


Public Sub Karin()
    Dim lng_Row As Long
    Application.ScreenUpdating = False
    For lng_Row = Cells(Rows.Count, 1).End(xlUp).Row To Step -1
        If Cells(lng_Row, 1).Interior.ColorIndex = 1 Then Rows(lng_Row).Delete Shift:=xlShiftUp
    Next
    Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Beni
Geschrieben am: 30.08.2004 18:08:41

Hallo Karin,
das ist alles was Du braucht.
Grus Beni


Sub Zeile_löschen_wenn_schwarz()
For i = 1 To Cells(65536, 1).End(xlUp).Row
    If Cells(i, 1).Interior.ColorIndex = 1 Then Cells(i, 1).Delete Shift:=xlUp
Next i
End Sub



  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: k.reffert
Geschrieben am: 30.08.2004 18:25:39

Wow! Die Lösung von Nepomuk war's... 126 Zeilen auf einen Schlag gelöscht, super!!!
(Nein, Nemo, in den Zellen waren nur Hintergründe, keine Werte)
Euch allen herzlichen Dank für diesen prompten Service...
Karin-die-euch-sicher-noch-öfters-belästigen-wird
;-)


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: k.reffert
Geschrieben am: 31.08.2004 19:42:36

... und da ist sie auch schon wieder.
Wie, Ihr lieben Profis, sage ich meinem Excel/VBA, daß es alle Zeilen (vom Sheet-Ende beginnend, logo...) löschen soll,
wo in Spalte 1 (Zelle A) die Hintergrundfarbe 22 ist UND
wo in Spalte 2 (Zelle B) nix, also weder Wert noch Formel steht?
(Es sollen auf keinen Fall alle Zeilen beginnend mit Schweinchen-rosa Zelle gelöscht werden, eben nur solche, wo in der 2. Spalte nix drinsteht...)
Hilft mir da WITH weiter?
Wie werden mehrere Bedingungen formuliert, die erfüllt sein müssen, um die nächste Action auszuführen? IF in der IF-Anweisung?
Hilfe herzlich willkommen, 1000 Dank vorab.
Karin


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Nepumuk
Geschrieben am: 31.08.2004 19:56:20

Hallo Karin,
alles in eine Abfrage:


Public Sub Karin()
    Dim lng_Row As Long
    Application.ScreenUpdating = False
    For lng_Row = Rows.Count To Step -1
        If Cells(lng_Row, 1).Interior.ColorIndex = 22 And Trim(Cells(lng_Row, 2).Value) = "" And Not Cells(lng_Row, 2).HasFormula Then Rows(lng_Row).Delete Shift:=xlShiftUp
    Next
    Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: k.reffert
Geschrieben am: 31.08.2004 20:07:03

Nepomuk, wie schaffst du das so schnell?
Außer dem "Trim", das ich gleich mal nachlesen werde, scheint mir die IF-Anweisung strikt logisch, aber selber drauf kommen? Da muß ich wohl noch lange üben...
Die Prozedur erzielt genau das gewünschte Ergebnis, also herzlichen Dank!!!
Karin-die-usw...


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Nepumuk
Geschrieben am: 31.08.2004 22:39:49

Hallo Karin,
ich schreibe seit über 25 Jahren Computerprogramme. Da lernt man/frau es langsam. :-)
Gruß
Nepumuk (tatsächlich mit u an Stelle von o)


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: k.reffert
Geschrieben am: 02.09.2004 19:58:41

Hallo, Nepumuk, (jetzt hat sie's!!!)
na, du machst mir Mut.... In 25 Jahren bin ich längst in Rente! Weiss allerdings noch nicht, ob ich das hoffen oder fürchten soll ;-)
Erlaubst du eine persönliche Frage? Bist du Vollzeit-Programmierer? Das ist m. W. ein Berufsbild, nicht? Wie wird man das? Sind VBA'ler stets Autodidakten oder wird sowas nicht auch an der Uni als "Informatik" o. ä. gelehrt? Wächst man da von Basic über Basica über GWBasic und was-sonst-noch-dazwischen-liegen-mag einfach hinein? Antwort gerne via email; falls du's zu persönlich findest, auch i. O.
Jedenfalls Dank nochmals für die Hilfe, hab' schon wieder ein neues Problem, da werd' ich gleichmal das Archiv durchforsten...
Schönen Abend noch,
Karin-die-Unwissende


  


Betrifft: AW: Zeile löschen wenn 1. Zelle bestimmte Farbe von: Nepumuk
Geschrieben am: 02.09.2004 20:14:42

Hallo Karin,
nein, ich habe das an den Nagel gehängt, das war mir zu eintönig. Ich mache das nur noch um geistig fit zu bleiben. Angefangen habe ich mit Assembler und RPG2 dann kam Fortran und Cobo,l anschließend HP-Business-Basic. VBA habe ich vor etwas mehr als 10 Jahren angefangen, da ich gewisse Routinearbeiten besser den Computer machen lasse. Das mache ich zwar immer noch, aber meistens zu Hause, da ich wärend meiner Arbeitszeit zu oft gestört werde. Ich mache Personalplanung für Electrolux Europe, da besteht die Arbeit zu 99% aus Kommunikation. Das macht mehr Spaß.
Wenn du schell VBA lernen willst, dann schau die Beiträge im Forum an. Du findest kein Lehrbuch, welches diese Fülle an Informationen bietet.
Gruß
Nepumuk


 

Beiträge aus den Excel-Beispielen zum Thema "Zeile löschen wenn 1. Zelle bestimmte Farbe"