Microsoft Excel

Herbers Excel/VBA-Archiv

Doppelete Werte


Betrifft: Doppelete Werte
von: Hass
Geschrieben am: 08.11.2018 11:19:25

Hallo

Ich benötige Hilfe.

Ich habe eine Datei wo in Spalte a Werte über eine UF eingetragen werden.

Nun möchte Ich die Spalte a auf doppelte Werte suchen lassen.

Soweit OK aber ich möchte nicht dass der erste Wert gelöscht wird sondern der letzte Wert.

Kann einer helfen?

Gruß
Hass

  

Betrifft: AW: Doppelete Werte
von: Hass
Geschrieben am: 08.11.2018 11:27:44

Hallo.
Derzeitige Formel.

Sub DoppelteZeilenLöschen()

Dim letzteZeile As Long
Dim Zeile As Long

letzteZeile = Range("A" & Rows.Count).End(xlUp).Row

For Zeile = letzteZeile To 1 Step -1
    If WorksheetFunction.CountIf(Range("A1:A" & Zeile), Range("A" & Zeile)) > 1 Then
        Rows(Zeile).EntireRow.Delete
    End If
Next

End Sub

Gruß
Hass


  

Betrifft: Der Code ist ok so, es geht doch ... owT
von: Matthias L
Geschrieben am: 08.11.2018 11:35:55




  

Betrifft: AW: Der Code ist ok so, es geht doch ... owT
von: Hass
Geschrieben am: 08.11.2018 11:44:24

Hallo Matthias

es soll nicht der letze doppelte Wert sondern der erste doppelte Wert gelöscht werden

Gruß Hass


  

Betrifft: dann Boris seinen Vorschlag ... mit xlNext
von: Matthias L
Geschrieben am: 08.11.2018 11:51:21

Hallo

mit:

searchdirection:=xlNext
Gruß Matthias


  

Betrifft: AW: dann Boris seinen Vorschlag ... mit xlNext
von: Hass
Geschrieben am: 08.11.2018 11:59:54

Hallo Matthias

Die Formel von Boris geht bei mir nicht.

Hier nochmal die Formel die jedoch den letzten aber nicht die erste Zeile mit doppelten Wert löscht.

Sub DoppelteZeilenLöschen()

Dim letzteZeile As Long
Dim Zeile As Long

letzteZeile = Range("A" & Rows.Count).End(xlUp).Row

For Zeile = letzteZeile To 1 Step -1
    If WorksheetFunction.CountIf(Range("A1:A" & Zeile), Range("A" & Zeile)) > 1 Then
        Rows(Zeile).EntireRow.Delete
    End If
Next

End Sub

Gruß
Hass


  

Betrifft: Boris seinen Vorschlag geht aber ...
von: Matthias L
Geschrieben am: 08.11.2018 13:10:51

Hallo

Der Code von Boris geht schon ...
Vermutlich hat der auomatische Zeilenumbruch
der Forensoftware dafür gesorgt, das es bei Dir nicht klappte
Also der Unterstrich am Ende der CodeZeile(beim Vorschlag von Boris)



Probier das jetzt mal so:
Dim C As Range
Dim LetzteZeile As Long
LetzteZeile = Range("A" & Rows.Count).End(xlUp).Row
     'Im Bsp wird nach der 4 gesucht
Set C = Range("A:A").Find("4", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
MsgBox C.Address
If WorksheetFunction.CountIf(Range("A1:A" & LetzteZeile), Range("A" & C.Row)) > 1 Then
 Rows(C).Delete
End If
Gruß Matthias


  

Betrifft: AW: Boris seinen Vorschlag geht aber ...
von: Hass
Geschrieben am: 08.11.2018 14:00:45

Hallo Matthias

es ist nicht das was ich Suche.

In der Anlage die Datei die den doppelten wert in der Spalte sucht und die Zeile Löscht.
Jetzt benötige ich aber die Datei so dass der erste Wert und die Zeile gelöscht wird.

http://www.herber.de/bbs/user/125263.xlsm

Gruss Hass


  

Betrifft: letzter Versuch ...
von: Matthias L
Geschrieben am: 08.11.2018 14:37:32

Hallo

Dim Bereich As Range, RnG As Range
Dim LetzteZeile As Long
LetzteZeile = Range("A" & Rows.Count).End(xlUp).Row
Set Bereich = Range("A7:A" & LetzteZeile)
For Each RnG In Bereich
 If WorksheetFunction.CountIf(Bereich, Range("A" & RnG.Row)) > 1 And RnG <> "" Then
  Rows(RnG).Delete
  Exit Sub
 End If
Next
Gruß Matthias


  

Betrifft: AW: letzter Versuch ...
von: Hass
Geschrieben am: 08.11.2018 17:05:37

Hallo Matthias

Danke für die Hilfe.
Es ist nicht so wie ich es mir Vorstelle.




Gruss Hass


  

Betrifft: Sortier mal Deine Gedanken ...
von: Matthias L
Geschrieben am: 09.11.2018 08:01:17

Hallo

Jetzt mal Butter bei die Fische
Was willst Du wirklich?

Zitat
es soll nicht der letze doppelte Wert sondern der erste doppelte Wert gelöscht werden

Zitat
aber ich möchte nicht dass der erste Wert gelöscht wird sondern der letzte Wert.

Zitat
Hallo Boris
Danke für die Hilfe jedoch läuft der Code nicht bei mir.


Zitat:
es ist nicht das was ich Suche.

Zitat:
Es ist nicht so wie ich es mir Vorstelle.

In der Anlage die Datei die den doppelten wert in der Spalte sucht und die Zeile Löscht.
Jetzt benötige ich aber die Datei so dass der erste Wert und die Zeile gelöscht wird.



Tabelle1

 A
723.10.2018
86
97
102
113
124
139
1410
158
161


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Wo bitte ist in Deiner Bsp.Datei ein doppelter Wert?
Wenn man schon ein Bsp bringt schreibt man 2x den gleichen Wert in die Liste
und den Wert den man inkl. Zeile löschen will markiert man dann farbig.
So kann eindeutig nachvollzogen werden, was Du willst.


Dann solltest Du Dir auch mal klar darüber werden, was ist ...

  • der erste Wert

  • der letzte Wert


  • Tabelle1

     AB
    723.10.2018 
    86 
    97 
    109erste 9
    113 
    124 
    139letzte 9
    1410 
    158 
    161 


    Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

    In diesem Sinne, viel Glück beim Sortieren Deiner Gedanken.

    Gruß Matthias


      

    Betrifft: Du hast einen Denkfehler ...
    von: Matthias L
    Geschrieben am: 09.11.2018 08:42:12

    Hallo

    Du hast einen Denkfehler drin, den ich gerade erst bemerkt habe.
    Dein größter Denkfehler liegt hier:

    If WorksheetFunction.CountIf(Range("A1:A" & Zeile), Range("A" & Zeile)) > 1 Then
    Überleg Dir mal die Logik! Was vergleichst Du wohl mit welchem Bereich? Na, machts "Klick"?

    Dort gehört letzteZeile hin.

    Gruß Matthias


      

    Betrifft: AW: Doppelete Werte
    von: {Boris}
    Geschrieben am: 08.11.2018 11:30:29

    Hi,

    als Beispiel:

    Sub til()
    Dim C As Range
    Set C = Range("A:A").Find("x", LookIn:=xlValues, lookat:=xlWhole, searchdirection:= _
    xlPrevious)
    MsgBox C.Address
    End Sub
    VG, Boris


      

    Betrifft: AW: Doppelete Werte
    von: Hass
    Geschrieben am: 08.11.2018 11:42:04

    Hallo Boris

    Danke für die Hilfe jedoch läuft der Code nicht bei mir.

    Gruß Hass


      

    Betrifft: AW: Doppelete Werte
    von: Bernd
    Geschrieben am: 08.11.2018 12:05:56

    Hi,

    vermutlich weißt Du ja selber nicht was Du gerne möchtest!

    Soweit OK aber ich möchte nicht dass der erste Wert gelöscht wird sondern der letzte Wert.
    Von: 08.11.2018 um 11:19:25 Uhr

    Es soll nicht der letzte doppelte Wert sondern der erste doppelte Wert gelöscht werden.
    Von: 08.11.2018 um 11:44:24 Uhr

    MfG Bernd


      

    Betrifft: AW: Doppelete Werte
    von: Hass
    Geschrieben am: 08.11.2018 12:19:11

    Hallo Boris

    Sorry...Sorry

    Das ist die Richtige Frage:

    Es soll nicht der letzte doppelte Wert sondern der erste doppelte Wert gelöscht werden.
    Von: 08.11.2018 um 11:44:24 Uhr

    Gruß Hass


      

    Betrifft: AW: Doppelete Werte
    von: Bernd
    Geschrieben am: 08.11.2018 12:53:24

    Hi,

    mein Name ist Bernd!


    MfG Bernd


      

    Betrifft: AW: Doppelete Werte
    von: Hass
    Geschrieben am: 08.11.2018 13:02:05

    Hallo Bernd

    Sorry....Sorry

    ist wohl nicht mein Tag.

    Gruss Hass


      

    Betrifft: AW: Doppelete Werte
    von: Hass
    Geschrieben am: 08.11.2018 17:08:17

    Hallo Bernd

    Danke für die Hilfe

    Gruss Hass


      

    Betrifft: AW: Doppelete Werte
    von: Hass
    Geschrieben am: 08.11.2018 17:07:01

    Hallo Boris

    Danke für die Hilfe.





    Gruss Hass


      

    Betrifft: AW: Doppelete Werte
    von: Werner
    Geschrieben am: 08.11.2018 23:19:37

    Hallo,

    was ist jetzt eigentlich, hast du jetzt eine für dich funktionierende Lösung oder brauchst du die noch?

    Gruß Werner


      

    Betrifft: AW: Doppelete Werte
    von: Hass
    Geschrieben am: 09.11.2018 09:26:47

    Hallo Werner

    Danke für die Anfrage.

    Ich brauch die noch.

    In der Datei (siehe Anlage) werden die doppelten Werte und Zeilen von unten gelöscht.

    Mein Ziel ist es dass die Doppelten Werte und Zellen von OBEN gelöscht werden.

    http://www.herber.de/bbs/user/125278.xlsm

    Gruß
    Hass


      

    Betrifft: For Zeile = 1 To letzteZeile ...
    von: Matthias L
    Geschrieben am: 09.11.2018 09:37:04

    Du setzt alles um was ich Dir vorhin voregschlagen habe, gut so.
    Aber wenn Du von oben nach unten löschen willst musst Du auch mir der Schleife oben anfangen!

    also:

    For Zeile = 1 To letzteZeile
    und fang in A7 an und nicht in A1

    Gruß Matthias


      

    Betrifft: AW: For Zeile = 1 To letzteZeile ...
    von: Werner
    Geschrieben am: 09.11.2018 09:42:27

    Hallo,

    sei mir nicht böse aber du änderst ständig die Voraussetzungen. Mal von oben nach unten dann wieder umgekehrt.

    Bitte jetzt noch mal:
    Welche Doppler sollen entfernt werden? Die oberen oder die unteren?

    Und dann eine weitere Frage:
    Stimmt der Aufbau deiner tatsächlichen Datei mit der Beispieldatei überein?
    Daten in Spalte A ab A7

    Gruß Werner


      

    Betrifft: schau Dir meine Beiträge von heute an Werner
    von: Matthias L
    Geschrieben am: 09.11.2018 09:49:18

    Du hattest den Beitrag falsch gesetzt.
    Gruß Matthias


      

    Betrifft: AW: schau Dir meine Beiträge von heute an Werner
    von: Werner
    Geschrieben am: 09.11.2018 09:56:02

    Hallo Matthias,

    ...stimmt, sorry. Bin wohl noch ein wenig verpeilt.

    Aber mal zum Beitrag selbst. Mir ist immer noch nicht klar, wie jetzt eigentlich -die oberen oder die unteren.

    Aber egal, in beiden Fällen würde ich eher zu RemoveDuplicates tendieren, ggf. mit vorheriger Sortierung und anschließendem Rücksortieren.

    Gruß Werner