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

Forumthread: Nach jeder Spalte neue Spalte einfügen

Nach jeder Spalte neue Spalte einfügen
21.03.2014 18:34:55
Roland
Hallo,
ich habe hier in einer Tabelle eine rheie von Spalten. Ich möchte nun nach jeder Spalte eine neue Spalte einfügen. In der Tabelle sind ca 1000 Spalten ich würde das gerne per Makro löschen, leider weiß ich nicht wie.
Zusätzlich soll in der Neuen Spalte der Name der Zelle links davon übernommen werden
Bsp.
wenn ich in
D2 Gruppe x und in D3 Gruppen-ID stehen habe, dann soll in
E2 Gruppe x und in E3 Gruppen-ID stehen.
Ich bräucht also jeweils immer die Überschrieften der Inhalt danach also ab D4 und E4 usw. wäre irrelevant.
Zusätzlich soll in den neun Zeilen der Spalte ab z.b. D4 noch ein bestimmtes Drop-down menü erscheinen, mit JA / Nein, ist das über ein Makro realisierbar?

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach jeder Spalte neue Spalte einfügen
22.03.2014 20:57:00
Uwe
Hallo Roland
bestimmt nicht die flotteste Methode, aber mit meinen bescheidenen VBA Kenntnissen weiß ich es auf die Schnelle nicht besser.
Option Explicit
Sub Test()
Dim Spalte1 As String, Spalte2 As String, i As Long, LoSpa As Long
Application.ScreenUpdating = False
Spalte1 = "Gruppe x"
Spalte2 = "Gruppen-ID"
LoSpa = Cells(2, Columns.Count).End(xlToLeft).Column
For i = 1 To LoSpa
If Cells(2, i) = Spalte1 Or Cells(2, i) = Spalte2 Then
Cells(2, i + 1).EntireColumn.Insert
End If
Next
For i = 1 To LoSpa
If Cells(2, i) = "" Then
Cells(2, i) = Cells(2, i - 1)
End If
Next
Application.ScreenUpdating = True
End Sub
funktioniert aber, denke ich.
Gruß Uwe

Anzeige
AW: Nach jeder Spalte neue Spalte einfügen
22.03.2014 21:59:03
Uwe
sorry,
hatte irgendwie überlesen das Gruppe und Gruppen-ID in einer Spalte stehen. Evtl. ist das dann besser.
Sub Test()
Dim i As Long, LoSpa As Long
Application.ScreenUpdating = False
LoSpa = Cells(2, Columns.Count).End(xlToLeft).Column + 4
For i = 1 To LoSpa
If Cells(2, i)  "" Then Cells(2, i + 1).EntireColumn.Insert
Next
For i = 1 To LoSpa
If Cells(2, i) = "" Then Cells(2, i) = Cells(2, i - 1)
If Cells(3, i) = "" Then Cells(3, i) = Cells(3, i - 1)
Next
Application.ScreenUpdating = True
End Sub

Aber vllt findet sich ja hier noch ein Experte der sich deinem Problem annimmt.
Gruß Uwe

Anzeige
@Uwe: Nach jeder Spalte neue Spalte einfügen
23.03.2014 08:13:31
ChristianM
Hallo Uwe,
dein Code funktioniert so nur bei 4, bzw. 5 Spalten, da "LoSpa = ... + 4".
Tipp: durchlaufe die Spalten von rechts nach links, dann stimmt der Counter und du brauchst auch keine zweite Schleife zur Prüfung der leeren Zelle.
Option Explicit
Sub ColsAdd()
Dim j As Long
Dim lngLC As Long
Application.ScreenUpdating = False
With Sheets("Tabelle1")
lngLC = .Cells(2, .Columns.Count).End(xlToLeft).Column
For j = lngLC To 1 Step -1
.Columns(j + 1).Insert
.Cells(2, j + 1).Resize(2) = .Cells(2, j).Resize(2).Value
Next
End With
Application.ScreenUpdating = True
End Sub

Gruß
Christian

Anzeige
AW: @Uwe: Nach jeder Spalte neue Spalte einfügen
23.03.2014 15:56:11
Uwe
Danke Christian,
wie gesagt ich lerne noch.
Gruß Uwe

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Neue Spalten nach jeder bestehenden Spalte einfügen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nach jeder Spalte eine neue Spalte einzufügen, kannst Du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf „VBAProject (DeinDateiname)“ -> Einfügen -> Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub NeueSpaltenEinfügen()
       Dim i As Long, LoSpa As Long
       Application.ScreenUpdating = False
       LoSpa = Cells(2, Columns.Count).End(xlToLeft).Column
       For i = LoSpa To 1 Step -1
           Cells(2, i + 1).EntireColumn.Insert
           Cells(2, i + 1).Resize(2).Value = Cells(2, i).Resize(2).Value
       Next
       Application.ScreenUpdating = True
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und drücke ALT + F8, wähle NeueSpaltenEinfügen und klicke auf Ausführen.

Dieser Code fügt nach jeder existierenden Spalte eine neue Spalte ein und kopiert die Werte aus der Überschrift.


Häufige Fehler und Lösungen

  • Fehler: „Excel Spalte einfügen geht nicht“

    • Stelle sicher, dass Du die richtigen Berechtigungen hast und keine geschützten Bereiche in Deiner Tabelle vorhanden sind.
  • Lösung für leere Spalten:

    • Wenn Du durch leere Zellen in einer bestimmten Zeile nicht die gewünschten Ergebnisse erhältst, überprüfe den Code und stelle sicher, dass die korrekten Zellen referenziert werden.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch manuell neue Spalten einfügen:

  1. Markiere die Spalte, nach der Du eine neue Spalte einfügen möchtest.
  2. Rechtsklicke und wähle Einfügen. Dies fügt eine neue leere Spalte ein.
  3. Wiederhole diesen Schritt für jede Spalte.

Für das Einfügen von leeren Spalten kannst Du auch die Funktion „Leere Spalte einfügen“ verwenden, um schneller zu arbeiten.


Praktische Beispiele

Hier ist ein Beispiel für das Einfügen von neuen Spalten in einer Pivot-Tabelle:

  1. Gehe zu Deiner Pivot-Tabelle.
  2. Füge neue Spalten hinzu, indem Du die obigen Schritte anwendest.
  3. Achte darauf, dass Du die Pivot-Tabelle nach dem Einfügen neuer Spalten aktualisierst.

Tipps für Profis

  • VBA zur Automatisierung: Nutze VBA, um das Einfügen von Spalten zu automatisieren, besonders wenn Du regelmäßig neue Spalten einfügen musst.
  • Erweiterte Funktionen: Erstelle Dropdown-Menüs in neuen Spalten, indem Du die Datenüberprüfung verwendest.

Hier ein Beispiel für ein Dropdown-Menü:

With Range("E4:E1000").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="JA,NEIN"
End With

FAQ: Häufige Fragen

1. Wie kann ich jede zweite Spalte in Excel einfügen? Du kannst die Schleife in deinem VBA-Code anpassen, um nur jede zweite Spalte zu berücksichtigen.

2. Wie füge ich eine leere Spalte in Excel ein? Klicke mit der rechten Maustaste auf die Spalte, nach der Du die leere Spalte einfügen möchtest, und wähle Einfügen.

3. Funktioniert das auch in Excel 365? Ja, die beschriebenen Methoden und VBA-Codes funktionieren in Excel 365 sowie in früheren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige