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

Forumthread: Makro Spalte einfügen

Makro Spalte einfügen
19.10.2006 08:33:01
Antje
Hallo!
Wenn ich in einem Tabellenblatt 1 eine Spalte einfüge, soll es automatisch in nachfolgenden Tabellenblättern 2, 3 und 4 auch an der gleichen Stelle eine Spalte einfügen.
Kann man hierfür ein Makro schreiben?
Danke
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Spalte einfügen
19.10.2006 08:53:21
lueckii
Hallo Antje!
Hier ein kleines Makro, daß in jedem Tabellenblatt eine Spaltze vor der Spalte B einfügt. Die Spalte wird immer vor der selektierten Spalte eingefügt. Möchtest du die neue Spalte z.B. vor der Spalte D, mußt du einfach im Makro
Columns ("B:B")
durch
Columns ("D"D")
ersetzen

Sub Makro3()
Dim i As Variant
For i = 1 To ActiveWorkbook.Sheets.Count
With ActiveWorkbook.Sheets(i)
.Activate
.Columns("B:B").Select
End With
Selection.Insert Shift:=xlToRight
Next i
End Sub

Gruß Martin
Anzeige
AW: Makro Spalte einfügen ohne Select
19.10.2006 09:12:33
Klaus
Hallo,

Sub SpaltenRein()
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(i).Columns("B:B").Insert Shift:=xlToRight
Next i
Application.ScreenUpdating = True
End Sub
Gruß
Klaus
Anzeige
AW: Makro Spalte einfügen
19.10.2006 18:04:46
Lueckii

Sub Makro3()
Hi Antje!
Hier das Makro für Zeilen. Wie bei Spalten, wird hier eine Zeile an der stelle 2 eingefügt.
Wahlweise kannst du auch das MAkro von Klaus nehmen. Mußt nur Columns durch row und B durch ne Zahl ersetzen
Dim i As Variant
For i = 1 To ActiveWorkbook.Sheets.Count
With ActiveWorkbook.Sheets(i)
.Activate
.Rows("2:2").Select
End With
Selection.Insert Shift:=xlToRight
Next i
End Sub

Gruß Martin
Anzeige
AW: Makro Spalte einfügen
19.10.2006 18:30:18
Antje
Hall Martin!
Danke für deine schnelle Antwort aber es wäre trotzdem super wenn die Spalte und Zeile nicht in allen Tabellenblättern sondern nur zum Beispiel in 3 Tabellenblättern von insgesamt 10 eingefügt wird.
AW: Makro Spalte einfügen
20.10.2006 13:29:27
Lueckii
Hallo Antje!
Das kannst du ganz leicht steuern indem du das i veränderst
Um die Zeile nur in den ersten drei Tabellenblättern einzufügen
einfach
Dim i As Variant
For i = 1 To 3
With ActiveWorkbook.Sheets(i)
.Activate
.Rows("2:2").Select
End With
Selection.Insert Shift:=xlToRight
Next i
End Sub
Für die Blätter 4 bis 8
For i = 4 To 8
und so weiter.
Gruß Martin
Anzeige
AW: Makro Spalte einfügen
19.10.2006 09:10:54
dieter(drummer)
Hallo Antje,
es geht auch ohne Makro.
Ativiere alle Tabellen, in denen eine Zelle an gleicher Stelle eingefügt werden soll.
Dann Zeile einfügen und schon ist in allen Tabellen an gleicher Stelle ein Zeile eingefügt. Wichtig ist, dass alle Tabellen natürlich gleich aufgebaut sind.
Gruß dieter(drummer)
Anzeige
AW: Makro Spalte einfügen
19.10.2006 17:51:22
Antje
Hab' das Makro ausprobiert und funktioniert auch.
Besteht jetzt noch die Möglichkeit es so anzupassen, dass nur in einigen Tabellenblättern diese Spalte eingefügt wird?
Und gibt es so ein Makro auch für das Einfügen von Zeilen?
Danke für eure Hilfe!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalte in Excel mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um eine Spalte mit VBA in Excel einzufügen, kannst du das folgende Makro verwenden. Dieses Beispiel fügt eine neue Spalte vor der Spalte B in allen Tabellenblättern ein:

Sub MakroSpalteEinfügen()
    Dim i As Variant
    For i = 1 To ActiveWorkbook.Sheets.Count
        With ActiveWorkbook.Sheets(i)
            .Columns("B:B").Insert Shift:=xlToRight
        End With
    Next i
End Sub

Wenn du die Spalte an einer anderen Stelle einfügen möchtest, passe einfach den Bereich in der Zeile .Columns("B:B").Insert an, z.B. für die Spalte D:

.Columns("D:D").Insert Shift:=xlToRight

Um die neue Spalte nur in bestimmten Blättern einzufügen, ändere die Schleife wie folgt:

For i = 1 To 3 ' Für die ersten drei Blätter

Häufige Fehler und Lösungen

  • Fehler: "Excel Spalte einfügen nicht möglich"

    • Stelle sicher, dass die Arbeitsmappe nicht schreibgeschützt ist und keine Filter aktiv sind.
  • Fehler bei der Aktivierung von Blättern

    • Wenn du .Activate verwendest, kann es zu Problemen kommen, wenn das Blatt nicht sichtbar ist. Versuche es ohne .Activate, wie im Beispiel von Klaus.
  • Das Makro funktioniert nicht

    • Überprüfe, ob du den richtigen Bereich für die Spalte angegeben hast. Achte darauf, dass der Spaltenname korrekt ist.

Alternative Methoden

Es gibt auch eine Möglichkeit, ohne VBA eine Spalte in mehreren Blättern gleichzeitig einzufügen. Aktiviere alle gewünschten Tabellenblätter, indem du mit gedrückter Strg-Taste auf die Blätter klickst, und füge dann die Spalte wie gewohnt ein. Dies funktioniert nur, wenn alle Tabellen gleich aufgebaut sind.


Praktische Beispiele

Hier sind einige praktische Beispiele zum Einfügen von Spalten:

  1. Einfügen in mehreren Blättern:

    Sub MehrereBlätterSpalteEinfügen()
       Dim i As Integer
       For i = 1 To 10 ' Für die ersten 10 Blätter
           ActiveWorkbook.Sheets(i).Columns("B:B").Insert Shift:=xlToRight
       Next i
    End Sub
  2. Neue Spalte benennen: Wenn du die neue Spalte benennen möchtest, kannst du es so machen:

    Sub SpalteEinfügenUndBenennen()
       Dim ws As Worksheet
       For Each ws In ActiveWorkbook.Sheets
           ws.Columns("B:B").Insert Shift:=xlToRight
           ws.Cells(1, 2).Value = "Neue Spalte"
       Next ws
    End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Performance zu verbessern, wenn du viele Spalten einfügst.
  • Speichere deine Arbeit regelmäßig, um Datenverlust zu vermeiden, besonders wenn du mit VBA arbeitest.
  • Teste dein Makro zunächst in einer Kopie deiner Arbeitsmappe, um sicherzustellen, dass es wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich eine Zeile anstelle einer Spalte einfügen? Verwende die Rows-Methode statt Columns, z.B. Rows("2:2").Insert.

2. Kann ich das Makro so anpassen, dass es nur in bestimmten Blättern funktioniert? Ja, passe die Schleife an, um nur die gewünschten Blätter auszuwählen, z.B. For i = 1 To 3 für die ersten drei Blätter.

3. Was ist der Unterschied zwischen .Select und .Activate? .Select wählt ein Objekt aus, während .Activate das Objekt in den Vordergrund bringt. Für die meisten Makros ist .Activate nicht unbedingt notwendig.

4. Wie kann ich mehrere Spalten gleichzeitig einfügen? Du kannst mehrere Spalten angeben: .Columns("B:C").Insert, um zwei Spalten auf einmal einzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige