Office: (Office 2013) VBA

Helfe beim Thema VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, Ich habe gerade das Problem, dass ich per VBA in einem Excel Sheet doppelte Zeilen ausfindig machen und markieren muss. Das Problem... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von BrunMi, 1. März 2017.

  1. VBA


    Hallo zusammen,

    Ich habe gerade das Problem, dass ich per VBA in einem Excel Sheet doppelte Zeilen ausfindig machen und markieren muss.

    Das Problem dabei:
    Ich muss nicht nur das Duplikat eines einzelnen Wertes, sondern einer ganzen Zeile suchen.

    Zum Beispiel:
    Jede Zeile markieren bei der in Spalte B "2" in Spalte D "4" und in Spalte E "Hallo" steht. (bzw. wenn das einfacher ist: wenn die gesamte Zeile, also jede Spalte, gleich ist - das tritt in meinem Fall genau gleich oft auf)

    Ich weiß es gibt etliche Beiträge im Netz, die sich mit dem Problem doppelte Werte markieren befassen, aber ich habe einfach keinen Beitrag gefunden bei dem ich eine duplizierte Zeile finden und farblich markieren kann.

    Kann mir hier jemand helfen?

    Danke schon mal für jede Antwort.

    Liebe Grüße
    BrunMi

    :)
     
    BrunMi, 1. März 2017
    #1
  2. Moin!

    Markiere die Tabellenspalten,
    bedingte Form., neue Regel, Formel zur Ermittlung:
    =$B1&$D1&$E1="24Hallo"
    Format zuweisen,
    Fettich!

    Gruß Ralf
     
    RPP63, 2. März 2017
    #2
  3. Sehe gerade, es war ja nur "ein Beispiel".
    Dann brauchst Du zwei Hilfsspalten, die Du hinterher ja ausblenden (nicht löschen!) kannst:
    Ab F2: =B2&D2&E2
    Ab G2: =ZÄHLENWENN(F:F;F2)>1
    Spalten optional ausblenden,
    Spalten A:E markieren,
    Formel der bed. Form.: =$G1
    Format zuweisen

    Bedenke aber, dass dies in (sehr) großen Tabellen den Prozessor fordert!

    Gruß Ralf
     
    RPP63, 2. März 2017
    #3
  4. VBA

    Hallo Ralf,

    Danke für die schnelle Antwort.

    Vielleicht habe ich mein Problem etwas ungenau beschrieben.
    Ich versuchs nochmal anders.

    Es gibt natürlich mehrere Kombinationen von Werten die doppelt vorkommen, eine bedingte Formatierung nach statischen Werten bringt mir also nichts, da ich die doppelt vorkommenden Kombinationen von Werten erst mal finden muss.
    Es muss außerdem zwingend eine VBA Lösung sein.

    Ich habe mal im Anhang eine Datei mit Beispieldaten hochgeladen.
    Im ersten Tabellenblatt sieht man ein paar Beispieldaten, im zweiten Tabellenblatt sieht man, wie die Werte im Endeffekt markiert werden sollen.

    Bei meiner Haupttabelle sind es ca. 6000 Datensätze - alles mit einer verschachtelten Schleife durchzulaufen und jeden Wert mit jedem zu vergleichen würde ich sehr gerne vermeiden, da das wahrscheinlich ein paar Minuten dauern würde, jedes mal wenn ich das Makro ausführe..

    Liebe Grüße
    BrunMi
     
    BrunMi, 2. März 2017
    #4
  5. Moin!
    1. Ich habe noch einen Beitrag erstellt, #3
    2. "Es muss außerdem zwingend eine VBA Lösung sein."
    Verrätst Du mir warum?
    6.000 Datensätze sind mit meiner Methode überhaupt kein Problem.

    Gruß Ralf
     
    RPP63, 2. März 2017
    #5
  6. Deine Datei mit meiner Methode bearbeitet;
    Spalten D:E können ausgeblendet werden.

    Gruß Ralf
     
    RPP63, 2. März 2017
    #6
  7. Hallo Ralf,

    Danke nochmal für die Antworten.

    zu 1:
    Hab ich zu spät gesehen - mein Fehler, Entschuldigung *wink.gif*

    zu 2:
    Weil ich im Endeffekt über ein Access Makro (jedoch ein Excel Objekt, deshalb hab ich das Thema hier angesiedelt) auf die von diesem Makro generierte Excel Tabelle zugreifen und dort in diesem Zug gleich die doppelten Zeilen markieren will.

    Interessanterweise gibt es zum Löschen von Zeilenduplikaten die Funktion .RemoveDuplicates - zum Markieren oder suchen von Duplikaten finde ich jedoch nichts was mir weiterhilft.. *frown.gif*

    Ich würde außerdem die Lösung mit den zusätzlichen Spalten gerne vermeiden, da die Auswertung im Endeffekt für unsere Elektriker ist und dann ziemlich sicher irgendwann (auch wenn ich die Spalten ausblende) eine der Spalten gelöscht wird, womit dann die Markierung auch nicht mehr funktionieren würde..

    Liebe Grüße
    BrunMi
     
    BrunMi, 2. März 2017
    #7
  8. VBA

    Nichts und niemand hindert Dich daran, meinen Ansatz in VBA umzusetzen. ;)
    Dann halt nicht per bed. Form., sondern mittels Farbe.
    Lasse den Code mal per F8 durchlaufen, dann erkennst Du das Prinzip:
    Datei im Anhang

    Gruß Ralf
     
    RPP63, 2. März 2017
    #8
  9. Ach so:
    Laufzeit in Deiner großen Datei?
     
    RPP63, 2. März 2017
    #9
  10. Beverly
    Beverly Erfahrener User
    Hi,

    vielleicht wäre das eine Möglichkeit:

    Code:
    VBA grusz.gif
     
    Beverly, 2. März 2017
    #10
  11. Hallo Ralf,

    schöne Lösung, überschaubarer Code.

    Da es sich um Zahlenwerte in den Spalten handelt, empfehle ich, Trennungszeichen gemäß Karin's Lösung einzufügen:
    Code:
    Gruß
    Aloys
     
    aloys78, 3. März 2017
    #11
  12. Beverly
    Beverly Erfahrener User
    \@All,

    wenn man mit der Hilfsspalten-Variante arbeiten will, könnte man den Code für das Färben noch vereinfachen, indem man anstelle einer Schleife den Autofilter verwendet:

    Code:
    VBA grusz.gif
     
    Beverly, 3. März 2017
    #12
  13. VBA

    Moin Karin!
    Ungetestet dürfte Deine Version mit dem Filter erheblich schneller laufen als meine Version.
    Ebenfalls ungetestet (aber aus meiner Erfahrung heraus) dürfte aber auch meine Hilfsspaltenlösung einen erheblichen Zeitfaktor gegenüber der .Find/.FindNext-Methode ausmachen.

    Gruß Ralf
     
  14. Beverly
    Beverly Erfahrener User
    Hi Ralf,

    das habe ich auch nicht behauptet, dass meine Find-Lösung schneller als deine ist *wink.gif* , ich bin mit meiner Lösung nur auf den Hinweis des TO eingegangen, dass er nicht mit Hilfsspalten arbeiten möchte.


    VBA grusz.gif
     
    Beverly, 3. März 2017
    #14
  15. \@Karin, @Ralf
    Da ich vor kurzem ein ähnliches Problem hatte, hat mich dieser Thread besonders interessiert: Bei mir ging es um weniger als 1000 Zeilen, dafür aber um 18 Spalten. Ich habe dafür einen Lösungsansatz mit einem temporären Tabellenblatt gewählt; die Daten dorthin kopiert, über 18 Spalten sortiert und dann in einer Schleife markiert.

    Ich habe gerade mal mit den 3 unterschiedlichen Lösungsansätzen Tests mit 6.300 Zeilen und 3 Spalten durchgeführt. Das Ergebnis hat mich völlig verblüfft:

    Durchschnittswerte über mehrere Versuche:
    RPP 5,5Sek
    RPP mit Filter 17 Sek
    Sortierung 1 Sek

    Gruß
    Aloys
     
    aloys78, 5. März 2017
    #15
Thema:

VBA

Die Seite wird geladen...
  1. VBA - Similar Threads - VBA

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden