701 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe eine Liste mit 25000 Zeilen (Spalte A-I).
In Spalte I habe ich Daten aus Spalte A+C verkettet. Hieraus ergeben sich doppelte Werte. Ich möchte jeden Wert aber nur 1x angezeigt bekommen.
Hat jemand ein passenden Makro für mich?

Gruß,
Colatrinkerin

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

das folgende Makro blendet Zeilen aus, wenn in Spalte I ein Wert mehrfach vorhanden ist:
Sub ohnedoppel()

Dim lngLetzte As Long
Dim lngZeile As Long

'letzte Zeile in Spalte I ermitteln
lngLetzte = ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row

For lngZeile = lngLetzte To 1 Step -1
With ActiveSheet
'Mit Zählenwenn prüfen, ob Inhalt mehrmals auftaucht und falls ja, dann Zeile ausblenden
If Application.WorksheetFunction.CountIf(Range(.Cells(lngZeile, 9), .Cells(1, 9)), .Cells(lngZeile, 9)) > 1 Then .Rows(lngZeile).EntireRow.Hidden = True
End With
Next lngZeile

End Sub

Und wenn du alle ausgeblendeten Zeilen wieder einblenden willst:
Sub ZeilenEinblenden()
ActiveSheet.UsedRange.Rows.Hidden = False
End Sub


Beide Makros gehören in ein allgemeines Modul deiner Arbeitsmappe.

Gruß

M.O.
0 Punkte
Beantwortet von
Hi M.O.,

ich habe beide Makros gerade hinterlegt. Excel rödelt sich noch zurecht...
Kurze Rückfrage:
Das Makro prüft jetzt ja die letzte beschriebe Zeile, oder? Da ich Formeln bis Zeile 25000 hinterlegt habe, prüft Excel natürlich bis dahin durch.
In Spalte A ist keine Formel hinterlegt. Kann man das Makro so verändern, dass Excel die Prüfung abschließen kann, wenn in Spalte A die letzte Zeile erreicht wurde? Vielleicht gehts dann etwas schneller :-)
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

dann ändere die Zeile
'letzte Zeile in Spalte I ermitteln
lngLetzte = ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row

in
'letzte Zeile in Spalte I ermitteln
lngLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row


Gruß

M.O.
0 Punkte
Beantwortet von
Perfekt ! Vielen herzlich Dank.
Leider kann ich kein "Problem gelöst" Button vergeben, weil ich mich nicht registrieren kann. Da gibts wohl irgendein technisches Problem.

Schönes Wochenende
...