Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Doppelte Einträge der Datei anzeigen?

Doppelte Einträge der Datei anzeigen?
25.02.2021 23:05:05
Selma
Hallo zusammen,
ich habe eine TXT-Datei (D:\Daten\Projekte\Pfadliste.txt) in der zeilenweise Einträge stehen.
Wie kann ich bitte per VBA die doppelten Einträge in einem MsgBox oder separater TXT-Datei anzeigen lassen?
Der Vergleich soll pro Zeile erfolgen.
Besten Dank im Voraus!
Gruß,
Selma

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
25.02.2021 23:43:08
Yal
Hallo Selma,
es muss nicht immer VBA sein.
_ Öffne die Datei in Excel, oder in Texteditor und kopiere den Inhalt in Excel.
* Alle steht in Spalte A
_ Kopiere der Inhalt der Spalte A in D.
Spalte D markieren,
_ im Menü "Daten", "duplikate entfernen",
_ in Spalte B folgende Formel (Am Beispiel B1) einfügen
=SVERWEIS(A1;$D:$D;1;0)
_ nach unten erweitern
* Da wo #NV steht, ist der Wert mindestens doppelt
Falls die Reihenfolge nicht wichtig ist:
_ Spalte A sortieren
_ in Spalte B ab B2 Formel:
= (A1=A2)*1 + (A2=A3)*1
_ nach unten erweitern
_ da wo "1" oder "2" ist, ist der Eintrag doppelt.
Ist die Reihenfolge wichtig:
_ in Spalte B Formel
=ZEILE()
_ nach unten erweitern
_ kopieren durch Wert ersetzen
_ Spalte A und B nach A sortieren
_ wie vorab aber Formel kommt in Spalte B
_ danach sortieren nach Spalte B
Man kann es unter Recorder machen, aber müsste den Code anschliessend anpassen, um die Wiederverwendbarkeit zu sichern.
VG
Yal
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 10:01:44
Selma
Hallo Yal,
vielen Dank für deine Antwort. Mir ist der Weg über Kopieren / Einfügen bekannt.
Da ich oft diese Aktion ausführen muss, wäre für mich der Weg über VBA besser.
Beste Grüße,
Selma
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 10:43:22
Yal
Hallo Selma,
der schnellste Weg ist:
_ Datei in Excel laden. Deine Daten sind dann in Spalte A
_ in Spalte B
=SVERWEIS(A1;A2:A$2000;!;0)
Dann ist im Spalte B
"#NV": Eintrag exisitiert nur einmal
Wert von A Eintrag ist doppel (aber nur der erste Eintrag wird als doppelt markiert).
Makro könnte ich liefern, habe aber heute keine Zeit.
Du kannst aber diese Antwort wieder als offen markieren. Vielleicht kann ein anderer Helfer deine Bestellung liefern.
VG
Yal
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 10:43:56
Yal
Hallo Selma,
der schnellste Weg ist:
_ Datei in Excel laden. Deine Daten sind dann in Spalte A
_ in Spalte B
=SVERWEIS(A1;A2:A$2000;1;0)
Dann ist im Spalte B
"#NV": Eintrag exisitiert nur einmal
Wert von A Eintrag ist doppel (aber nur der erste Eintrag wird als doppelt markiert).
Makro könnte ich liefern, habe aber heute keine Zeit.
Du kannst aber diese Antwort wieder als offen markieren. Vielleicht kann ein anderer Helfer deine Bestellung liefern.
VG
Yal
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 15:43:26
Selma
 
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 16:25:28
Yal
Hallo Selma,
Ich habe doch ein paar Minuten gefunden.
Füge dazu einen Verweise auf "Microsoft Scripting Object" (im VB-Editor, Extras, Verweise)
Aus der Liste in Spalte A werden 2 Liste in C und D: Einzel und Mehrfach.
In Spalte E werden sogar die Anzahl von mehrfach vorkommende Einträge.

Sub doppelt_auflisten()
Dim D As New Dictionary
Dim E, x
On Error Resume Next
For Each E In Range("A1", Range("A9999").End(xlUp)).Cells
x = 0
x = D(E.Value)
D(E.Value) = x + 1
Next
Range("C1:E1") = Array("Einzel", "Mehrfach", "Anzahl")
For Each E In D.Keys
If D(E) = 1 Then
Range("C9999").End(xlUp).Offset(1, 0) = E
Else
Range("D9999").End(xlUp).Offset(1, 0) = E
Range("D9999").End(xlUp).Offset(0, 1) = D(E)
End If
Next
End Sub

VG
Yal
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 16:45:04
Selma
Hallo Yal,
ich habe es getestet und es funktioniert.
Kannst du mir bitte dabei helfen, per VBA die bereits vorhandene TXT-Datei auf die doppelten Einträge ohne Import nach Excel zu überprüfen? :-)
Beste Grüße,
Selma
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 17:44:35
Yal
Hallo Selma,
Helfen schon. Erledigen nicht.
Helfen bedeutet, dass Du dabei dein Beitrag leistet.
Bisher habe ich von Dir wenig gesehen.
VG
Yal
AW: Doppelte Einträge der Datei anzeigen?
26.02.2021 19:33:51
Selma
Mit diesem Code kann ich mindestens die doppelten Einträge in der Spalte A anzeigen lassen.
Wie kann ich es bitte umbauen, dass ich die Datei "D:\Daten\Projekte\Pfadliste.txt" auf doppelte Einträge überprüfen kann?
Sub DoppelteFinden()
Dim intr1 As Integer, intr2 As Integer, Suchspalte As Integer
Suchspalte = 1
For intr1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For intr2 = intr1 + 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(intr1, Suchspalte) = Cells(intr2, Suchspalte) Then
MsgBox Cells(intr1, Suchspalte).Value & " ist doppelt vorhanden"
End If
Next intr2
Next intr1
End Sub

