Probleme Worksheet_Change

Bonjour à tous,

J'ai un problème lors de l'utilisation de plusieurs boucles imbriquées.

Je veux réaffecter une valeure (SO, OK, NOK) en fonction du choix fait de l'utilisateur sur les liste de validation que j'ai fait aussi.

De manière générale, je n'ai pas de problème, sauf dans le cas ou lorsque je change une de mes valeurs, ma valeur résultat est changé aussi. A ce moment la j'ai un problème lors de ma recherche.

J'ai passé mon après midi a essayer de résoudre le problème et j'en suis toujours au même point alors je fais appel a vous.

Donc si quelqu'un pouvait me donner un petit coup de main, je lui serait très reconnaissant. (j'ai essayé de mettre un if error on next)

J'ai le code Suivant :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range("C4:C200")) Is Nothing And Target.Count = 1 Then

Recherche = "Reporter le résultat de l'essai"

Set Champ = [B1 : B300]

Set Coup = Champ.Find(Recherche, LookIn:=xlValues) ====> excel me définit l'erreur ici

If Coup Is Nothing Then

Test0 = ""

Else

Valeur_ligne = Coup.Row

End If

a = 0

b = 0

For i = 4 To Valeur_ligne - 1

If Cells(i, 3) = "SO" Then

a = a + 1

End If

If Cells(i, 3) = "nok" Then

b = b + 1

End If

Next i

If a >= 1 Then

Cells(Valeur_ligne, 3) = "SO"

ElseIf b >= 1 Then

Cells(Valeur_ligne, 3) = "nok"

ElseIf a = 0 And b = 0 Then

Cells(Valeur_ligne, 3) = "ok"

End If

End If

End Sub

9classeur1.xlsm (20.56 Ko)

Bonjour

Peux tu expliquer comment tu as cette erreur

Moi je rajouterais

Set Coup = Champ.Find(Recherche, LookIn:=xlValues, lookat:=xlPart)

Juste au cas ou avant il y avait une recherche sur la totalité de la cellule

Bonjour,

banzai : ça a été ma première idée... sauf que chez moi ça ne passe pas ! (l'objet invoqué s'est déconnecté...)

j'ai essayé :

...
 'Set Champ = [B1:B300]
Set Coup = Range("B1:B300").Find(Recherche, LookIn:=xlValues)
...

et là ça passe. Je n'ai pas poursuivi plus loin l'analyse.

A+

Bonjour

Avec 2003 pas de souci, sauf celui invoqué plus haut

Donc c'est juste 2010 qui fait des difficultés

Je laisse la place

Bonjour,

Déja merci de vos réponses.

Galopin01, j'ai déja essayé ta solution mais mon problème reste toujours le même.

En fait je pense que mon problème vient du fait que lorsque je fais une modification, un deuxième changement de valeur se provoque, ce qui provoque un relancement de la boucle. En effet tant que je ne mets pas en place le "changement de la valeur 2" tout le programme se déroule normalement.

En tout cas merci à vous de votre aide.

Edouard

Quelqu'un aurait-il une autre idée afin de m'aider?

Bonjour,

Essaie :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Count = 1 And Not Intersect(Target, Range("C4:C200")) Is Nothing Then

Recherche = "Reporter le résultat de l'essai"

Set Champ = [B1 : B300]

Set Coup = Champ.Find(Recherche, LookIn:=xlValues)

If Coup Is Nothing Then

Test0 = ""

Else

Valeur_ligne = Coup.Row

End If

a = 0

b = 0

For i = 4 To Valeur_ligne - 1

If Cells(i, 3) = "SO" Then

a = a + 1

End If

If Cells(i, 3) = "nok" Then

b = b + 1

End If

Next i

[b]On Error Goto GESTERR

Application.EnableEvents = False[/b]

If a >= 1 Then

Cells(Valeur_ligne, 3) = "SO"

ElseIf b >= 1 Then

Cells(Valeur_ligne, 3) = "nok"

ElseIf a = 0 And b = 0 Then

Cells(Valeur_ligne, 3) = "ok"

End If

[b]Application.EnableEvents = True

End If

Exit Sub

GESTERR:

Application.EnableEvents = True[/b]

End Sub

A+

Merci beaucoup Galopin01 de cette réponse, elle a l'air de fonctionner à la perfection!!!

Merci encore et bonne fin de journée!

Rechercher des sujets similaires à "probleme worksheet change"