Spalten Vergleichen mit Excel VBA?

... komplette Frage anzeigen

4 Antworten

Das geht m.E. auch viel einfacher:

Sind in Loginv!B:B keine Doppel, dann daneben in Zeile 1 (SpalteC muss leer sein, ansonten neue Spalte C einfügen- kann später verschoben werden) die Fo:

=Zählenwenn(HSV!P:P;B1)

nach Eingabe der Formel Doppelklick aufs Ausfüllkästchen: die Fo wird runterkopiert, solange SpalteB gefüllt ist.

Formatierst Du die Spalte dann noch mit dem Bendef Format

0;[rot]-0;[Farbe7]▬

dann siehst du sofort, welche Werte noch in P:P fehlen

Enthält Spalte B:B Doppel, dann die Formel etwas erweitern:

=Wenn(Zählenwenn(B$1:B1;B1)>1;Zählenwenn(B:B;B1)&"-faches Auftreten";Zählenwenn(HSV!P:P;B1))

Dabei treten allerdings die Texte auf, wo Doppel daneben stehen.(alternativ Lücken).

Ist das das, was Du erreichen wolltest? [Makros nur in zwingenden Fällen verwenden, Du brauchst Typ .xlsm und ein Benutzer erhält Warnungen und traut sich die Datei vllt nicht öffnen, ausserdem sind die integrierten Formeln viel schneller!

Oder wolltest Du Übungsmaterial für Makros? Dann schreib das!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
27.11.2015, 11:25

Du kannst die Info bei Doppeln auch anders gestalten:

=Wenn(Zählenwenn(B$1:B1;B1)>1;Zählenwenn(B$1:B1;B1)&"-tes Auftreten";Zählenwenn(HSV!P:P;B1))

0

Könnte es an deiner Progressbar liegen?

Diese prüft ja nochmals, ob alle Werte passen und bei 3100 Werten könnte ich mir vorstellen, dass Excel dann streikt.

Hab es mal selber probiert mit 2000 Zeilen, Spalte A und B wurden beschriftet und Excel muss da schon bissl laden.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Minenfeld4
27.11.2015, 10:43

Hab es jetzt anders gelöst. Ich lese jetzt zuerst die Spalte B in Tabelle LogInv in ein Array. Dann die Spalte P in HSV und mach den Vergleich dann innerhalb der Arrays. Geht um ein vielfaches schneller!

Das mit der Progressbar funktioniert aber trotzdem nicht richtig.

Danke für die Antwort

0

Die könntest die Performance verbessern, wenn Du vor der For j= Schleife noch ein Worksheetsfunction.Countif einbaust. Wenn der Wert in der Zieltabelle nicht gefunden wird, dann muss die Schleife gar nicht durchlaufen werden.

Wenn ich nachher am Rechner bin, kann ich das konkreter beschreiben.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Minenfeld4
27.11.2015, 10:43

Habs anders gelöst.

Trotzdem Danke :)

0

Hallo

Speichere deine Datei mal als Excel Binärdatenblatt ab. Vielleicht hilf das, dass das Programm nicht immer abstürzt.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Minenfeld4
27.11.2015, 08:27

Leider nein, fast gleiches Problem.


0

Was möchtest Du wissen?