Registriert seit: 07.05.2020
Version(en): 2016
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
Registriert seit: 06.12.2015
Version(en): 2016
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:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28
• ari-2001
Registriert seit: 02.08.2014
Version(en): 2016
14.08.2020, 21:29
(Dieser Beitrag wurde zuletzt bearbeitet: 14.08.2020, 21:29 von losgehts.)
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:1 Nutzer sagt Danke an losgehts für diesen Beitrag 28
• ari-2001
Registriert seit: 07.05.2020
Version(en): 2016
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
Registriert seit: 02.08.2014
Version(en): 2016
15.08.2020, 10:23
(Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2020, 10:23 von losgehts.)
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:1 Nutzer sagt Danke an losgehts für diesen Beitrag 28
• ari-2001
Registriert seit: 07.05.2020
Version(en): 2016
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.
Registriert seit: 02.08.2014
Version(en): 2016
Hallo Andreas,
vielen Dank für deine ausführliche Antwort!
Grüße, Ulrich
|