Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème dans une structure For Each Next

3 réponses
Avatar
imej-clavier
Bonjour,
Quelqu'un peut-il m'aider à comprendre mon problème ?
J'ai fait le programme suivant :
ChiffreCherché=InputBox(« Saisissez un chiffre « )
Set MaPlage=Range(« A1:B6 »)
MaPlage.Select
Compteur=0
For Each Cell In Selection.Cells
If Cell.Value= ChiffreCherché Then
compteur=compteur+1
MaPlage.Cells(1,1).Value= MaPlage.Cells(2,1).Value
Else
MsgBox(« Il n'y a pas ce chiffre dans la feuille »)
End If
Next Cell
MsgBox(« Il y a » & compteur & « fois le chiffre » & ChiffreCherché & «dans
la feuille »)

(J'ai mis le chiffre 5 plusieurs fois dans la plage, et l'ai mis en valeur
de retour (avec ChiffreCherché)).

Apparemment, Cell.Value parcourt bien toutes les cellules. Pourquoi n'ai-je
pas un résultat correct
avec le MsgBox ? Que dois-je faire ? D'avance merci.

Jean-michel

3 réponses

Avatar
BJ
Bonsoir
Petite modif
Bruno

ChiffreCherché=InputBox(« Saisissez un chiffre « )
Set MaPlage=Range(« A1:B6 »)
MaPlage.Select
Compteur=0
For Each Cell In Selection.Cells
If Cell.Value= ChiffreCherché Then
compteur=compteur+1
MaPlage.Cells(1,1).Value= MaPlage.Cells(2,1).Value
End If
Next Cell
if Compteur=0 then
MsgBox(« Il n'y a pas ce chiffre dans la feuille »)
Else
MsgBox(« Il y a » & compteur & « fois le chiffre » & ChiffreCherché & «dans
la feuille »)


imej-clavier a écrit dans le message :
OJ9hHK#
Bonjour,
Quelqu'un peut-il m'aider à comprendre mon problème ?
J'ai fait le programme suivant :
ChiffreCherché=InputBox(« Saisissez un chiffre « )
Set MaPlage=Range(« A1:B6 »)
MaPlage.Select
Compteur=0
For Each Cell In Selection.Cells
If Cell.Value= ChiffreCherché Then
compteur=compteur+1
MaPlage.Cells(1,1).Value= MaPlage.Cells(2,1).Value
Else
MsgBox(« Il n'y a pas ce chiffre dans la feuille »)
End If
Next Cell
MsgBox(« Il y a » & compteur & « fois le chiffre » & ChiffreCherché &
«dans

la feuille »)

(J'ai mis le chiffre 5 plusieurs fois dans la plage, et l'ai mis en valeur
de retour (avec ChiffreCherché)).

Apparemment, Cell.Value parcourt bien toutes les cellules. Pourquoi
n'ai-je

pas un résultat correct
avec le MsgBox ? Que dois-je faire ? D'avance merci.

Jean-michel





Avatar
RaMA
Dim Compteur, ChiffreCherché As Long
ChiffreCherché = InputBox(" Saisissez un chiffre ")
Compteur = 0
For Each Cell In [A1:C38]
If Cell = ChiffreCherché Then
Compteur = Compteur + 1
End If
Next Cell
If Compteur > 0 Then
MsgBox (" Il y a " & Compteur & " fois le chiffre " & ChiffreCherché &
_
" dans la feuille ")
Else
MsgBox (" Il n'y a pas ce chiffre dans la feuille ")
End If
RaMa
--
.
"imej-clavier" a écrit dans le message de
news:OJ9hHK%
Bonjour,
Quelqu'un peut-il m'aider à comprendre mon problème ?
J'ai fait le programme suivant :
ChiffreCherché=InputBox(« Saisissez un chiffre « )
Set MaPlage=Range(« A1:B6 »)
MaPlage.Select
Compteur=0
For Each Cell In Selection.Cells
If Cell.Value= ChiffreCherché Then
compteur=compteur+1
MaPlage.Cells(1,1).Value= MaPlage.Cells(2,1).Value
Else
MsgBox(« Il n'y a pas ce chiffre dans la feuille »)
End If
Next Cell
MsgBox(« Il y a » & compteur & « fois le chiffre » & ChiffreCherché &
«dans

la feuille »)

(J'ai mis le chiffre 5 plusieurs fois dans la plage, et l'ai mis en valeur
de retour (avec ChiffreCherché)).

Apparemment, Cell.Value parcourt bien toutes les cellules. Pourquoi
n'ai-je

pas un résultat correct
avec le MsgBox ? Que dois-je faire ? D'avance merci.

Jean-michel





Avatar
ChrisV
Bonjour imej-clavier,

Tu peux aussi te passer d'une boucle sur la plage de référence, et intégrer
un contrôle sur la saisie du nombre recherché...

Sub zaza()
Dim cpT As Integer
With Application
reC = .InputBox("Saisissez un chiffre", , , , , , , 1)
cpT = .CountIf([A1:B6], reC)
If cpT > 0 Then
MsgBox "Il y a " & cpT & " fois le chiffre " & reC & _
" dans la feuille", vbInformation
Else: MsgBox "Il n'y a pas ce chiffre dans la feuille", vbExclamation
End If
End With
End Sub


ChrisV


"imej-clavier" a écrit dans le message de
news:OJ9hHK%
Bonjour,
Quelqu'un peut-il m'aider à comprendre mon problème ?
J'ai fait le programme suivant :
ChiffreCherché=InputBox(« Saisissez un chiffre « )
Set MaPlage=Range(« A1:B6 »)
MaPlage.Select
Compteur=0
For Each Cell In Selection.Cells
If Cell.Value= ChiffreCherché Then
compteur=compteur+1
MaPlage.Cells(1,1).Value= MaPlage.Cells(2,1).Value
Else
MsgBox(« Il n'y a pas ce chiffre dans la feuille »)
End If
Next Cell
MsgBox(« Il y a » & compteur & « fois le chiffre » & ChiffreCherché &
«dans

la feuille »)

(J'ai mis le chiffre 5 plusieurs fois dans la plage, et l'ai mis en valeur
de retour (avec ChiffreCherché)).

Apparemment, Cell.Value parcourt bien toutes les cellules. Pourquoi
n'ai-je

pas un résultat correct
avec le MsgBox ? Que dois-je faire ? D'avance merci.

Jean-michel