Vorweg: Dieses Forum hat mir schon bei vielen Problemchen und Problemen weiter geholfen und da meine Kenntnisse in Excel und Excel-VBA auf try&error aufbauen kommen da schon ein paar zusammen ;) ...dafür schon mal Danke!
Nun habe ich ein vermutlich größeres Problem:
Ich bekomme täglich eine Exceldatei von einem Programm. In dieser Datei sind grob 38.000 Artikel eingetragen. Ein Artikel pro Zeile und 184 Spalten mit Informationen.
Diese Datei lasse ich von einer anderen Exceldatei mittels Makro stark einkürzen auf ca. 8.000 Artikel und ca. 20 Spalten. Mit dieser Datei ("Name2") arbeite ich täglich.
Nun möchte ich von einer weiteren Datei("Verwaltung") die Datei "Name2" öffnen und alle Spalten außer denen mit dem gesuchten Wert ausblenden.
Wie folgt gelöst:
Öffnen:
With exneu 'New Excel Application
Set Name2 = .Workbooks.Open("Pfad mit Datei", UpdateLinks:=False, ReadOnly:=True, Password:=" _
Password")
.Visible = True
End With
Und dann das filtern:
Do While Z
..."Gesuchter Wert" entspringt als String einer Inputbox in Datei "Verwaltung"
...Artikel ist der Worksheet in Datei "Name 2"
Ja, der Code ist nicht vollständig, bei Bedarf reiche ich ihn nach.
Zur Erklärung:
Der Code prüft Zelle 5 der ersten Spalte auf den Wert "0" ist hier eine Null, kommt in den Spalten danach auch nix mehr. Wenn > "0" dann durchsucht der Code Spalte 5 bis 11 nach dem gesuchten Wert, ist dieser nicht gegeben, dann wird die Zeile ausgeblendet.
Zum Problem:
Mein Code funktioniert einwandfrei so lange ich die Artikel auf 100 begrenze. Hat dann auch optisch einen hübschen Effekt.
Ich möchte aber alle 8.000 Artikel durchlaufen und dafür ist diese Methode eindeutig nicht der richtige Weg.
Wo und wie muss ich neu ansetzen um die bestmögliche Geschwindigkeit zu erreichen ?
Ein Array? Wenn Ja, wie?
Für jeden Denkanstoß und wenn möglich mit Beispiel bin ich dankbar.
Grüße,
RG