Message d'erreur et blocage de la cellule

Bonjour à tous,

alors petite problématique du jour, j'ai un tableau dans lequel je peux choisir ma situation dans une liste déroulante, si ma situation est accidentelle (nomée "A") alors j'aimerai coter uniquement ma fréqence accidentelle et donc condamner les cellules de la fréquence normale.

Je m'explique mieux: en gros quand je choisi "A" dans ma colone situation, j'aimerai que les colonnes "fréquence" et "description de la fréquence" soient condamnées, et qu'un petit message d'erreur vienne apparaître. Et quand je choisi "N" ou "M", je voudrais que les colonnes fréquence accidentelle" et "description de la fréquence accidentelle" soient condamnées avec l'affichage d'un petit message d'erreur.

Pour mieux comprendre je vous transmet ci-joint un petit morceau de mon tableau.

Merci à tous pour vos réponses

6exemple.xlsx (13.76 Ko)

Bonjour,

à tester

9exemple.xlsm (19.35 Ko)

Super merci!

mais comment avez vous fait?

Bonjour,

regarde le code dans ThisWorkBook ou le code associé à ta feuille ... et si tu comprends pas poste le code incompris directement sur le forum on t'expliqueras cela ...

Bonjour,

voici le code: Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Cells(Target.Row, 1).Value = "A" And (Target.Column = 2 Or Target.Column = 3) Then

MsgBox ("colonne condamné")

Target.Value = ""

End If

If Cells(Target.Row, 1).Value <> "A" And (Target.Column = 4 Or Target.Column = 5) Then

MsgBox ("colonne condamné")

Target.Value = ""

End If

Application.EnableEvents = True

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

n'étant pas une grande spécialiste (pas une spécialiste dutout) je n'arrive pas à appliquer ce code à mon tableau. Est ce que vous pouvez m'expliquer un peu plus s'il vous plaît?

Bonjour,

voici le code commenté si vous avez encore des question n'hésiter pas =)

Private Sub Worksheet_Change(ByVal Target As Range) 'le code s'active lors qu'une cellule est modifier (nommé "Target")
Application.EnableEvents = False 'on déactive cette évenement car sinon cela devient une boucle infini (en gros sa plante excel)
If Cells(Target.Row, 1).Value = "A" And (Target.Column = 2 Or Target.Column = 3) Then 'si la valeur sur la colonne est égal à "A" ET que vous avez fait une modification sur la colonne "B" OU "C"
MsgBox ("colonne condamné") 'on annonce l'erreur
Target.Value = "" 'on supprime la valeur que vous avez saisie
End If
If Cells(Target.Row, 1).Value <> "A" And (Target.Column = 4 Or Target.Column = 5) Then 'si la valeur sur la colonne n'est pas égal à "A" ET que vous avez fait une modification sur la colonne "D" OU "E"
MsgBox ("colonne condamné") 'meme procésus
Target.Value = ""
End If
Application.EnableEvents = True 'on reactive l'évenement
End Sub

merci pour cette réponse

^^' et si je veux condamner uniquement la colonne B et non la B ou C

et uniquement la colone D et non la colone D ou E je fais comment? car j'ai essayé de supprimer dans les lignes:

If Cells(Target.Row, 1).Value = "A" And (Target.Column= 2 Or Target.Column=3) Then

Or Target Column=3

If Cells(Target.Row, 1).Value <> "A" And (Target.Column = 4 Or Target.Column = 5) Then

Or Target.Column = 5

mais je me rends compte qu'après ça ne marche plus

pour condamné une colonne , il faut modifier dans la condition :

If Cells(Target.Row, 1).Value = "A" And (Target.Column= 2 Or Target.Column=3) en francais (avec le code qui suive)

sa donne :

Cells(Target.Row, 1).Value = "A" = si la colonne A est égal à "A"

(Target.Column= 2 Or Target.Column=3) = on condamne la colonne 2 et 3 (si vous voulez seulement 2 ou seulement 3 il suffit de supprimer un peut le code

seulement colonne 2 exemeple

If Cells(Target.Row, 1).Value = "A" And Target.Column= 2 then

seulement colonne 3 exemple :

If Cells(Target.Row, 1).Value = "A" And Target.Column=3 then

ah oui ok merci

Rechercher des sujets similaires à "message erreur blocage"