Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige