Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Inhalt entfernen bei mehrfach vorkommenden Einträgen
#1

.xlsx   Mappe2.xlsx (Größe: 13,9 KB / Downloads: 9) Hallo zusammen,

ich suche eine Möglichkeit, im Blatt "FZG.-Einteilung" einer Arbeitsmappe in Spalte A ab A5 bis (variabel, je nach dem wie lang die Liste sein wird),
mehrfach vorkommende Werte in der Spalte A zu löschen.
Dabei soll nur der Inhalt der Zelle in Spalte A gelöscht werden, der zwei oder mehrmals vorkommt, ich stehe da grade auf dem Schlauch.
Irgendwie kriege ich die Funktion, dass die Zellen, in der die mehrfach vorkommenden Werte stehen, mittels ClearContents nicht hin.

Die erste gefundene Zelle soll nämlich stehen bleiben, so das aus z.B.

1325 bla bla bla 
1325 bla bla bla
1325 bla bla bla
 
später einfach

1325 bla bla bla
        bla bla bla
        bla bla bla

wird.

Wie kriege ich das in ein Makro gepackt?

Viele liebe Grüße
Andreas
Antworten Top
#2
so?

Code:
Sub Main
for i = cells(rows.count,1).end(xlup).row to 6 step -1
    if cells(i, 1) = cells(i-1, 1) then cells(i, 1).clear
next i
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • ari-2001
Antworten Top
#3
Hallo Andreas,

wenn du ausnutzen möchtest, dass die Liste bereits sortiert ist, dann könntest du es so machen:

Code:
Sub malAndersAlsSonst()
Dim rngA As Range, rngB As Range

Set rngA = Range("A5")
Set rngB = rngA

Do While rngA.Row < ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
    Set rngA = rngA.Offset(1, 0)
    If rngA = rngB Then
        rngA.ClearContents
    Else
        Set rngB = rngA
    End If
Loop

End Sub

Übrigens würde ich das auf gar keinen Fall machen: so wie du es jetzt hast, ist eine Zeile ein sauberer Datensatz. Vollziehst du diese Löschungen, machst du das kaputt. Wenn dann jemand z.B. die Filterfunktion benutzt um die Liste zu sortieren, entstehen falsche Sinnzusammenhänge und die Liste wird gänzlich unbrauchbar.

Wenn dir diese Ansicht sehr wichtig ist, würde ich mit einer Bedingten Formatierung arbeiten, die die Schriftfarbe auf Weiß (oder besser sehr helles Grau) stellt, wenn der Zellinhalt weiter oben schon mal vor kommt.

Dazu würde ich diese Formel im Bereich A5:A500 verwenden:

=WENN(ZÄHLENWENN($A$5:A5;A5)>1;WAHR;FALSCH)
oder besser noch:
=WENN(A6=A5;WAHR;FALSCH)
für den Bereich A6:A500

Grüße, Ulrich
[-] Folgende(r) 1 Nutzer sagt Danke an losgehts für diesen Beitrag:
  • ari-2001
Antworten Top
#4
Hallo Ulrich,

deine Lösung ist perfekt für mich, da dies der letzte Schritt in meinem Arbeitsgang ist.

So sieht die Tabelle, die eine Fahrzeugeinteilung generiert, für den Fahrer genauso aus, wie sie sein soll.

1305 1305 SL (B) 06:04 09:41   
        1406 SL (B) 10:04 12:41

Das kommt dann dabei raus, ich stelle die Tabelle rein, wenn sie komplett fertig ist, dann kannst Du erkennen, was ich meine.

Vielen lieben Dank für deine tolle Hilfe, ich hatte einen ähnlichen Ansatz, habe aber die falsche Anweisung benutzt.

Viele Grüße
Andreas
Antworten Top
#5
Hallo,

bitte, gerne geschehen. Mich würde noch interessieren, was gegen die Lösung mit der bedingten Formatierung spricht? Die Lösung sieht genau so aus, ist beim Drucken genau gleich, hat - in meinen Augen - aber den riesigen Vorteil, dass du später die Liste auch noch richtig nutzen kannst; zB. wenn du auf die Idee kommst da noch eine Abfrage davon zu machen, du kannst aus der Liste dann zB noch mall schnell eine Pivot-Tabelle erstellen, Summen bilden, zählen, ....
Was stört dich daran, wenn in den Zellen noch etwas steht, das man halt nicht sieht?

Grüße, Ulrich
[-] Folgende(r) 1 Nutzer sagt Danke an losgehts für diesen Beitrag:
  • ari-2001
Antworten Top
#6
Hallo Ulrich,

ich habe ein Makro, dass die entsprechenden Linien unter den separierten Diensten zieht.
Dazu schaut das Makro, ob in den betreffenden Zellen in A ein Wert steht. Ist dort ein Wert vorhanden, wird darunter ein Strich gezogen. Ist in der entsprechenden
Zelle kein Wert, wird kein Strich darunter gezogen.

Ist jetzt in einer Zelle ein visuell nicht erkennbarer Wert, da die Schriftfarbe weiss ist, würde trotzdem eine Strich darunter gezogen, da die Zelle ja visuell keinen Inhalt hat, aber faktisch schon (halt nur in der Farbe weiss).

Darum ist es wichtig, dass die Dubletten in Zelle A (und zwar nur in den Zellen der Zelle A) gelöscht werden.

Somit kann man eine klare Abgrenzung in der Tabelle zu zusammengehörigen Werten schaffen.

Und dein Makro macht genau das, bevor ich meine Rahmen (per Makro) setze.

Viele liebe Grüße und herzlichen Dank
Andreas


P.S.: Dazu fällt mir grade ein, ich könnte ja eine bedingte Formatierung erstellen, die den Strich nur dann erstellt, wenn die Zelle A4 nicht gleich dem Wert der Zelle A3 entspricht.
Und gleichzeitig die Zelle A4 in weiss darstellt, wenn sie den gleichen Inhalt wie A3 enthält. Das wird aber nicht funktionieren, da dann leere Zellen, die nicht befüllt sind, auch einen Unterstrich erhalten, wenn z.B. a19 leer ist und a20 auch, ist es ja der gleiche Inhalt.... Nämlich leer.

Ach, wie gesagt, dein Makro ist Gold wert, damit kann ich meine Fahrzeugeinteilung so darstellen, dass es für alle erklärend ist.
Antworten Top
#7
Hallo Andreas,

vielen Dank für deine ausführliche Antwort!

Grüße,
Ulrich
Antworten Top


Gehe zu:


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