OVH Cloud OVH Cloud

procédure qui s'arrete

5 réponses
Avatar
ced
Bonjour,
Je voudrais connaître le nombre de cellules contenant une chaîne de
caractères (dans l'exemple : 56), pour le savoir j'ai écrit la procédure
suivante

Sub yop()
Dim Cellule1 As Range
Dim i As Integer

i = 0

For Each Cellule1 In Sheets("Etat").Range("e1:e25000")
If Cellule1 = "56" Then
i = i + 1
End If
Next Cellule1

End Sub

Sauf que ça ne fonctionne pas, si la condition est vrai la procédure
s'arrête, pourquoi ?
Merci de votre aide

5 réponses

Avatar
Starwing
Comme cela:

Sub yop()
Dim Cellule1 As Range
Dim i As Integer

i = 0

Sheets("Etat").Range("e1:e25000").select
For Each Cellule1 In Selection
If Cellule1 = "56" Then
i = i + 1
End If
Next Cellule1
MsgBox i
End Sub

Starwing
Avatar
Ilan
Bonsoir,
je ne suis pas sur mais je crois que pour les boucles FOR EACH IN
il faut juste ecrire NEXT sans argument.

For Each Cellule1 In ....


Next


Bonjour,
Je voudrais connaître le nombre de cellules contenant une chaîne de
caractères (dans l'exemple : 56), pour le savoir j'ai écrit la procédure
suivante

Sub yop()
Dim Cellule1 As Range
Dim i As Integer

i = 0

For Each Cellule1 In Sheets("Etat").Range("e1:e25000")
If Cellule1 = "56" Then
i = i + 1
End If
Next Cellule1

End Sub

Sauf que ça ne fonctionne pas, si la condition est vrai la procédure
s'arrête, pourquoi ?
Merci de votre aide





Avatar
Pita
Bonjour,
Je suis convaincu que votre procédure fonctionne... seulement lorsqu'elle a
balayé toute la zone (e5 à e25000)... et qu'elle a fini de compter les
cellules contenant la valeur 56... eh bien... elle s'arrête... sans plus!...
si vous voulez la valeur de i... à la fin encore faut-il que vous lui
indiquiez où la ranger... ce que vous pouvez faire en rajoutant après
l'instruction " Next Cellule1 " une instruction de rangement telle que :
[A12].Value = i
qui rangera le résultat dans la cellule A12.
Bonne chance,
JPP

"ced" wrote:

Bonjour,
Je voudrais connaître le nombre de cellules contenant une chaîne de
caractères (dans l'exemple : 56), pour le savoir j'ai écrit la procédure
suivante

Sub yop()
Dim Cellule1 As Range
Dim i As Integer

i = 0

For Each Cellule1 In Sheets("Etat").Range("e1:e25000")
If Cellule1 = "56" Then
i = i + 1
End If
Next Cellule1

End Sub

Sauf que ça ne fonctionne pas, si la condition est vrai la procédure
s'arrête, pourquoi ?
Merci de votre aide





Avatar
ced
Merci
Je referais mes test demain au bureau
"ced" a écrit dans le message de news:

Bonjour,
Je voudrais connaître le nombre de cellules contenant une chaîne de
caractères (dans l'exemple : 56), pour le savoir j'ai écrit la procédure
suivante

Sub yop()
Dim Cellule1 As Range
Dim i As Integer

i = 0

For Each Cellule1 In Sheets("Etat").Range("e1:e25000")
If Cellule1 = "56" Then
i = i + 1
End If
Next Cellule1

End Sub

Sauf que ça ne fonctionne pas, si la condition est vrai la procédure
s'arrête, pourquoi ?
Merci de votre aide



Avatar
ced
Ok ça marche très bien en fait j'avais une erreur sur la plage de cellules à
scaner du coup il était normale que la procédure s'arrète.

"ced" a écrit dans le message de news:

Merci
Je referais mes test demain au bureau
"ced" a écrit dans le message de news:

Bonjour,
Je voudrais connaître le nombre de cellules contenant une chaîne de
caractères (dans l'exemple : 56), pour le savoir j'ai écrit la procédure
suivante

Sub yop()
Dim Cellule1 As Range
Dim i As Integer

i = 0

For Each Cellule1 In Sheets("Etat").Range("e1:e25000")
If Cellule1 = "56" Then
i = i + 1
End If
Next Cellule1

End Sub

Sauf que ça ne fonctionne pas, si la condition est vrai la procédure
s'arrête, pourquoi ?
Merci de votre aide