Bonjour,
@78Chris : J'ai vu quelques photos de cette rencontre. Si mes souvenirs sont bons, à part quelques uns, la majorité des personnes à Lyon n'étaient pas présentes à Rennes.
En général moi aussi, mais je n'ai pas réussi à la faire pour le tableau T_ANNULES dans le code de la feuille Clients malgré une déclaration en Public dans un module standard. A priori problème de portée
Cela m'a donné du fil à retordre ce truc là. je pensais qu'il y avait un bug sur la feuille. Puis je me suis hasardé à mentionner le nom de la feuille parce que le Range concerné fait partie d'une autre feuille (bizarre tout de même car le gestionnaire de noms sait de quelle feuille on parle) et... cela a fonctionné !
Finalement en supprimant le module 1 qui contient le code InitV, j'arrive à ce code ci-dessous
Private Sub Worksheet_Change(ByVal Target As Range)
With Range("t_Clients").ListObject
If Not Application.Intersect(Target, .ListColumns("STATUT").DataBodyRange) Is Nothing And Target.Rows.Count = 1 Then
'Declaration des variables
Dim y As ListRow, cellule As Range
Dim Lig As Long, Col As Long
Lig = Target.Row - .Range.Row
Col = Target.Column - .Range.Column + 1
Set cellule = .DataBodyRange.Cells(Lig, Col)
'Si la valeur dans la colonne STATUT est "ANNULE" alors on copie
If cellule = ("ANNULE") Or cellule = ("REFUSE") Then
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo Fin
'On copie/colle les donnees
Set y = Sheets("Annules").Range("T_ANNULES").ListObject.ListRows.Add
.ListRows(Lig).Range.Offset(0, 1).Resize(1, .Range.Columns.Count - 1).Copy
y.Range.Cells(1, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'On supprime la ligne
.ListRows(Lig).Delete
End If
Fin:
Application.EnableEvents = True
End If
End With
End Sub
J'ai laissé le Application.EnableEvents, bien que j'évite toujours cette instruction que je remplace par une variable Boolean ou de l'instruction Static