Clever-Excel-Forum

Normale Version: Spalte per VBA einfügen und Formeln übernehmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich habe folgendes Makro.

Public Sub Worksheet_Change(ByVal Target As Range)
    Dim s, z
    s = 3: z = 2
    Do Until Cells(z, s) = "!!!"
        s = s + 1
    Loop
    If Cells(z, s - 1) <> "" Then
        'Spalte einfuegen
        ActiveSheet.Unprotect
        Columns(s).Select
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End If
End Sub


Dieses funktioniert super. Wenn ich in die Zelle neben den !!! was eintrage, wird eine neue Spalte hinzugefügt.  
Nun habe ich das Problem das es mir die Formeln von der Spalte links daneben nicht mit überträgt. Hier nur als Beispiel. In O3 steht drin =Summe(O4:O50). Wenn ich jetzt in O2 was eintrage wird die Spalte P eingefügt. Hier sollte nun in P3 drin stehen =Summe(P4:P50).

Hoffe ihr könnt mir weiter helfen?   Idea

Viele Grüße
Martin
Hallo

pronier es bitte mal mit diese Code vor dem Befehl "Sheet:Protect"      Range("O3").Copy Range("P3")    'Kopiert direkt in Zelle P3

mfg  Gast 123
(28.12.2020, 16:46)Gast 123 schrieb: [ -> ]Hallo

pronier es bitte mal mit diese Code vor dem Befehl "Sheet:Protect"      Range("O3").Copy Range("P3")    'Kopiert direkt in Zelle P3

mfg  Gast 123
 
Hallo Gast 123,
es funktioniert soweit. Doch wenn ich eine weiter Spalte einfüge wird die Formel nicht mehr mit übernommen.
Hallo Martin,
Private Sub Worksheet_Change(ByVal Target As Range)
With Target.Cells(1)
If .Row = 2 Then
If .Value = "!!!" Then
.Offset(0, 1).EntireColumn.Insert
.Offset(1, 0).Copy
.Offset(1, 1).PasteSpecial xlPasteFormulas
Application.CutCopyMode = False
End If
End If
End With
End Sub
Gruß Uwe
Hallo,
das funktioniert bei mir leider nicht. Wenn ich in die Zelle neben den !!! was eintrage wird keine neue Spalte vor den !!! erzeugt.

Edit: Ich habe jetzt bemerkt wenn ich !!! eintrage wird eine neue Spalte erzeugt und auch die Formel kopiert. Ich möchte aber nicht !!! eintragen sondern egal was und es soll mir die Spalte erzeugt werden.
Hallo,
If .Value <> "" Then
Gruß Uwe
Hallo,
perfekt. Jetzt funktioniert es so wie gewollt. Sehr schön. Vielen Dank.   Xmas33


Einen guten Start ins Jahr 2021   Xmas27
Bitteschön, ich wünsche Dir auch ein gutes Neues Jahr!

Gruß Uwe