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

Code Makro

Forumthread: Code Makro

Code Makro
05.05.2023 08:53:04
Peter

Hallo zusammen,

kann man diesen Code verkleinern ?

Sub Makro
Columns("C:C").Select
Selection.Copy
Sheets("Tabelle2").Select
ActiveSheet.Paste
Sheets("SpreadSheet").Select
Columns("D:D").Select
Application.CutCopyMode = False
Selection.Copy
Range("C44").Select
Sheets("Tabelle2").Select
Columns("B:B").Select
ActiveSheet.Paste
Sheets("SpreadSheet").Select
Columns("F:F").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Columns("D:D").Select
ActiveSheet.Paste
Sheets("SpreadSheet").Select
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Columns("C:C").Select
ActiveSheet.Paste
Sheets("SpreadSheet").Select
Columns("G:G").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Columns("E:E").Select
ActiveSheet.Paste
Sheets("SpreadSheet").Select
Columns("J:J").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Columns("F:F").Select
ActiveSheet.Paste
Sheets("SpreadSheet").Select
Columns("L:L").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Tabelle2").Select
Columns("G:G").Select
ActiveSheet.Paste
Range("I4").Select
Columns("D:D").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Columns("G:G").Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("G1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(10, 1)), TrailingMinusNumbers:=True
Columns("H:H").Select
Selection.ClearContents
Range("H1").Select
ActiveCell.FormulaR1C1 = "Bereich"
Range("H2").Select

End Sub

Danke

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code Makro
05.05.2023 09:15:36
Daniel
ja klar.
arbeiten in VBA läuft immer so ab, dass man eine Objekt auswählt (z. B´ die Spalte C) und dann mit diesem Objekt einen Befehl ausführt.
Bespiel:
Objekt: Spalte C / Range("C:C")
Befehl: Kopieren / .Copy

wenn wir mit der Maus arbeiten, müssen wir zuerst das Objekt auswählen und danach den Befehl, den wir dann auf die Auswahl anwenden, und das zeichnet der Recorder auch so auf, in Form des .Select / Selection.
Dies ist im Makro aber nicht notwendig, wir können im Code auch immer den Befehl direkt an das Objekt hängen, also aus
Range("C:C").Select
Selection.Copy
wird die eine Zeile
Range("C:C").Copy
wenn wir jetzt mehrere Tabellenblätter haben, können wir auch immer das Tabellenblatt direkt vor die Range setzen.
Damit kann das Selektieren des Tabellenblatts entfallen und wir sehen immer auf welchem Blatt wir gerade arbeiten.
Also aus
Sheets("SpreadSheet").Select
Columns("D:D").Select
Application.CutCopyMode = False
Selection.Copy
wird dann
Sheets("SpreadSheet").Columns("D:D").Copy
(das Application.CutCopymode = false kannst du in den meisten Fällen auch löschen, das braucht man nur in ausnahmefällen.)

das Prinzip kannst du eigentlich immer anwenden.

eine besonderheit gibts noch beim Einfügen (Paste)
hier solltest du nicht das allgemeine Paste (Einfügen) verwenden, sondern das Excelspezifische Inhalte Einfügen / PasteSpecial (das Paste braucht man nur , wenn man Bilder einfügen will)

ein Kopieren und einfügen sieht dann so aus:
aus
Sheets("SpreadSheet").Select
Columns("D:D").Select
Application.CutCopyMode = False
Selection.Copy
Range("C44").Select
Sheets("Tabelle2").Select
Columns("B:B").Select
ActiveSheet.Paste
wird
Sheets("SpreadSheet").Columns("D:D").Copy
Sheets("Tabelle2").Columns("B:B").PasteSpecial xlpasteall
bei xlpasteall kann man sogar einen Einzeiler daraus machen:
Sheets("SpreadSheet").Columns("D:D").Copy Destination:=Sheets("Tabelle2").Columns("B:B")
Gruß Daniel

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige