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

Problème : Comile error "Next without For"

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 !

mbiber

XLDnaute Nouveau
Bonjour, j´au un tableau excel et je voudrais créer un code VBA qui passe en revu UNIQUEMENT la colonne K (nommée "Paiement") et qui colorie chaque case de cette colonne soit en vert si "Prépayé", soit en rouge si "à destination"..
Aidez moi svp, je galère vraiment là 😛

Sub VBATrinfo2()
Dim K As Integer
For ligne = 2 To 22
For colonne = 1 To 11
If Range(colonne11 & ligne) = "Prépayé" Then
Range(colonne11 & ligne).Interior.Color = RGB(0, 180, 0)
Else: Range(colonne11 & ligne).Interior.Color = RGB(0, 0, 0)
Next colonne
Next ligne

End If

End Sub
 
Re : Problème : Comile error "Next without For"

Bonjour

Pas besoin de code pour cela : utilise une mise en forme conditionnelle. Si tu nous donnes un petit bout de classeur anonymisé on te montrera comment faire, c'est bien plus simple et surtout ça se fait tout seul dès que tu écris dans la colonne.

Sinon dans ton code :
tu regardes les colonnes 1 à 11 donc A à K et pas seulement la colonne K
On ne peut pas écrire range(colonne11 & ligne)...
C'est soit cells(ligne, colonne) soit range("K2:K22")

ca pourrait faire :
Code:
Sub VBATrinfo2()
    Dim c as range
        For each c in range("K2:K22")
   if c="prépayé" then c.interior.color) = RGB(0, 180, 0)
next c
End Sub


comme tu ne testes en fait qu'une seule condition (prépayé), tu peux écrire le if then et ce qu'il faut faire sur la même ligne et ne pas mettre de end if.


Si tu veux tester deux conditions :
Code:
Sub VBATrinfo2()
    Dim c as range
        For each c in range("K2:K22")
   if c="prépayé" then 
      c.interior.color) = RGB(0, 180, 0)
elseif c="à destination" then
   c.interior.color) = RGB(180, 180, 0)
else
c.interior.color=RGB(0,0,0)
end if
next c
End Sub

Sinon quand tu fais 2 boucles imbriquées et qu'il y a une condition, il faut que la condition soit terminée (end if) avant de passer à l'élément suivant,
Autrement dit

Code:
for ligne
for colonne
if  then
else
end if
next colonne
next ligne
 
Dernière édition:
Re : Problème : Comile error "Next without For"

Un bout de classeur anonyme? Desole je suis tt nouveau.. Sinon, je veux bien envoyer mon fichier excel mais je ne vois pas comment faire.
Et pour le code que tu propose :

"Sub VBATrinfo2()
Dim c as range
For each c in range("K2:K22")
if c="prépayé" then c.interior.color) = RGB(0, 180, 0)
next c
End Sub"

la 3eme ligne s´affiche en rouge et me dis "Syntax error"

(Merci pour le suivi et pour ta réponse d´ailleurs!!!)
 
Re : Problème : Comile error "Next without For"

Ton fichier avec une mise en forme conditionnelle en retour.
Pour la voir :
curseur dans la colonne K
onglet accueil/mise en forme cond/
Gérer les règles
 
- 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

Discussions similaires

Réponses
5
Affichages
702
Réponses
8
Affichages
269
Réponses
4
Affichages
579
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
217
Réponses
3
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…