Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

VB6.0 / ExcelMacro: Zellwahl beschleunigen?

RyoOhki / 1 Antworten / Flachansicht Nickles

Ich habe Probleme mit einem Makro, das einer Tabelle mit Kundennamen und Servicenummern Vertragsdaten aus einem anderen Blatt zuweist. Zur indentifizierung kann ich nur den Kundennamen verwenden
Das Problem ist, das die Namen in beiden Tabellen nicht immer gleich geschrieben sind, weswegen ich keinen einfachen Vergleich ziehen kann, weshlab ich ein makro geschrieben, das die Namen ungefähr vergleicht. Das klappt so wunderbar, nur ist das Problem, dass die Tabelle, in die ich die Vertragsdaten mehrere 1000 Einträge lang ist.
Das Makrop geht diese Einträge der Reihe nach durch, sucht sich den Namen herraus und sucht diesen Namen dann aus der zweiten Tabelle mit den Vertragsdaten. Hat er den selben Namen gefunden, kopiert es die Vertragsdaten rüber in die erste Tabelle und fügt sie den namen bei.
Mein Problem ist, dass das Makro ab 300 Zeilen unerträglich langsam wird. Anhand dessen, wie ich die Schleifen gestaltet habe schätze ich, dass es an der anwahl der Zellen liegt (ich habe es mit "Cells(zellennummer).Select", "Cells(Spalte, Zeile)" oder per "ActiveCell.Offset" versucht, konnte jedoch leider keinen unterschied merken.
Ich werde das Makro in nächsater zeit wohl häufig brauchen, drum wäre ich wirklich dankbar, wenn vielleciht jemand eine Idee hat, wie ich die Sache beschleunigen könnte.

Die Schleife in der die Zelle angewählt und derWert eingetragen wird folg:

While Cells(Zeile1, 3) = Vollvergleich

ActiveCell.Offset(1, 0).Select
ActiveCell.FormulaR1C1 = Vertragsbeginn
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = Vertragsende
ActiveCell.Offset(0, -1).Select
Zeile1 = Zeile1 + 1

Wend

bei Antwort benachrichtigen