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

Makro für alle Arbeitsblätter

Makro für alle Arbeitsblätter
Basti
Guten Morgen zusammen,
am frühen Morgen macht VBA mal wieder nicht das, was ich möchte.
Folgendes Problem:
Ich habe ein Makro in einem Arbeitsblatt aufgezeichnet und möchte nun, dass dieses Makro in allen Arbeitsblättern ausgeführt wird. (Die Anzahl der Arbeitsblätter sind in mehreren Dateien verschieden).
Das Makro tut folgendes:
Es kopiert von dem ersten Arbeitsblatt ("Tabelle1") die Zeile 1. Diese soll in jedem Arbeitsblatt (z.B: Arbeitsblatt "AAA") in Spalte A transponiert eingefügt werden. Da aber schon Informationen in Spate A stehen muss vorher in jedem Arbeitsblatt die Spate A neu eingefügt werden.
Im zweiten Teil des Makros sollen neben jede Spalte in der Informationen stehen eine leere Spalte eingefügt werden. Die Anzahl der Spalten mit Informationen ist in den einzelnen Arbeitsblättern unterschiedlich.
Hier mein Makro:
Sheets("AAA").Select
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Sheets("Tabelle1").Select
Rows("1:1").Select
Selection.Copy

Diese Schritte soll er in jedem Arbeitsblatt ausführen:
Sheets("AAA").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Select
Range("I1").Activate
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight

Kann mit jemand helfen?!!!
Herzlichen Dank!
Basti

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro für alle Arbeitsblätter
27.08.2010 08:50:58
urmila
Hallo Basti,
ich gehe davon aus dass die Mappe "Tabelle1" die erste ist und es ab der 2. Mappe den Makro ausführen soll, demnach füge diesen Code ein.
Dim a
For a = 2 To Worksheets.Count
Sheets(a).Select
ActiveSheet.Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Select
Range("I1").Activate
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
Next
Lieben Gruß
Urmila
AW: Makro für alle Arbeitsblätter
27.08.2010 09:00:52
Basti
Hallo Urmila,
vielen Dank für deine Hilfe!
Tabelle 1 ist immer gleich und ab dem zweiten Arbeitsblatt soll das Makro ausgeführt werden.
Wenn ich es ausführe bleibt es leider immer in der 6. Zeile bei "Transpose" hängen.
Woran kann das liegen?
Danke!,
Basti
Anzeige
AW: Makro für alle Arbeitsblätter
27.08.2010 09:13:02
Klaus
Hallo Basti,
in deinem Code kommt ein "PASTE" vor, aber davr steht kein "COPY" ...
Was soll er den einfügen?
Grüße,
Klaus M.vdT.
PS: verzichte wann immer möglich auf select und activate. Statt
Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Select
Range("I1").Activate
Selection.Insert Shift:=xlToRight

geht es eleganter, schneller und kürzer per direkter Referenzierung
Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Insert Shift:=xlToRight
AW: Makro für alle Arbeitsblätter
27.08.2010 09:28:02
Basti
Halo Klaus,
vielen Dank für deine Hilfe!!
Ich habe noch zwei Probleme, dann läuft es rund:
1: Vor dem Einfügen der Daten in die Arbeitsblätter fügt er keine Spalte ein. Dadurch werden die Daten, die vorher in Spate A gestanden sind gelöscht. Alle versuche meinerseits ihm zu verklickern, dass er eine Spalte einfügen soll sind leider gescheitert.
Hier der Code:
Dim a
For a = 2 To Worksheets.Count
Sheets("Tabelle1").Select
Rows("1:1").Copy
Sheets(a).Select
ActiveSheet.Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True

2) beim zweiten Teil des Makros (Das einfügen zusätzlicher Spalten) brauche ich nur dort zusätzliche Spaten, wo bisher Daten stehen. (Meine Tabelle soll dann so aussehen: Daten - leer - Daten - leer - ...).
Leider unterscheidet sich die Anzahl der Spaten mit den Daten in den Arbeitsblättern.
Wie bekomme ich das abgefangen?
Hier der code:
Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Insert Shift:=xlToRight
Herzlichen Dank für deine Hilfe!
Basti
Anzeige
Beispieldatei?
27.08.2010 09:47:07
Klaus
Hallo Basti,
es ist leider mühselig, VBA Code blind zu schreiben und nicht testen zu können.
Kannst du eben eine Beispieldatei hochladen? Idealerweise mit einer händischen "Musterlösung", wie es nachher aussehen soll.
Grüße,
Klaus M.vdT.
AW: Makro für alle Arbeitsblätter
27.08.2010 09:15:49
urmila
Hallo Basti,
Klaus hat recht...hier der geänderte Code (bissi aufwendig aber sollte laufen)
Dim a
For a = 2 To Worksheets.Count
Sheets(a).Select
ActiveSheet.Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Sheets("Tabelle1").Select
Rows("1:1").Select
Selection.Copy
Sheets(a).Select
ActiveSheet.Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
ActiveSheet.Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Select
ActiveSheet.Range("I1").Activate
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
Next
LG
Urmila
Anzeige
ohne select AW: Makro für alle Arbeitsblätter
27.08.2010 09:21:36
Klaus
Hallo Urmila,
verzichte auf select und activate wann immer möglich.
Dim a
For a = 2 To Worksheets.Count
Sheets(a).Columns("A:A").Insert Shift:=xlToRight
Sheets("Tabelle1").Rows("1:1").Copy
with Sheets(a)
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
.Range("A:A,B:B,C:C,D:D,E:E,F:F,G:G,H:H,I:I").Insert Shift:=xlToRight
end with
Next

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige