Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Probleme avec code sur: for each et select case

  • Initiateur de la discussion Initiateur de la discussion carlos
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

carlos

Guest
Bonjour

G un petit souci pour trouver l'erreur 🙁Next sans for????)

Sub couleurGagnant()
supcouleur

'rechercher le classement de chaque joueur
For classement = 1 To 5
'decaller à droite la recherche dans les résultats
For n = 1 To 5
'toutes les cellules du tableau
For Each cell In Sheets('tabpoule').Range('c4:c6,g4:g6')
If cell = Cells(3, 17 + n) And Cells(3, 17 + n).Offset(12, 0) = classement _
Then Select Case classement
Case 1
MsgBox '1'
Case 2
MsgBox '2'
Case 3
MsgBox '3'
Case 4
MsgBox '4'
Case 5
MsgBox '5'
Next
Next n
Next classement
End Select
End Sub


Merci
 
Bonjour,

A priori manque un endif, mauvais placement du end select.

Essayer avec ca SVP, devrait marcher :

Sub couleurGagnant()
supcouleur

'rechercher le classement de chaque joueur
For classement = 1 To 5
'decaller à droite la recherche dans les résultats
For n = 1 To 5
'toutes les cellules du tableau
For Each cell In Sheets('tabpoule').Range('c4:c6,g4:g6')
If cell = Cells(3, 17 + n) And Cells(3, 17 + n).Offset(12, 0) = classement _
Then Select Case classement
Case 1
MsgBox '1'
Case 2
MsgBox '2'
Case 3
MsgBox '3'
Case 4
MsgBox '4'
Case 5
MsgBox '5'
End Select
End If
Next
Next n
Next classement
End Sub
 
essaye ca
Sub couleurGagnant()

'rechercher le classement de chaque joueur
For classement = 1 To 5
'decaller à droite la recherche dans les résultats
For n = 1 To 5
'toutes les cellules du tableau
For Each cell In Sheets('tabpoule').Range('c4:c6,g4:g6')
If cell = Cells(3, 17 + n) And Cells(3, 17 + n).Offset(12, 0) = classement Then
Select Case classement
Case 1
MsgBox '1'
Case 2
MsgBox '2'
Case 3
MsgBox '3'
Case 4
MsgBox '4'
Case 5
MsgBox '5'
End Select
End If
Next cell
Next n
Next classement

End Sub
 
Salut vinc26 et 21ch181,

Juste un tip de développeur: utilise l'incrémentation de ton code afin de le rendre le plus lisible possible et éviter ce genre d'erreur du type:
Code:
Sub Test()
If ... then
    code
    code
Else
    Select Case toto
          Case 1
               code
               code
          Case 2
               code
    End Select
End If
End Sub

Là tu vois bien l'imbrication des If...Then, Select...Case. Ceci étant valable pour les For...Next, Do...Loop, etc.

Bonne fin de journée
 
Salut

un autre peit conseil de programeur (de base):

des que tu écris un if , ecris le endif qui suit et remonte achever ta ligne de if , idem pour while select case etc....

2 eme chose cherche sur le net apres INDENT97 écris par un, mvp anglophone et tu sauras remettre ton code en 'escalier' automatiquement comme le conseille Mr Excel ...


Patrick
si tu trouves pas, je te file, il est 'free'
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
447
Réponses
5
Affichages
707
Réponses
4
Affichages
581
Réponses
8
Affichages
651
Réponses
5
Affichages
478
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…