Office: Zeilen automatisch löschen nach Vergleich mit zweiter Datei

Helfe beim Thema Zeilen automatisch löschen nach Vergleich mit zweiter Datei in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Liebe Community, ich habe folgendes Problem. 1x im Monat wird eine Liste, hier als Beispiel "Dezember 2020", per Mail an verschiedene Nutzer... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Kroko7, 4. November 2020.

  1. Zeilen automatisch löschen nach Vergleich mit zweiter Datei


    Liebe Community,

    ich habe folgendes Problem.

    1x im Monat wird eine Liste, hier als Beispiel "Dezember 2020", per Mail an verschiedene Nutzer gesendet. In dieser Datei sollen für mich nur Zeilen bestehen bleiben, die für mich relevant sind.
    Ich kann dazu mit der Artikelnummer in einer zweiten Liste, die auf dem Server abgelegt ist, suchen. Alle Zeilen mit übereinstimmenden Artikelnummern, die in der Liste auf dem Server, hier als Beispiel "Neue Liste Stand Mai 2018", aufgeführt sind, sollen in der Datei erhalten bleiben, alle anderen Zeilen sollen gelöscht werden.

    Die Datei auf dem Server sollte im besten Fall auch nicht geöffnet werden müssen.

    Ich hoffe es ist soweit klar was gemeint ist. Bin für jede Hilfe dankbar.

    VG

    :)
     
  2. Hi kroko

    probier mal "=VERGLEICH" oder "=SVERWEIS" in Spalte C.

    Falls Makro möglich ist: Eine Suchschleife mit Zeilenlöschung bei Fund. Das Öffnen der Datei per Makro kann vermieden werden, wenn sie schon offen ist, also vor Makroaufruf händisch geöffnet wird.

    LGB
     
    barbara_w, 6. November 2020
    #2
  3. Hallo Barbara,

    die Tabellen sind normalerweise noch mit deutlich mehr Daten gefüllt und am liebsten würde ich ohne Hilfsspalte auskommen.

    Ich hab noch mal ein wenig gesucht und versucht ein Makro zu schreiben. Unten im Code erhalte ich dann allerdings einen Laufzeitfehler 13: Typen unverträglich an folgender Stelle:
    "If rng.Cells(i) GetValue(pfad, datei, blatt, bezug) Then"

    Private Function GetValue(pfad, datei, blatt, zelle)
    '** Daten aus geschlossener Arbeitsmappe auslesen
    'Variable deklarieren

    Dim arg As String

    'Sicherstellen, dass die Datei vorhanden ist

    If Right(pfad, 1) "" Then pfad = pfad & ""

    If Dir(pfad & datei) = "" Then

    GetValue = "Datei Not Found"

    Exit Function

    End If

    '** Das Argument erstellen

    arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("E3:E20000").Address(, , xlR1C1)

    '** Auslesen über Excel4Macro

    GetValue = ExecuteExcel4Macro(arg)

    End Function

    Sub Zeilen_löschen()

    Dim rng As Range
    Dim i As Integer, counter As Integer
    Dim pfad As String, datei As String, blatt As String, zelle As String

    '** Angaben zur auszulesenden Zelle

    pfad = "D:"

    datei = "Neue Liste Stand Mai 2018.xlsx"

    blatt = "2020"

    bezug = "E3:E20000"

    'Set the range to evaluate to rng.
    Set rng = Range("C1:C20000")

    'initialize i to 2
    i = 2

    'Loop for a count of 1 to the number of rows
    'in the range that you want to evaluate.
    For counter = 1 To rng.Rows.Count

    'Vergleichen der Werte in Zellbereich C der aktiven Tabelle mit Zellbereich B der Datei auf dem Server und Zeilen löschen, wenn
    'Werte nicht übereinstimmen

    If rng.Cells(i) GetValue(pfad, datei, blatt, bezug) Then

    rng.Rows.Delete

    Else

    i = i + 1

    End If


    Next

    End Sub
     
  4. Zeilen automatisch löschen nach Vergleich mit zweiter Datei

    Hi

    zur Fehlersuche sollte man alle Variablen überprüfen. Das geht aber von hier nicht, da ich Deine Umgebung nicht kenne.
    Vielleicht probier mal
    pfad = "D:"
    also mit Schrägstrich.

    Übrigens, was sagst Du zu meinem Lösungsvorschlag in meiner vorigen Antwort?

    LGB

    Und noch was: Ein Code in disem Forum sieht besser aus, wenn Du die Code-Tags verwendest, und die bekommst Du durch Anklicken des drittletzten Symbols in diesem Schreibfenster (neben PHP).
     
    barbara_w, 8. November 2020
    #4
  5. Hallo Barbara,

    danke noch mal für dein Feedback. Das mit Schrägstrich "/" war eigentlich im Code...weiß nicht wieso es raus ist. Werde das mal checken.
    Danke auch für den Hinweis für die Code Tags *wink.gif*

    Ich muss ehrlich sagen, dass ich nicht ganz verstehe wie mir die =VERGLEICH oder =SVERWEIS Formel in einer Hilfsspalte helfen?
    Vielleicht steh ich auf dem Schlauch?

    Da ich gern eine Vorlage basteln möchte, mit der andere Kollegen, ohne tiefere Excel Kenntnisse, auch arbeiten können, würde ich es eigentlich am liebsten rein über Excel VBA Marko lösen. Wie gesagt wäre es sehr elegant, die Tabelle in der gesucht wird, nicht extra vorher öffnen müssen.

    VG
     
  6. Hi Kroko

    für C2 in Datei "Dezember 2020" würde diese Formel
    =WENNFEHLER(VERGLEICH(B2;'[Neue Liste Stand Mai 2018.xlsx]2020'!$E$4:$E$90;0);"Nicht gefunden")
    passen. Tritt vom Schlauch weg, auf den Du stehst und probier die Formel mal aus. Es ist leicht nachvollziehbar.

    Die Formel kannst Du dann runter kopieren und liefert als Ergebnis: "Nicht gefunden" oder leere Zelle. Danach kannst Du dann filtern und unerwünschte Zeilen löschen.

    Der verkehrte Schrägstrich läßt sich hier nicht gerne darstellen, weil er vom Editor als Steuerzeichen oder was anderes interpretiert wird. Manchmal helfen zwei verkehrte Schrägstriche, um einen darstellen zu können. genau weiss ich das aber auch nicht.

    Für eine Makrolösung müsste ich mir Zeit nehmen. Damit bin ich etwas knapp, zumindest bis zum Wochenende.

    Zur Fehlersuche Deines Makros habe ich Dir ja bereits Hinweise geschrieben (vom verkehrten Schrägstrich abgesehen).

    LGB
     
    barbara_w, 9. November 2020
    #6
  7. Hallo Barbara,

    danke für deine Hilfe und Ideen. Mit einer extra Spalte, der WENNFEHLER Formel und einem einfachen Makro geht es jetzt erstmal. *Smilie

    VG
     
  8. Zeilen automatisch löschen nach Vergleich mit zweiter Datei

    jetzt muss ich doch noch mal nach Hilfe fragen. Irgendwie hängt sich Excel bei ausführen des Makros auf. Hat jemand eine Idee?

    Code:
     
  9. Hi,
    hier ist ein Rows zu viel:


    lz = Cells(Rows.Count, 10).End(xlUp).Row

    Außerdem sollte sicherheitshalber das Tabellenblatt angegeben werden, z.B. so:

    Code:
     
  10. Hi Regina,

    danke für die Info.

    Ich habe den Code übernommen. Er hängt sich immer noch auf...
    Ich habe allerdings das End With noch unter das Next t gepackt, da er sonst gemeckert hat.
    Das Tabellenblatt heißt auch "Tabelle1".

    Code:
     
  11. ...so, dann sag doch mal in welcher Zeile er sich "aufhängt" und mit welcher Fehlermeldung. Besser noch, lad mal eine Beispieldatei hoch. Mit der Position des End With hast Du natürlich recht.
     
  12. Hallo Regina,

    anbei die Dateien. Er hängt sich nicht im Code auf, daher kann ich dir nicht sagen welche Fehlermeldung es ist oder an welcher Stelle es passiert. Excel berechnet irgendetwas, scheinbar aber in einer Endlosschleife. Der Screenshot zeigt, was dann immer wieder kurz in der Excelmappe angezeigt wird. Ich kann diese dann nur noch über den Taskmanager schließen...

    VG
     
  13. Zeilen automatisch löschen nach Vergleich mit zweiter Datei

    Hi, bei mir läuft der Code durch, allerdings dauert es "ewig" und zwischendurch kommt schon mal die Meldung "keine Rückmeldung".

    Evtl. geht es schneller, wenn Du per VBA einen Filter auf "x" setzt und dann "in einem Rutsch" löschst.
     
  14. Hi Kroko

    probier doch mal folgendes Makro auf Deine gepostete Datei "Test Zeilen Löschen2.xlsm".

    Code:
    Wie lange braucht dieses Makro für einen Durchlauf? Es sollte etwas schneller gehen.

    LBG
     
    barbara_w, 14. November 2020
    #14
  15. Guten Morgen zusammen,

    es funktioniert nun mit dem Hinweis von Regina. Also Zeilen ausblenden, alles löschen und wieder einblenden.
    Danke für eure Hilfe!

    Dazu habe ich diesen Code benutzt:
    Code:
     
