Hallo,
das geht doch viel einfacher per Formel (z. B. SVERWEIS oder VERGLEICH mit INDEX).Falls das nicht möglich ist, solltest Du Dich fragen, ob der Aufbau der Daten/Datei sinnvoll ist.
Meine Anmerkungen zu Deinem Code:
- Du kopierst mit ZielZell.Copy den Inhalt der aktiven Zelle in die Zwischenablage, fügst das aber nirgends ein. Das ist somit überflüssig und kann weg
- Du weist der Variablen ZielWert einen Wert zu (wieder den gleichen) und verwendest die Variable danach nicht mehr. Auch überflüssig und kann weg
- Du musst Arbeitsmappen/Blätter etc. nicht aktivieren um damit arbeiten zu können. Diese Objekte kann man referenzieren und dann mit der Referenz arbeiten
- Bei ActiveCell zu starten ist nicht sehr sinnvoll, da das Makro stur von der gerade ausgewählten Zelle arbeitet, ob es sinn macht oder nicht. Hier sollte man sich einen festen Bezugspunkt suchen
- Auch den zu durchsuchenden Bereich würde ich mit einer For ... Next Schleife abarbeiten und das Ende entsprechend vorab dynamisch bestimmen oder noch besser fix hinterlegen (wenn variabel z. B. über einen definierten Namen).
-Copy und Paste ist langsam. Da Du sowieso nur Werte einfügst, kannst Du die Werte auch einfach übergeben indem Du ReferenzZurZielZelle.Value = ReferenzZurQuellZelle.Value schreibst
Allerdings kann man Dir beim Code nur schlecht helfen, da nicht bekannt ist, in welcher Spalte die Werte gesucht werden (ist ja die aktive Zelle, wer weiß schon wo die ist außer Du).
Gruß
Michael
|