Bonjour à tous,

Je travaille sur un fichier dans lequel on ne doit pas modifier certaines colonnes dans certains cas

Je m'explique,

Colonne 6, on a un statut, "Expédié", "En-cours" Etc
Colonne 19 est renseigné "Localisation si livré"
Colonne 23 est renseigné "Localisation si dans l'en-cours"

J'aimerais que si le statut n'est pas le bon, alors on ne peut pas modifier la colonne concernée.

Exemple, si colonne 6 on a pas "Expédié", alors on ne peut pas remplir (pour la même ligne), la colonne 19
J'avais commencé mais ça ne fonctionne pas :


dans WorkSheet_Change
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
dim ok as boolean
 
    If Not Intersect(Target, Range("S4:S10000")) Is Nothing Then
        If ok = True Then Exit Sub
        If Cells(Target.Row, 6) <> "Expédié" Then
            MsgBox ("Le statut colonne F n'est pas Expédié, vous ne pouvez donc pas remplir cette colonne")
            Cells(Target.Row, 19) = ""
            Target.Value = Target.Offset(0, -10).Value
            ok = True
        End If
    End If
ok = False
End Sub
Je pense que le problème vient du fait que je ne maîtrise absolument pas l'outil "Target"

En gros le MsgBox s'affiche à l'infini je suis obligé de forcer l'arrêt.

Je ne comprend pas et ça devient lassant...
J'aimerais que si l'on modifie la cellule alors :
1- le MsgBox s'affiche
2- Le contenu est effacé
3- le curseur est renvoyé sur la cellule (ligne target.row, colonne 6)

PS: il ne faut pas que ça s'enclenche à la séléction (ça j'avais réussi à le faire), mais bien à la modification...

Je vous remercie d'avance et j'espère sincèrement que c'est possible et que vous me sauverez...

Cordialement,