Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
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

ein Macro für alle Sheets

ein Macro für alle Sheets
21.04.2020 15:30:15
Florian
Hallo zusammen,
ich bin gerade dabei eine Datenbank aufzubauen in der meine Kollegen die für Sie wichtigen Infos pro Schicht und Tag hinterlegen sollen.
Ich habe mir schon mit dem Makro-Recorder und aus dem Netz ein Makro zusammengebastelt was aber leider nicht so richtig läuft. Ich hoffe Ihr könnt mir helfen, die Fehler zu finden.
Ich will mir Makro so gestaltet, dass es immer im ActiveSheet läuft und so für alle Worksheets geht, sonst werden es duzende Macros.
Unten habe ich das Makro mit den Aktionen „“ die es ausführen soll absatzweise hinterlegt.
Großen Dank im Voraus Florian
Sub Datenübertragung()
' Datenübertragung Makro
Sheet("Datenbank").Unprotect Password:="Test"
ActiveSheet.Unprotect Password:="Test"
„Blattschutz aufheben in aktiven Sheet und Sheet Datenbank“
ActiveSheet.Range("A34:CS34").Select
Selection.Copy
„Daten nach der Eingabe im aktiven Sheet auswählen und kopieren“
Sheets("Datenbank").Select
Range("A4:CS4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("4:4").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Select
„Daten in Sheet Datenbank Zeile 4 als reine Werte hinterlegen und eine neue Zeile in  _
Zeile 4  einfügen“
ActiveSheet.Range("A34:CS35").Select
Selection.Copy
„Daten im aktiven Sheet auswählen und kopieren“
Range("A35:CS36").Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False

„Daten im aktiven Sheet eine Zeile tiefer wieder als reine Werte einfügen“
Range("B2,B7:K10,A13:I17,J14:M17,A20:M28").Select
Range("A20").Activate
Selection.ClearContents
„Daten aus der Eingabemaske im aktiven Sheet entfernen“
ActiveSheet.Protect Password:="Test"
Worksheet("Datenbank").Protect Password:="Test"
„Blattschutz wieder herstellen in beiden Sheets“
End Sub

Es hakt immer bei den Einfügevorgängen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ein Macro für alle Sheets
21.04.2020 15:58:19
Daniel
Hi
1. vermeide die ganzen Selects
Statt

Range(...).select
Selection.Copy

Schreibt man
Range(...).Copy
Gleiches bei Paste Special, oder Insert.
Immer den Befehl direkt an den Zellbereich anhängen, ohne ihn zu selektieren.
2.Lösche alle "Sheet(...).Select"
3. dort wo das Aktive Blatt gemeint ist, braucht vor Range und Cells nichts stehen.
Dort wo du dich auf ein anderes immer gleiches Blatt bezieht, gibt man das Blatt vor dem Zellbezug an
Beispiel:

Sheets("Datenbank").Range("A4:CS4").PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Datenbank").Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Gruß Daniel
Anzeige
AW: ein Macro für alle Sheets
21.04.2020 16:25:55
Florian
Hi Daniel,
danke für die schnelle Info.
Meinst du das so?
Sub Datentest()
' Datenübertragung Makro
Worksheets("Datenbank").Unprotect Password:="Test"
ActiveSheet.Unprotect Password:="Test"
Range("A34:CS34").Copy
Sheets("Datenbank").Range("A4:CS4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,  _
SkipBlanks:=False, Transpose:=False
Rows("4:4").Select
Application.CutCopyMode = False
Sheets("Datenbank").Rows("4:4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A34:CS35").Copy
Range("A35:CS36").PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Range("B2,B7:K10,A13:I17,J14:M17,A20:M28;A20").ClearContents
ActiveSheet.Protect Password:="Test"
Worksheets("Datenbank").Protect Password:="Test"
End Sub

Ich habe es gleich umgesetzt und versucht auszuführen. Jetzt mekert er an Punkt
Range("A35:CS36").PasteSpecial Format:=3 und meint Fehler beim Kompielieren benanntes Argument nicht gefunden. Kannst du dazu eine Aussage treffen?
Gruß Florian
Anzeige
AW: ein Macro für alle Sheets
21.04.2020 19:16:39
Daniel
Hi
PasteSpecial ist das Inhalte_Einfügen aus dem Kontext Menü der Zelle.
Mach das Mal Von hand und zeichne mit dem Recorder auf, dann siehst du wie das Programmiert wird. Ein Blick in die Dokumentation zu diesem Befehl kann auch nicht schaden (F1).
Die Parameter die du hier zeigst, kenne ich so nicht. Da muss irgend was anderes eingefügt werden.
Gruß Daniel
AW: ein Macro für alle Sheets
22.04.2020 08:05:50
Florian
Hallo Daniel,
danke dir nochmals. Du hast mir gestern gut weitergeholfen.
Gruß Florian
AW: ein Macro für alle Sheets
23.04.2020 09:13:38
Florian
Hi Daniel,
danke für deinen Hinweis mit F1. Ich habe werde mich mit dem Debugger und der Doku beschäftigen.
Gruß Florian
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige