Suppression de ligne synchronisée

Bonjour,

J'ai une souci, je voudrais créer une macro qui fait ceci et je ne sais pas comment faire :

  • lorsque l'utilisateur supprime ou ajoute une ligne dans l'onglet Feuil1, la même ligne est supprimée ou ajoutée dans l'onglet Feuil2
  • Petit plus : si la cellule Ai de l'onglet Feuil2 n'est pas vide, rien ne s'ajoute ou ne se supprime et on a Msgbox("impossible") ou qqch du genre
  • Pourriez vous aussi me préciser où je dois mettre cette macro (dans quelle feuille ou module)

Voilà, merci à ceux qui essayeront de m'aider !!

Bon alors juste une msgbox qui apparaît quand une ligne est supprimée (ou ajoutée si possible) ca me suffirait !

Bonjour,

Procédure à essayer, à mettre dans le module de Feuil1.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim tm&, iR&, nR%, i%, ws As Worksheet
    If IsNumeric(Replace(Target.Address(False, False), ":", "")) Then
        Set ws = Worksheets("Feuil3")
        Application.EnableEvents = False
        On Error Resume Next
        tm = WorksheetFunction.Match("témoin", Me.Columns(1), 0)
        If Err.Number <> 0 Then
            Err.Clear
            Application.Undo
            Me.Cells(100000, 1) = "témoin"
            Application.EnableEvents = True
            Exit Sub
        End If
        nR = 100000 - tm: iR = Target.Row
        For i = 1 To Abs(nR)
            If ws.Cells(iR + i - 1, 1) <> "" Then
                Application.Undo
                Application.EnableEvents = True
                MsgBox "Opération impossible.", vbCritical, "Opération non autorisée"
                Exit Sub
            End If
        Next i
        If nR < 0 Then
            For i = 1 To Abs(nR)
                ws.Rows(iR).Delete
            Next i
        ElseIf nR > 0 Then
            For i = 1 To nR
                ws.Rows(iR).Insert
            Next i
        End If
        Me.Cells(tm, 1).ClearContents
        Me.Cells(100000, 1) = "témoin"
        Application.EnableEvents = True
    End If
End Sub

Une fois collée dans le module. Le premier essai sera annulé : il faut un repère pour évaluer s'il s'agit d'une insertion ou d'une suppression, et tant qu'il n'est pas posé on ne peut évaluer et cela déclenche une erreur, mise à profit pour annuler l'opération et placé le repère qui pourra normalement jouer son rôle lors de l'essai suivant.

La procédure ne réagit qu'à l'insertion ou la suppression de lignes entières...

Cordialement.

Alors tout d'abord un grand merci à toi, on voit bien que tu maitrises parfaitement ton sujet ^^

Juste une petite remarque, lorsque je supprime une ligne dans la Feuil1 il m'insère une ligne dans la Feuil3 et inversement, quand j'insère une ligne la macro m'en supprime une dans la Feuil3, il faudrait juste faire l'inverse si possible

Il suffit d'inverser Insert et Delete, je m'impressionne moi même ! ^^

Encore merci pour ton travail MFerrand !!

Bravo ! bonne soirée.

Rechercher des sujets similaires à "suppression ligne synchronisee"