Konflikt im VBA Code
08.01.2019 10:25:35
Andre
ich schreibe wegen einer Frage von mir aus letztem Jahr, leider bin ich nicht mehr dazu gekommen vorher zu antworten :(
Und Eure antworten haben an sich auch funktioniert aber halt immernoch nur wenn ich den geposteten Code auskommentiere.
Hier der Beitrag:
Hallo liebe Excel Experten,
ich arbeite jetzt schon eine Weile an einer Tabelle und stoße nun mal wieder an meine Grenzen.. :/
Ich will ermöglichen dass man mit einem Button Zeilen hinzufügen kann und die Formeln übernommen werden.
Es wird eine neue Zeile eingefügt aber die Formel wird nicht übernommen.
Nur wenn ich einen anderen Code auskommentiere, funktioniert es.
Welcher im Modul 4 enthalten ist und dazu beiträgt, dass eine Zelle die gesperrt ist farblich markiert wird mithilfe bedingter Formatierung über das Tabellenblatt.
Und ich weiß weder warum das so ist noch wie ich das beheben kann.
Code zum Zellen einfügen:
Sub ZelleEinfügen()
Dim lngReihe As Long
lngReihe = ActiveCell.Row
If lngReihe > 1 Then
Rows(lngReihe + 1).Insert
'Rows(lngReihe).AutoFill Rows(lngReihe).Resize(2), xlFillFormats
Range("I" & lngReihe).AutoFill Range("I" & lngReihe).Resize(2), xlFillDefault
Range("J" & lngReihe).AutoFill Range("J" & lngReihe).Resize(2), xlFillDefault
Range("O" & lngReihe).AutoFill Range("O" & lngReihe).Resize(2), xlFillDefault
End If
End Sub
Code der auskommentiert werden muss ( Modul 4):Function IstGesperrt(Optional Zelle As Range) As Boolean
If Zelle Is Nothing Then Set Zelle = Application.Caller
IstGesperrt = Zelle.Locked
End Function
Diese Funktion wird dann in Bedingter Formatierung aufgerufen.Das hat an sich auch bestens geklappt...
Anbei auch noch mal die Excel Datei. Dabei geht es eigentlich nur um das Blatt Angebot u Rechnung.
https://www.herber.de/bbs/user/126074.xlsm
Ich bin über jede Hilfe überaus Dankbar!
Mit freundlichen Grüßen
Andre
Antwort:
Warum denn immer so lange Variablen-Namen?
Sub ZelleEinfügen()
Dim z As Long
z = ActiveCell.Row
If lngReihe > 1 Then
Rows(z + 1).Insert
Rows(z).Copy
Cells(z + 1,1).Select
ActiveSheet.Paste
Rows(z).Copy Cells(z + 1,1)
End If
End Sub
Beitrag: https://www.herber.de/forum/archiv/1660to1664/t1662747.htm
Datei: https://www.herber.de/bbs/user/126074.xlsm