Thema:

Zeilen automatisch löschen nach Vergleich mit zweiter Datei

Die Seite wird geladen...
  1. Zeilen automatisch löschen nach Vergleich mit zweiter Datei - Similar Threads - Zeilen automatisch löschen

  2. Zeile ausgefüllt, automatisches Generieren einer weitern Zeile

    in Microsoft Access Hilfe
    Zeile ausgefüllt, automatisches Generieren einer weitern Zeile: Guten Morgen, ich habe ein Access Dokument mit einer Auflistung von 5 Zeilen Text. Wenn ich die 5. Zeile ausfülle und abschliesse, soll automatisch eine 6. Zeile angezeigt werden. Diese kann ich...
  3. Combo Box automatisch pro Zeile einfügen

    in Microsoft Excel Hilfe
    Combo Box automatisch pro Zeile einfügen: Guten Tag allerseits, Ich habe mich durch das Forum gesucht, bin aber nicht wirklich auf etwas gestossen welches mir mit meinem Problem hilft. Es geht darum, eine Übersicht des Posteingangs...
  4. Excel Zeilen Automatisch

    in Microsoft Excel Hilfe
    Excel Zeilen Automatisch: Hallo, Ich habe die Aufgabe in Excel eine Funktion mit: WENN und ISTZAHL zu machen. Dabei sollen, wenn in der Zelle D4 z.B. die Zahl 5 steht, ab Zelle B9 und folgende, automatisch eine...
  5. Automatisch zusätzliche Zeilen in einem anderen Tabellenblatt erstellen

    in Microsoft Excel Hilfe
    Automatisch zusätzliche Zeilen in einem anderen Tabellenblatt erstellen: Hallo zusammen, ich habe das folgendes Problem und keine Ahnung wie ich dieses lösen kann. Ich möchte gerne, dass wenn in einem bestimmten Bereich eines Excelblattes Zeilen eingefügt werden,...
  6. automatisches Ausblenden von Zeilen in anderem Tabellenblatt

    in Microsoft Excel Hilfe
    automatisches Ausblenden von Zeilen in anderem Tabellenblatt: Hallo zusammen :-) nun habe ich mich doch angemeldet um euer Wissen zu nutzen. Ich bin mir nicht sicher ob in meinem Fall ein Button oder eine komplette Automatisierung Sinn macht. Folgendes...
  7. Textteile innerhalb von Zeilen automatisch Kategorisieren

    in Microsoft Excel Hilfe
    Textteile innerhalb von Zeilen automatisch Kategorisieren: Hallo zusammen, ich habe eine große Tabelle ca 5000 Zeilen und möchte Die Textinhalte von Spalte A automatisch kategorisieren. In Spalte B soll jeweils der Wert der jeweiligen Kategorie (Spalten...
  8. Jede zweite Zeile automatisch löschen???

    in Microsoft Excel Hilfe
    Jede zweite Zeile automatisch löschen???: Hallo an alle, ich habe noch ein weiteres Problem bei der Bearbeitung meiner Excel Datei. Ich habe eine sehr lange liste (ca. 8000 Zeilen) bei der jede zweite Zeile überflüssig ist. Kann man...