Fuzzy matching - unscharfe Duplikate in einer Spalte
#11
Hallo

schau dir die PasteSpecial Methode an.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • DerHutmacher
Top
#12
Vielen Dank für die Antworten, habe mich jetzt eine Weile mit
PasteSpecial auseinander gesetzt aber komme auf keinen grünen Zweig.
Wenn ich ehrlich bin weiß ich nicht einmal genau wo das jetzt im Code  hinkommt.
Top
#13
Hallo Hutmacher,


hier:


https://en.wikibooks.org/wiki/Algorithm_...n_distance

gibt es Umsetzunge des Levenshtein-Algorithmus (auch speziell für Excel).

Man könnte zu jedem Eintrag den Eintrag in der Liste mit dem gleichen Abstand suchen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • DerHutmacher
Top
#14
Hallo Ego,

danke für die Antwort, das Thema mit den fuzzy Duplikaten habe ich bewerkstelligt bekommen.
Aktuell bezieht sich der Thread wohl auf die Fragestellung in Beitrag #9.

MfG
Top
#15
Also soweit bin ich jetzt mal.
Überschriften und Formatierung werden im neuen Blatt übernommen.

Probleme:
1) Die Horizontalen Rahmenlinien werden nicht übernommen.
2) Das ganze soll automatisch, exakt wie im Ausgangsblatt, als Tabelle formatiert werden.

Kann mir hier noch bitte wer auf die Sprünge helfen?

Code:
Option Explicit

Sub Duplikate_auslagern()

Dim Zeile As Integer, Bereich As Integer
Application.ScreenUpdating = False
With Worksheets.Add
.Name = "Duplikate"

End With

Sheets("Stammdaten").Activate
Range("A1:R2").Copy
Sheets("Duplikate").Activate
 Range("A1:R2").PasteSpecial xlPasteValues
 Application.CutCopyMode = False
Sheets("Stammdaten").Activate
Bereich = Cells(Cells.Rows.Count, 1).End(xlUp).Row
For Zeile = Bereich To 1 Step -1
If WorksheetFunction.CountIf(Columns(1), Cells(Zeile, 1)) > 1 Then
Rows(Zeile).Copy _
Sheets("Duplikate").Cells(Sheets("Duplikate").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
End If
Next Zeile

Sheets("Stammdaten").Select
Cells.Select
Selection.Copy

Sheets("Duplikate").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

End Sub

MfG  Hutmacher
Top
#16
Hallo,

in solchen Fällen hilft man sich mit dem Makrorekorder.
Zeichne den Vorgang wie Du es manuell machst auf, dann hast Du die Syntax.
Gruß Atilla
Top
#17
Hallöchen,

Kommen die Linien eventuell von bedingten Formatierungen, die dann nicht mehr wirken? Oder handelt es sich um eine "eingefügte" Tabelle? Im ersten Fall müsstest Du nach den Bedingungen schauen, im zweiten aus den Daten wieder eine Tabelle machen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste