Erreur ?!

Fermé
nadnad13 Messages postés 22 Date d'inscription mardi 5 août 2014 Statut Membre Dernière intervention 7 août 2014 - 6 août 2014 à 18:01
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 - 6 août 2014 à 19:08
Bonjour,


J'ai un problème, Lorsque j'exécute le programme suivant :



For compteur = 1 To n
If Sheets(Feuil1).Cells(i, 4).Value = "Ecl" Then
Nb_depart_Ecl = Nb_depart_Ecl + 1
If Sheets(Feuil1).Cells(i, 4).Value = "PC" Then
Nb_depart_PC = Nb_depart_PC + 1
If Sheets(Feuil1).Cells(i, 4).Value = "Att Clim" Then
Nb_depart_CLIM = Nb_depart_CLIM + 1
If Sheets(Feuil1).Cells(i, 4).Value = "Att Plomb" Or Sheets(Feuil1).Cells(i, 4).Value = "Att secur" Or Sheets(Feuil1).Cells(i, 4).Value = "Att Div" Then
Nb_depart_ATT = Nb_depart_ATT + 1
i = i + 3
Next compteur

J'obtient un message d'erreur disant :

Erreur de compilation :
Next sans For


Alors que l'instruction For figure bel et bien dans le programme..

Merci d'avance.

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 6/08/2014 à 18:10
Bonjour,

Il manque les End If à chaque If ... Then

Il serait préférable de faire un Select Case puisque l'on teste une et une seule cellule dans la boucle.

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
0
nadnad13 Messages postés 22 Date d'inscription mardi 5 août 2014 Statut Membre Dernière intervention 7 août 2014
6 août 2014 à 18:21
Vous avez raison, merci beaucoup.

Une autre question, de quel type devrais-je déclarer "compteur" ??

Une fois encore, lorsque j'exécute, je reçois un msg d'erreur au niveau de :

Dim compteur As String

For compteur = 1 To n

Disant qu'il y a incompatibilité de type, sachant que mon n est déclaré as string !

Merci d'avance :)
0
nadnad13 Messages postés 22 Date d'inscription mardi 5 août 2014 Statut Membre Dernière intervention 7 août 2014
6 août 2014 à 18:24
C'est bon c'est résolu, merci beaucoup :)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
Modifié par Polux31 le 6/08/2014 à 18:48
Pour ceux qui passeront sur ce post:

Dim Compteur As Integer
Dim n As Integer
0
nadnad13 Messages postés 22 Date d'inscription mardi 5 août 2014 Statut Membre Dernière intervention 7 août 2014
6 août 2014 à 18:50
Oui c'est la modif que j'ai faite et ça a marché, merci beaucoup !

J'ai une autre question svp:

Supposant que j'aie déclaré une variable i que j'ai initialisé à 4 en dehors de la boucle for, et qu'en dedans de cette boucle figure l'instruction i = i + 3 par exemple; en sortant de cette boucle, est ce que i reprend sa valeur initiale ( = 4 ) où est ce qu'elle reçoit une nouvelle valeur dépendamment des modification que celle ci a subit dans la boucle ?

J'étais sure qu'elle changeait de valeur jusqu'à ce que j'obtienne des résultats erronés.. :/

Merci d'avance
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
6 août 2014 à 19:00
Si tu fais:

I = 4
For compteur = 1 To n
     '...
     i = i + 3
Next compteur


i sera incrémenté à chaque boucle. Si n = 4, i = 16 après le Next.
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
6 août 2014 à 19:08
Bonjour

Tu vas poser la question combien de fois 17h27 et 18h01
Suis ton sujet voir la réponse de CCM81
Cordialement
0