ATHE RIOVELI
XLDnaute Occasionnel
Bonsoir à tous,
je souhaite une correction pour mon code.
Lorsque je met une donne en B3, et que je valide, je souhaite une insertion de ligne automatique. La cellule La ligne ou se trouve EFFECTIF doit aussi décaler vers le bas.
Voici ici le code et le fichier :
je souhaite une correction pour mon code.
Lorsque je met une donne en B3, et que je valide, je souhaite une insertion de ligne automatique. La cellule La ligne ou se trouve EFFECTIF doit aussi décaler vers le bas.
Voici ici le code et le fichier :
VB:
Option Explicit
Dim flag1 As Boolean ' Déclaration de flag1
Private Sub Worksheet_Change(ByVal Target As Range)
If flag1 Or ListObjects.Count = 0 Then Exit Sub
flag1 = True 'pour bloquer la macro
Dim br As Range, r As Range, P As Range
Set br = ListObjects(1).DataBodyRange
'---Décale les moyennes en fonction de la ligne EFFECTIF---
If br.Rows(br.Rows.Count).Row + 1 = [EFFECTIF].Row Then
[EFFECTIF].EntireRow.Insert
[EFFECTIF].EntireRow(0).Clear 'efface la ligne précédente
End If
'---Efface les doublons dans la colonne A---
Set P = Intersect(Target, br.Columns(1))
If Not P Is Nothing Then
For Each r In P
If Application.CountIf(br.Columns(1).Offset(1), r) > 1 Then
r.Select
MsgBox "Doublon !", vbExclamation
r.ClearContents
End If
Next
End If
'---Suppression des lignes des noms effacés dans la colonne A---
On Error Resume Next
br.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
flag1 = False
End Sub
Pièces jointes
Dernière modification par un modérateur: