Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction Worksheet_change

  • Initiateur de la discussion Initiateur de la discussion remady
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

remady

XLDnaute Nouveau
Bonjour tout le monde,

Je suis confronté au problème suivant :

Dans cette fonction , je teste pour chaque itération les valeurs des cellules de la colonne B et C, et donc comme vous pouvez le voir si cette valeur est égale à "01/01/2000" , je ne lance pas l'appel de la fonction "Lesmoteurs".
Je voudrais faire en sorte que si pour une itération la valeur est de "01/01/2000", de tester l'itération suivante sans quitter completement la fonction avec un exit sub, y a-t-il donc une instruction qui permettrait de faire ca ?

Code:
Dim i As Long
For i = 1 To 13
If Range("B" & i + 1).Value = "01/01/2000" Or Range("C" & i + 1).Value = "01/01/2000" Then
"-----" Instruction pour passer à l'itération suivante
Else
If Not Intersect(Target, Range("B" & i + 1 & ":C" & i + 1)) Is Nothing Then
Feuil14.LesMoteurs i
On Error Resume Next
End If
End If
Next i
End Sub

La solution peut etre simple, et je suis desolé d'ouvrir un post pour ca mais je n'arrive pas à trouver une solution.
Merci de votre aide
 
Re : Fonction Worksheet_change

Bonjour Remady,

Si tu veux tu peux utiliser la fonction : Goto

Ce qui dans ton cas donnerais ceci :

Code:
Dim i As Long

For i = 1 To 13
   If Range("B" & i + 1).Value = "01/01/2000" Or Range("C" & i + 1).Value = "01/01/2000" Then
   [COLOR="blue"][B]   Goto AllezLaBas[/B][/COLOR]
   Else
       If Not Intersect(Target, Range("B" & i + 1 & ":C" & i + 1)) Is Nothing Then
          Feuil14.LesMoteurs i
          On Error Resume Next
       End If
   End If

   [COLOR="Red"][B]AllezLaBas:[/B][/COLOR]

Next i

End Sub

J'ai placé AllezLaBas: a cette endroit par hasard, mais tu peux très bien le placer où tu veux.

Bonne après midi

PS. : pense à faire des retraits de lignes pour rendre ton code plus clair 😉
 
Dernière édition:
Re : Fonction Worksheet_change

Bonjour Remady, Excel-Lent

comprends pas trop, puisqu'à priori tu testes déjà la ligne suivante dans ta boucle...

Code:
If Range("B" & i[COLOR="Red"][B] + 1[/B][/COLOR]).Value

bon après midi
@+
 
Re : Fonction Worksheet_change

Bonjour à tous
Sans étiquette...
Code:
[COLOR="DarkSlateGray"][B][COLOR="SeaGreen"]' ...[/COLOR]
   For i = 2 To 14
      If Range("B" & i).Value <> "01/01/2000" And Range("C" & i).Value <> "01/01/2000" Then
         If Not Intersect(Target, Range("B" & i & ":C" & i)) Is Nothing Then
            Feuil14.LesMoteurs i - 1
         End If
      End If
   Next i
[COLOR="SeaGreen"]' ...[/COLOR][/B][/COLOR]
ROGER2327
#3964


Vendredi 13 Tatane 137 (Saint Dada, prophète, SQ)
8 Thermidor An CCXVIII
2010-W30-1T12:19:34Z
 
Re : Fonction Worksheet_change

Re, Merci pour vos réponses

ROGER2327 : ta solution marche parfaitement, ma fonction de calcul ne se lance que si les valeurs des cellules sont differentes de "01/01/2000", et c'est ce que je voulais faire des le départ, je n'ai peut etre pas été assez explicite.
Excel-lent: ta proposition fonctionne aussi très bien .

Merci encore une fois .

Bonne fin de journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
5
Affichages
719
Réponses
9
Affichages
410
Réponses
8
Affichages
276
Réponses
2
Affichages
432
Réponses
5
Affichages
491
Réponses
10
Affichages
539
Réponses
8
Affichages
656
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…