1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

excel - sortieren nach häufigkeit?

Discussion in 'Office-Programme' started by huhu002, Feb 25, 2008.

Thread Status:
Not open for further replies.
  1. huhu002

    huhu002 Byte

    hallo leute!

    ich hab ne dringende frage:

    ich hab eine riesige excel liste mit ca. 20 000 zeilen, die fast alle andere werte enthalten. nur manche werte sind doppelt vorhanden, und die gehören gelöscht.
    jetzt meine frage: ist es irgendwie möglich, die liste so zu sortieren, dass ich am anfang bzw. am ende alle doppelten einträge habe, und somit nur noch jeden zweiten löschen muss?
    ich bin über jedwedige hilfe froh, denn damit würde ich mit viel zeit sparen!

    danke im vorraus!

    huhu002
     
  2. brum

    brum Kbyte

  3. Beverly

    Beverly Halbes Megabyte

    Hi,

    wenn es sich um Spalte A handelt, in der sich die doppelten Werte befinden, kannst du diesen Code verwenden

    Code:
    Sub doppelte_eliminieren()
        Dim raZelle As Range
        Dim raZeile As Range
        Dim strStartadresse As String
        Dim loLetzte As Long
        Dim loZeile As Long
        With ActiveSheet
            loLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), _
                .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
            For loZeile = 2 To loLetzte
            '   von Peter Haserodt
                Set raZelle = .Columns(1).Find(.Cells(loZeile, 1), _
                    .Cells(loLetzte, 1), , xlWhole, , xlNext, True)
            '   *****
                strStartadresse = raZelle.Address
                Do
                    Set raZelle = .Columns(1).FindNext(raZelle)
                    If raZelle.Address = strStartadresse Then Exit Do
                    If raZeile Is Nothing Then
                        Set raZeile = raZelle.Rows
                    Else
                        Set raZeile = Union(raZeile, raZelle.Rows)
                    End If
                    If raZelle.Row = loLetzte Then Exit Do
                Loop While Not raZelle Is Nothing
            Next loZeile
        End With
        If Not raZeile Is Nothing Then raZeile.EntireRow.Delete
        Set raZelle = Nothing
        Set raZeile = Nothing
    End Sub
    
    Lege dir aber besser vorher eine Sicherheitskopie an, weil die Zeilen anschließend komplett gelöscht sind.
     
Thread Status:
Not open for further replies.

Share This Page