Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Zeilen automatisch markieren/löschen, wenn bestimmte Bedingung erfüllt ist
#1
Hallo!

Ich habe in einer Tabelle in Spalte B folgende Daten (Tabelle hat viele Spalten):

CA167
CA1670R
CA1671
CA1671R
CA1672
CA1672R
CA1673
CA1673R
CA1674R
CA167R
CA168

Wenn eine Nummer mit einem Suffix versehen ist, aber bereits die Grundnummer existiert, dann soll die komplette Zeile der Suffix-Nummer gelöscht werden.
Somit würde sich Folgendes ergeben:

CA167
CA1670R
CA1671
CA1672
CA1673
CA1674R
CA168

Da die ein großer manueller Aufwand ist, hier die Frage, ob jemand eine Idee hat, wie man dies vereinfachen oder automatisieren kann.

Schon jetzt vielen Dank für jede Anregung.

Viele Grüße
pantens
to top
#2
Hi,

anbei eine Versuch

Code:
Option Explicit

Sub stantiv()
Dim objF As Object, i As Long, rng_Big As Range, str_firstMatch As String
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row
    If Right(Cells(i, 2).Value, 1) <> "R" Then
        Set objF = Columns(2).Find(Cells(i, 2).Value & "R", lookat:=xlWhole)
        If Not objF Is Nothing Then
            str_firstMatch = objF.Address
            Do
                If rng_Big Is Nothing Then
                    Set rng_Big = objF
                Else
                    Set rng_Big = Union(rng_Big, objF)
                End If
            Loop While Not objF Is Nothing And str_firstMatch <> objF.Address
           Set objF = Nothing
        End If
    End If
Next
If Not rng_Big Is Nothing Then rng_Big.Delete
End Sub
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
 ?mage

to top
#3
Hallo Chris-Ka!

Zunächst einmal vielen Dank für die schnelle Antwort. Leider hilft mir das nicht, da ich nicht weiß, was ich damit machen muss.
Soll ich ein Spalte C einfügen und diesen Text in jede Zelle eingegeben?

Viele Grüße,
pantens

PS: Das Katzenbild ist ja Klasse!
to top
#4
Hi,

^^
Zitat:Soll ich ein Spalte C einfügen und diesen Text in jede Zelle eingegeben?

nein Smile

Öffne deine Mappe -> drücke Alt+F11
gehe auf Menü Einfügen -> Modul
kopiere meinen Code dort hinein
Schließe das Fenster
wechsle auf das Blatt wo in Spalte B deine Daten stehen -> drücke Alt+F8 -> wähle "stantiv" aus -> klicke auf Ausführen.
fertig Smile
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
 ?mage

to top
#5
Hallo zusammen,

ich habe vor kurzem gelernt, dass man so etwas schneller mit Formeln lösen kann, deshalb hier eine Variante mit Formeln in der Hilfsspalte C:

Code:
Option Explicit

Sub doppelte_löschen()
   Dim lngZ As Long
   lngZ = Cells(Rows.Count, 2).End(xlUp).Row
   Range("C2:C" & lngZ).FormulaLocal = "=WENN(RECHTS(B2;1)=" & """" & "R" & """" & ";WENN(ZÄHLENWENN($B$2:B2;LINKS(B2;LÄNGE(B2)-1))>0;1;" & """""" & ");" & """""" & ")"
   On Error Resume Next 'falls keine doppelten kommt ds sonst zum Fehler
   Range("C2:C" & lngZ).SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
   Range("C2:C" & lngZ).Clear
End Sub

Der Code gehört in das Code Modul der Tabelle mit den Werten.
Rechtsklick auf den Tabellenreiter und im sich öffnenden Kontextmenü "Code auswählen" anklicken.
Im sich öffnenden Fenster den Code einkopieren und so ausführen wie Chris es beschrieben hat.

Wie gesagt, der Code schreibt in Spalte C Formeln rein. Sollte die belegt sein, kannst Du auch jede andere Spalte nutzen.
Dazu im Code überall in diesem Ausdruck:
Range("C2:C" & lngZ)

den Buchstaben C (rot markiert) mit dem von Dir gewünschten Spaltenbuchstaben ersetzen.

Außerdem gehe ich davon aus, dass Deine Daten Ab Zeile 2 vorliegen.
Gruß Atilla

Excel 2007
to top
#6
Ihr seid SPITZE!!! Hut ab.

Vielen, vielen Dank. Bei 30000 Zeilen ist das eine richtige Zeitersparnis.

Viele Grüße & ein schönes WE
pantens
to top
#7
Hallo,

mich würde schon interessieren, welche Version Du nutzt, denn sie führen nicht immer zum selben Ergebnis.
Gruß Atilla

Excel 2007
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Zeilen löschen (wieder mal) PaulB 5 71 Gestern, 22:43
Letzter Beitrag: schauan
  WENN/DANN Bedingung möglich? stella_gen 22 195 02.12.2016, 00:01
Letzter Beitrag: stella_gen
  In Zelle soll Wert aus Zeile wiedergegeben der Kriterium erfüllt sebster85 1 43 28.11.2016, 11:27
Letzter Beitrag: Kuwer
  Werte auflisten wenn Bedingung erfüllt Randall Flagg 3 62 26.11.2016, 15:29
Letzter Beitrag: Randall Flagg
  Zeilen Zusammenfügen und überschuss löschen lorithas 19 322 21.11.2016, 12:15
Letzter Beitrag: BoskoBiati
  Werte übertragen mit Bedingung und Zeilen überspringen Asmus 9 132 19.11.2016, 19:25
Letzter Beitrag: Asmus
Question Eine bestimmte Feldformatierung, wenn in gleicher Zeile ein Wort vorkommt Olivenbaum2013 11 165 15.11.2016, 11:33
Letzter Beitrag: Olivenbaum2013
  Zeilen aus einer Tabelle per Zufall auswählen und markieren Jordan 4 96 14.11.2016, 19:46
Letzter Beitrag: Jordan
  Listboxeintrag finden und markieren Usedom 2 53 09.11.2016, 20:39
Letzter Beitrag: Usedom
  Einzelne Totale addieren wenn Bedingung erfüllt ist RUKUR 2 65 07.11.2016, 19:06
Letzter Beitrag: shift-del

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste