Clever-Excel-Forum

Normale Version: VBA: Spalte einfügen wenn Zelle =
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excel-Gurus,

ich brauche mal wieder kurz eure Hilfe und zwar möchte ich folgendes:

Wenn Zelle J2= "juli" dann Spalte K, M, O, Q, S und U hinzufügen.
Wenn Zelle J2= "august" dann Spalte M, O, Q, S und U hinzufügen.

Insofern möglich sollten diese hinzugefügten Spalten jeweils in Zeile 5 den Text "TEXT" stehen haben.

Kann mir hier jemand helfen?

Vielen Dank!!
Moin!
Erst einmal: Nö!

Zitat:Wenn Zelle J2= "juli" dann Spalte K, M, O, Q, S und U hinzufügen.

Wenn Zelle J2= "august" dann Spalte M, O, Q, S und U hinzufügen.


Die Spalten sind/waren bereits vorhanden.
Außerdem erschließt sich mir die Logik nicht wirklich …

Gruß Ralf
Hallo Ralf,

sorry, ich glaube ich habe mich bei meiner Erklärung nicht so ganz klar ausgedrückt.

Also die genannten Spalten sind bereits vorhanden, in der Tat, und sie sind auch befüllt. Jedoch hätte ich gerne, dass zwischen der befüllten Spalte J und K eine neue leere Spalte eingefügt wird.
Und in dieser leeren Spalte sollte dann in Zeile 5 der Text "TEXT" stehen.

Hoffe so ist es deutlicher.
Hallo,

in ein allgemeines Codemodul folgende Makros kopieren:
Code:
Sub TestJ2undEinfügen()
   If Range("J2").Value = "juli" Then
     EinfSpaltenListe "U", "S", "Q", "O", "M", "K"
   ElseIf Range("J2").Value = "august" Then
     EinfSpaltenListe "U", "S", "Q", "O", "M"
   End If
End Sub
Sub EinfSpaltenListe(ParamArray SpL() As Variant)
   Dim Sp As Variant
   For Each Sp In SpL
     Call EinfügenSpalte(Sp)
   Next Sp
End Sub
Sub EinfügenSpalte(Sp As Variant)
   With Columns(Sp)
     .Insert shift:=xlToRight, Copyorigin:=xlFormatFromLeftOrAbove
     .Cells(5).Offset(0, -1).Value = "TEXT"
   End With
End Sub

Sie können zB. über die Tastenkombination Alt+F8 aufgerufen wurden und zwar als Makro "TestJ2undEinfügen".