Frage von Katjes1982, 36

Habe eine Exceltabelle. In den Spalten K bis x (Variabel) stehen Informationen. Ich möchte Hinter jeden Spalte eine leere Spalte per VBA einfügen.?

Ums ausführlicher zu Bescheiben: in den Spalten stehen Zeiträume. Diese will ich per Makro "Text in Spalten" trennen. Da ich dann jedoch die Folgespalte überschreibe, will ichv orab leere Spalten einfügen um das zu umgehen. Vielleicht gibt es hier ja auch sauberere Lösungen.

Vorab lieben Dank!!

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 19
Sub SpaltenEinfuegen()
  Const K = 11
  Dim i, x As Integer
  x = 20: If x < K Then Exit Sub
  Application.CutCopyMode = False
  For i = K + 1 To 2 * x - K + 1 Step 2 
    Columns(i).Insert Shift:=xlToLeft
  Next
End Sub

Die meisten Befehle kriegt man mit dem Makrorekorder heraus. Nur das mit dem Laufindex war etwas Fummelarbeit.

Im Code wird von Spalte K bis Spalte x hinter jeder Spalte eine weitere, leere Spalte eingefügt.

x kannst du dir mittels Range() aus den Sheet noch lesen.

Kommentar von Katjes1982 ,

Hey,

vielen vielen vielen Dank!! Klasse!!
Ja mit dem Makrorekorder habe ich "Text in Spalten" schon umgesetzt, nur eben das Problem mit dem Überschreiben der Folgespalte gehabt... daher wollte ich es auf den Weg lösen.

Und was soll ich sagen? Klappt EINWANDFREI :)

Danke nochmal!

Kommentar von Suboptimierer ,

Prima! Bitteschön!

Kommentar von PWolff ,

Bei Löschungen und Einfügungen, die sich auf einen Index beziehen, lasse ich den Index grundsätzlich von oben nach unten laufen ("Step -1" bzw. "i--"), dann habe ich keine Probleme damit, dass sich die folgenden Indizes während der Schleifenabarbeitung ändern.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten