Boucle infernale, le retour

Spock

XLDnaute Occasionnel
Bonjour toutes et tous,

Je me suis posé la question suivante il y a quelque jours en faisant une macro pour Jean.

J'ai déjà posé cette question, mais je ne fut pas assé précis.

Donc, une boucle repart 'logiquement', mais s'arrete apres 188 boucles. Ceci me laisse perplexe.

Voici la macro que j'ai 'bidouillé' avec un 'x' pour sortir de la boucle. Ca marche donc nickel, mais malgré cela, et une intervention d'un super membre, je reste un peu sur ma faim.

Pour pas mourrir dingue, une idée ?

Un fichier joint. Le but de la macro est de comptabilisé les choix en A d'une zone de validation.



Public x



Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell <> Sheets('feuil1').Range('a1') Then Exit Sub
If x = 1 Then
x = 0
Exit Sub
End If
x = x + 1

Select Case Sheets('feuil1').Range('a1').Formula

Case 'Oui'
Sheets('feuil1').Range('g1') = Sheets('feuil1').Range('g1') + 1

Case 'Non'
Sheets('feuil1').Range('g2') = Sheets('feuil1').Range('g2') + 1

Case 'Sans réponse'
Sheets('feuil1').Range('g3') = Sheets('feuil1').Range('g3') + 1

If x = 1 Then
x = 0
Exit Sub
End If
End Select

End Sub

[file name=validation_20050725200035.zip size=7271]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/validation_20050725200035.zip[/file]
 

Pièces jointes

  • validation_20050725200035.zip
    7.1 KB · Affichages: 12

Hellboy

XLDnaute Accro
Bonjour spock, Bebere

Je ne suis pas sur de comprendre quel est la condition qui fais que tu veux sortir de la boucle. Je ne vois pas le 188. Pas clair.

Mais je prend une chance avec ceci:
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets('feuil1')
If Target <> x Then Exit Sub
&nbsp; &nbsp;
Select Case .Range('a1').Formula
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Oui'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Range('g1') = .Range('g1') + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Non'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Range('g2') = .Range('g2') + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Sans réponse'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Range('g3') = .Range('g3') + 1
&nbsp; &nbsp;
End Select
End With
x = Range('a1')
End Sub
 

Hellboy

XLDnaute Accro
re spock

J'ai compris plustard ce que tu voulais dire par le 188. Je ne suis pas sur de savoir pourquoi ça fait ça, mais je crois que cela a avoir avec l'ensemble des cellules comprisent dans la plage et le nombre de combinaison que le changement peut apporter. Mias seulement qu'un guess.
Donc je t'envoie une modif qui elle va fonctionner comme il faut.

Public x As Variant


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 7 Then
With Sheets('feuil1')
&nbsp; &nbsp;
Select Case x
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case Is = Target
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit Sub
&nbsp; &nbsp;
Case Else
&nbsp; &nbsp; &nbsp; &nbsp;
Select Case .Range('a1').Formula
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Oui'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Range('g1').Formula = .Range('g1').Formula + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Non'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Range('g2').Formula = .Range('g2').Formula + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Case 'Sans réponse'
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Range('g3').Formula = .Range('g3').Formula + 1
&nbsp; &nbsp; &nbsp; &nbsp;
End Select
&nbsp; &nbsp;
End Select
End With
x = Range('a1')
End If
End Sub

a+
 

Spock

XLDnaute Occasionnel
Hellboy écrit:
re spock

J'ai compris plustard ce que tu voulais dire par le 188. Je ne suis pas sur de savoir pourquoi ça fait ça, mais je crois que cela a avoir avec l'ensemble des cellules comprisent dans la plage et le nombre de combinaison que le changement peut apporter.

a+

Bonjour tout le monde :

Hellboy,

Voilà une piste interressante.
Je vais essayer de compter toutes les combinaisons possible.

Merci,
 

Statistiques des forums

Discussions
312 792
Messages
2 092 143
Membres
105 235
dernier inscrit
loisipubm