OVH Cloud OVH Cloud

Itération rebelle

2 réponses
Avatar
Christian.L
Bonjour à tous

Je vous soumet ma macro car je n'y comprend plus rien.
Lors du 1er test sur la condition "Total", le comptage des lignes s'effectue
normalement
et je ressort avec une valeur de compteur>0
Lors du 2eme test sur la condition "Total", alors que Cells(Ligne1, 25) et
NumChapitre
sont rigoureusement égaux VBA saute directement a la ligne suivant le Wend.
Cela fait plusieurs heures que je bute dessus sans rien comprendre

Merci d'avance de votre aide

----------------------------------------------------------------------------
----------
Sub AMT_Formules_Totaux()
Public i, j, Compteur, Controle As Integer
Public Ligne, Ligne1, NbChapitre As Integer
Public NumChapitre As Double

Ligne = 3

While Cells(Ligne, 1) <> "fin"
If Cells(Ligne, 5) = "Total" Then ' C'est une ligne de total
' Initialisation
NumChapitre = Cells(Ligne, 6)
Ligne1 = Ligne - 1
' Comptage des lignes du chapitre
While Cells(Ligne1, 25) = NumChapitre
Compteur = Compteur + 1
Ligne1 = Ligne1 - 1
Wend

.........Traitement

Compteur = 0
NumChapitre = 0
End If
Ligne = Ligne + 1
Wend

End Sub

2 réponses

Avatar
Denis
Bonjour,
c'est habituellement un problème d'initialisation de
variables. Compteur ne semble pas initialisé au premier
passage, et peut-être d'autres.

Denis
-----Message d'origine-----
Bonjour à tous

Je vous soumet ma macro car je n'y comprend plus rien.
Lors du 1er test sur la condition "Total", le comptage
des lignes s'effectue

normalement
et je ressort avec une valeur de compteur>0
Lors du 2eme test sur la condition "Total", alors que
Cells(Ligne1, 25) et

NumChapitre
sont rigoureusement égaux VBA saute directement a la
ligne suivant le Wend.

Cela fait plusieurs heures que je bute dessus sans rien
comprendre


Merci d'avance de votre aide

----------------------------------------------------------
------------------

----------
Sub AMT_Formules_Totaux()
Public i, j, Compteur, Controle As Integer
Public Ligne, Ligne1, NbChapitre As Integer
Public NumChapitre As Double

Ligne = 3

While Cells(Ligne, 1) <> "fin"
If Cells(Ligne, 5) = "Total" Then ' C'est une ligne de
total

' Initialisation
NumChapitre = Cells(Ligne, 6)
Ligne1 = Ligne - 1
' Comptage des lignes du chapitre
While Cells(Ligne1, 25) = NumChapitre
Compteur = Compteur + 1
Ligne1 = Ligne1 - 1
Wend

..........Traitement

Compteur = 0
NumChapitre = 0
End If
Ligne = Ligne + 1
Wend

End Sub

.



Avatar
Christian.L
Merci pour ta réponse Denis,

Mais cela n'explique pas pourquoi cela fonctionne au premier passage et pas
au second.

Mystère

C.L.


"Denis" a écrit dans le message de
news:76ef01c4ccb9$bdd697f0$
Bonjour,
c'est habituellement un problème d'initialisation de
variables. Compteur ne semble pas initialisé au premier
passage, et peut-être d'autres.

Denis
-----Message d'origine-----
Bonjour à tous

Je vous soumet ma macro car je n'y comprend plus rien.
Lors du 1er test sur la condition "Total", le comptage
des lignes s'effectue

normalement
et je ressort avec une valeur de compteur>0
Lors du 2eme test sur la condition "Total", alors que
Cells(Ligne1, 25) et

NumChapitre
sont rigoureusement égaux VBA saute directement a la
ligne suivant le Wend.

Cela fait plusieurs heures que je bute dessus sans rien
comprendre


Merci d'avance de votre aide

----------------------------------------------------------
------------------

----------
Sub AMT_Formules_Totaux()
Public i, j, Compteur, Controle As Integer
Public Ligne, Ligne1, NbChapitre As Integer
Public NumChapitre As Double

Ligne = 3

While Cells(Ligne, 1) <> "fin"
If Cells(Ligne, 5) = "Total" Then ' C'est une ligne de
total

' Initialisation
NumChapitre = Cells(Ligne, 6)
Ligne1 = Ligne - 1
' Comptage des lignes du chapitre
While Cells(Ligne1, 25) = NumChapitre
Compteur = Compteur + 1
Ligne1 = Ligne1 - 1
Wend

..........Traitement

Compteur = 0
NumChapitre = 0
End If
Ligne = Ligne + 1
Wend

End Sub

.