Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spalte per VBA einfügen und Formeln übernehmen
#1
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
Antworten Top
#2
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
Antworten Top
#3
(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.
Antworten Top
#4
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
Antworten Top
#5
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.
Antworten Top
#6
Hallo,
If .Value <> "" Then
Gruß Uwe
Antworten Top
#7
Hallo,
perfekt. Jetzt funktioniert es so wie gewollt. Sehr schön. Vielen Dank.   Xmas33


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

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste