Microsoft Excel

Herbers Excel/VBA-Archiv

Konflikt im VBA Code


Betrifft: Konflikt im VBA Code
von: Andre
Geschrieben am: 13.12.2018 12:35:35

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.

http://www.herber.de/bbs/user/126074.xlsm

Ich bin über jede Hilfe überaus Dankbar!

Mit freundlichen Grüßen
Andre


  

Betrifft: AW: Konflikt im VBA Code
von: onur
Geschrieben am: 13.12.2018 17:34:21

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 + 1).SpecialCells(xlCellTypeConstants).ClearContents
    End If
End Sub



  

Betrifft: AW: Konflikt im VBA Code
von: Andre
Geschrieben am: 18.12.2018 09:14:47

Hallo onur,

danke für deine Antwort! Es wird auch eine neue Zeile eingefügt aber dann kommt ein Fehler mit "die Paste Methode konnte nicht ausgeführt werden".
Dabei ist auch egal ob man den anderen Code auskommentiert oder nicht..

Grüße
Andre


  

Betrifft: AW: Konflikt im VBA Code
von: Hajo_Zi
Geschrieben am: 18.12.2018 16:50:37

Rows(z).Copy Cells(z + 1,1)
End If

GrußformelHomepage

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.