Anzeige
AW: Doppelte Einträge der Datei anzeigen?
28.02.2021 15:46:29
Selma
Hallo Leute,
was muss ich bitte hier im Makro "Doppelte_anzeigen" ergänzen, um in einem MsgBox die doppelt vorhandenen Einträge auszugeben?
Sub Doppelte_anzeigen()
Dim Datei As String, Text As String
Dim Zeile As Long
Datei = "D:\Daten\Projekte\Pfadliste.txt"
Close #1   'Quelldatei vorsichtshalber schließen
Open Datei For Input As #1         ' Quelldatei öffnen.
Zeile = 1
Do While Not EOF(1)           ' Schleife bis Dateiende
Line Input #1, Text      ' Text lesen
Debug.Print Text
Zeile = Zeile + 1
Loop
Close #1   'Quelldatei schließen
End Sub
Über Zwischenschritt der Tabelle funktioniert es bereits.
Sub DoppelteFinden()
Dim intr1 As Integer, intr2 As Integer, Suchspalte As Integer
Suchspalte = 1
For intr1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For intr2 = intr1 + 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(intr1, Suchspalte) = Cells(intr2, Suchspalte) Then
MsgBox Cells(intr1, Suchspalte).Value & " ist doppelt vorhanden"
End If
Next intr2
Next intr1
End Sub
Nur mein Ziel ist es direkt über die TXT-Datei die doppelte Einträge im MsgBox anzuzeigen.
Beste Grüße,
Selma
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
01.03.2021 11:35:57
Yal
Hallo Selma,
jetzt kommt was.
Unklar ist, ob Du eine MsgBox pro Doppelten oder nur eine MsgBox mit allen Doppelten. Das Coding geht auf letzteres:
_ Daten aus der Datei lesen und
_ in einem Array zwischenlagern (alternative wäre Umweg über ein Tabellenblatt, was zu den zweiten Teil _ deines Codings führen würden. Du wirst aber den "Muster" wiedererkennen)
_ Vergleich des arrays mit sich selbst und
_ sammeln der Treffer
_ Anzeige der Treffer
Sub Doppelte_anzeigen()
Dim Datei As String, Text As String
Dim i As Long
Dim j As Long
Dim arrListe(0) As String
Dim Ergebnis As String
Dim AnzahlErg As Integer
Datei = "D:\Daten\Projekte\Pfadliste.txt"
Close #1   'Quelldatei vorsichtshalber schließen
Open Datei For Input As #1         ' Quelldatei öffnen.
Do While Not EOF(1)           ' Schleife bis Dateiende
Line Input #1, Text      ' Text lesen
arrListe(UBound(arrListe)) = Text
ReDim Preserve arrListe(UBound(arrListe) + 1)
Loop
Close #1   'Quelldatei schließen
For i = 0 To UBound(arrListe) - 1
For j = i + 1 To UBound(arrListe)
If arrListe(i) = arrListe(j) Then
Ergebnis = Ergebnis & vbCr & arrListe(i)
AnzahlErg = AnzahlErg + 1
Exit For 'springe sofort zum nächste i
End If
Next
Next
MsgBox "Es sind " & AnzahlErg & " gefunden worden: " & Ergebnis
End Sub
VG
Yal
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
01.03.2021 13:04:53
Selma
Hallo Yal,
MsgBox "In der Datei befinden sich x doppelte Einträge" soll nur einmal angezeigt werden.
Ich habe es getestet. Fehler beim Kompilieren: Datenfeld bereits dimensioniert.
In dieser Zeile: ReDim Preserve arrListe(UBound(arrListe) + 1)
Beste Grüße,
Selma
AW: Doppelte Einträge der Datei anzeigen?
01.03.2021 15:28:23
Yal
Oops, sorry. Anfängerfehler ;-)
Siehe neuer Code.
Du meinst, es sollte nur den Anzal von doppelte Einträge gezeigt werden. Sollten nicht auch die Einträge gezeigt werden, die doppelt sind? Wenn letzteres, dann passt diese Zeile an:
MsgBox "Es sind " & AnzahlErg & " gefunden worden: " & Ergebnis
Sub Doppelte_anzeigen()
Dim Datei As String, Text As String
Dim i As Long
Dim j As Long
Dim arrListe() As String
Dim Ergebnis As String
Dim AnzahlErg As Integer
Datei = "D:\Daten\Projekte\Pfadliste.txt"
Close #1   'Quelldatei vorsichtshalber schließen
Open Datei For Input As #1         ' Quelldatei öffnen.
ReDim arrListe(0)
Do While Not EOF(1)           ' Schleife bis Dateiende
Line Input #1, Text      ' Text lesen
arrListe(UBound(arrListe)) = Text
ReDim Preserve arrListe(UBound(arrListe) + 1)
Loop
Close #1   'Quelldatei schließen
For i = 0 To UBound(arrListe) - 1
For j = i + 1 To UBound(arrListe)
If arrListe(i) = arrListe(j) Then
Ergebnis = Ergebnis & vbCr & arrListe(i)
AnzahlErg = AnzahlErg + 1
Exit For 'springe sofort zum nächste i
End If
Next
Next
MsgBox "Es sind " & AnzahlErg & " gefunden worden: " & Ergebnis
End Sub
So sollte es jetzt funktionieren.
VG
Yal
Anzeige
AW: Doppelte Einträge der Datei anzeigen?
01.03.2021 17:17:06
Selma
Hallo Yal,
vielen Dank. Es funktioniert perfekt.
Beste Grüße,
Selma
Vielen Dank für die Rückmeldung. oT
01.03.2021 23:12:02
Yal

102 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige