Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte zweier Spalten mit Zellenwert vergleichen

Werte zweier Spalten mit Zellenwert vergleichen
15.03.2017 08:30:24
hermann

Hallo,
Ich habe eine relativ umfangreiche Tabelle (ca. 35.000 Zeilen) in der ich 2 Werte einer Zeile mit einem Zellenwert vergleichen muss. Sollten beide Zellenwerte nicht übereinstimmen sollte die Zeile versteckt werden. Das VBA Programm funktioniert so weit, nur das Laufzeitverhalten ist unmöglich! Gibt es eine Optimierungsmöglichkeit für das VBA Programm?

Public Sub Auswahl1()
Dim i, x As Long
Dim Belegnummer As String
Application.ScreenUpdating = False
'Anzahl Datensätze ermitteln
i = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Sheets(1).Unprotect Password:="xxx"
'alle Zeilen einblenden
Range(Cells(6, 1), Cells(i, 10)).EntireRow.Hidden = False
'Falsche Zeilen ausblenden
For x = 6 To i
If Trim(Cells(x, 5).Value) <> Trim(Cells(2, 4).Value) And _
Trim(Cells(x, 6).Value) <> Trim(Cells(2, 4).Value) And Cells(2, 4).Value <> "" Then
Rows(x).EntireRow.Hidden = True
End If
Next
Sheets(1).Protect Password:="xxx"
Application.ScreenUpdating = True
End Sub
Hier der Screenshot zum Ergebnis:
Userbild
Danke im Voraus
Hermann

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter?
15.03.2017 09:00:26
Fennek
Hallo,
generell gilt, Operationen in Arrays sind ca. 40x schneller als im Arbeitsblatt.
Aber: kann man die Aufgabe nicht einfach mit Autofilter lösen? Das wäre sicher noch schneller.
mfg
AW: Werte zweier Spalten mit Zellenwert vergleichen
19.03.2017 08:21:34
Rolf.dW
Moin Hermann,
1. mit Dim i, x as Long definierst du nur "x" als LONG, "i" wird vom System her weiterhin als VARIANT deklariert. Richtig sollte es heißen: Dim i as Long, x as Long
2. mit ...cells(2, 4) greifst du auf eine "verbundene" Zelle zu. Mich wundert, dass dein Makro diesen Fehler ohne zu Murren verkraftet. Verbundene Zellen mögen zwar schön an zu schauen sein,
für VBA's sind sie aber meist tödlich.
3. Wozu dient in deinem Makro die Anweisung "Trim" ?
Gruß, Rolf

Anzeige

361 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige