Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1444to1448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA-Code vereinfachen
26.08.2015 13:20:54
Pat132
Hallo zusammen,
ich möchte in diversen Zellen, die sich innerhalb einer Spalte immer im Abstand von 13 Zeilen befinden, bestimmte Daten mit einem SVerweis auslesen - und das per Knopfdruck. Dafür habe ich ein Makro aufgezeichnet, das den SVerweis in die jeweilige Formel einkopiert (und danach eine Wertkopie durchführt).
Funktioniert zwar, der Code ist aber verdammt lang geworden, da der Arbeitsschritt insgesamt 40 Zellen umfasst:

Range("M9").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC11,Steuertabelle!R5C75:R59C79,2,0),0)"
Range("M9").Select
Selection.Copy
Range("M22").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M35").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M48").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=27
Range("M61").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M74").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M87").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=9
Range("M100").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("M113").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=39
Range("M126").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
(...)
Gibt es eine Möglichkeit, diesen Code einfacher und kürzer darzustellen, so dass er später einfacher zu warten ist?
Dank und Gruß, Patrik

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code vereinfachen
26.08.2015 13:38:34
Daniel
Hi
aufgezeichneter Code bedarf immer der Überarbeitung.
Lies dir das hier mal durch:
http://www.online-excel.de/excel/singsel_vba.php?f=78
und überarbeite deinen Code entsprechend.
im Prinzip sollte man Makros nicht aufzeichnen, sondern selber gleich "richtig" schreiben und den Recorder nur dann verwenden, wenn man nicht weiss, wie die anzuwendende Excelfunktion in VBA korrekt formuliert wird.
(dh der Recorder ist kein Volltextübersetzter, sondern "nur" ein Wörterbuch)
ums kurz zusammenzufassen, was im obigen Link steht:
Das Arbeiten mit Select und Activate ist in VBA überflüssig und nicht notwendig.
der Recorder muss das mit aufzeichnen, weil wir als Mausschubser so arbeiten, aber in VBA kann man die Befehle direkt an das jeweilige Objekt anhängen, dh:
aus
Range("M9").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC11,Steuertabelle!R5C75:R59C79,2,0),0)"
Range("M9").Select
Selection.Copy
Range("M22").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wird
Range("M9").FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC11,Steuertabelle!R5C75:R59C79,2,0),0)"
Range("M9").Copy
Range("M22").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
mach das mal für den Code durchgängig, dann fallen einem weiter Optimierungsmassnahmen auch besser auf, weil der Code übersichtlicher und kürzer wird.
Gruß daniel

Anzeige
AW: VBA-Code vereinfachen
26.08.2015 13:59:53
Pat132
Hallo Daniel,
ich danke Dir für den wertvollen Hinweis. Tatsächlich kommt es manchmal vor, dass die Codes ohne Erklärung in den Select - Passagen aussteigen. Möglicherweise ist das ja auch hiermit heilbar!
also schönen Dank und beste Grüße! Patrik

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige