Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Datenabgleich mit Datensätzen
#1
Moin Leute,
ein guten Rutsch erstmal alle zusammen und ein fröhliches neues Jahr :) Ich hoffe ihr konntet alle die Zeit mit Familie und Freunden genießen.

Nun zu meinem Problem. Wenn eine Bsp-Datei nötig wird, gerne bescheid sagen, dauert dann aber etwas da viele Datenschutz Anpassungen nötig wären. 

Tabelle1 eine Tabelle aus Datensätzen: Name, Vorname, Adresse, etc
Tabelle2 eine Tabelle mit gesperrter "Ausdruck" : Peter, Dieter, Hans

ich suche eine Funktion/Makro welches mir direkt den DATENSATZ löscht in dem gesperrte "Ausdruck" vorkommt. Zb. Könnte Hans bei Name Vorname Adresse oder sonst wo stehen. 
ich hoffe es ist alles klar.
Antworten Top
#2
Hallo

nicht so ganz klar, denn in einer Tabelle werden Peter, Hans sicher öfters vorkommen.  Da sollte man nicht "wild löschen"!!

Datensaetze löschen mache ich ungern, ich verschiebe sie lieber in eine Tabelle wo nur gelöschte Daten drin stehen. Dann kann man im Ernstfall sich die alten Daten noch mal ansehen, oder zurück kopieren.

Was für ein Makro fehlt sind alle Angaben wie die Tabellen heissen, und in welchen Spalten die Daten stehen. Das macht jeder anders. Gibt es evtl. eine eindeutige ID Nummer? Sonst muss man den ganzen Datensatz prüfen. Ist die Original Tabelle und die mit "gesperrtem Ausdruck" von den Spalten für Name, Adresse etc. identisch?  Eine kleine Beispieldatei mit 10 Fantasie Datensaetzen ist hier sehr hilfreich

mfg  Gast 123
Antworten Top
#3
Hey,

ich hoffe jetzt wird mehr klar. Es soll am besten jeder Datensatz verschoben (Hab schon ein tabellenblatt dafür erstellt) oder gelöscht werden, der ein Begriff von der NogoListe ODER nur ein Buchstaben als Namen oder Vornamen verwendet hat. 
Also müssten in dem Fall hier Datensatz 3,4 und 5 verschoben oder gelöscht werden. 
Die Worte aus der NogoListe können theoretisch überall auftauchen.


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 23,6 KB / Downloads: 3)
Antworten Top
#4
Code:
Option Explicit

Sub Loeschen()
   Dim Loletzte As Long                            ' Varible Letzte Zeile
   Dim RaFound1 As Range                           ' Suchergebnis
   Dim Loi As Long                                 ' Schleifenvariable
   ' Vornamen suche
   With Worksheets("nogo Liste")
       Loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
           .Cells(Rows.Count, 1).End(xlUp).Row, .Rows.Count)
       For Loi = 1 To Loletzte
           Set RaFound1 = Worksheets("Datensätze").Columns(3).Find(.Cells(Loi, 1), , xlFormulas, _
               xlWhole, , xlNext)
           If Not RaFound1 Is Nothing Then
               Worksheets("Datensätze").Rows(RaFound1.Row).Delete
           End If
       Next Loi
   End With
   ' Vorname oder Nachname nur 1 Zeichen
   With Worksheets("Datensätze")
       Loletzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
           .Cells(Rows.Count, 1).End(xlUp).Row, .Rows.Count)
       For Loi = Loletzte To 2 Step -1
           If Len(Cells(Loi, 3)) = 1 Or Len(Cells(Loi, 4)) = 1 Then
               Rows(Loi).Delete
           End If
       Next Loi
   End With
End Sub

Lösung gefunden.
Hajo sei dank :15:
Antworten Top
#5
Hallo

Danke für die nette Rückmeldung, erspart uns unnötige Arbeit.  Erfreulich wenn ein Frager die Lösung selbst findet.

mfg  Gast 123
Antworten Top
#6
Hey,
die Lösung habe ich von Hajo. (https://www.ms-office-forum.net/forum/sh...p?t=356890
Allerdings vergleicht dieser Code nur Spalte 3 mit der nogoliste.
Hast du eventuell eine Idee wie ich den Code verbessern kann, sodass er alle Spalten aus "Datensätze" abgleicht?


FINALE LÖSUNG:

Set RaFound1 = Worksheets("Datensätze").Cells.Find(.Cells(Loi, 1), , xlFormulas, _
xlWhole, , xlNext)

im obigen Coder ersetzen.
Antworten Top
#7
Hallo

es geht auch mit:   Set RaFound1 = Worksheets("Datensätze").Columns("B:D").Find ...    Cells geht aber über alle Spalten!!

Das Makro von Hajo funktioniert, ist aber bei LastZell überdimensioniert. Ich glaube nicht das ihr 1.048.576 Daten habt!  Kleiner Nachteil, sein Makro löschte immer nur die 1. gefundene Zeile, weil nicht per Do Loop geprüft wird ob ein Name mehrfach vorkommt. Den Teil habe ich erweitert, bitte mal in Ruhe mit Beispieldaten prüfen ob alle Daten erfasst werden.

Weiterhin werden alle Daten zur Sicherheit vor dem Löschen in die Tabelle "gelöschte Daten" kopiert.  Würde mich freuen wenn es so optimal ist.

mfg Gast 123


Angehängte Dateien
.xlsm   Forum 2.xlsm (Größe: 27,17 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • elamigo
Antworten Top
#8
Nachtrag

ich sehe gerade im Betrag von Hajo wozu der 2. Teil im Makro gut ist, um Daten mit 1 Buchstaben zu löschen. Den Teil hatte ich zum testen bei mir gelöscht und vergessen ihn wieder einzufügen. Bitte selbst noch ins Makro einfügen.

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • elamigo
Antworten Top
#9
Danke für diese ausführliche Arbeit.
Antworten Top


Gehe zu:


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