Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion moialbert
  • 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 !

M

moialbert

Guest
salut
je suis un peu nobice en VBA et j'ai un probleme
j ai fait des boucles imbriquées qui devraient me permettre de renvoyer du texte dans deux cellules d'une ligne (et colorire la ligne) si dans cette ligne on a dans la colonne col la valeur "A.R" et que dans les 10 cellules au dessus et en dessous lorsque la cellule de la colonne A est identique à celle de la colonne A de la ligne de départ, on n'a pas la valeur "CYP" ou la valeur "CED" dans la colonne col

voila le code, je crois que ya un pb avec les if, il me dit erreur : else sans if
Code:
Sub ar()

Dim col As String
col = "i"

Dim serie As String

Dim conteurcyp As Integer


Dim conteurced As Integer
conteurced = 0

For i = 3 To [L65536].End(xlUp).Row
    conteurcyp = 0 ' on met les compteurs a 0
    conteurced = 0
 If Range(col & i) = "A.R" And Range(O & i) > 10 Then serie = Range(A & i).Value 
'[COLOR="yellowgreen"] on seuille a 10ha et on stocke le nom de la serie[/COLOR]  
          
For j = 1 To 10 [COLOR="YellowGreen"]'on regarde si dans les 10 lignes au dessus et en dessous si c'est la meme serie et si c'est le cas ,si on a du cyp on du ced; dans ce cas on rajoute au compteur[/COLOR]  
                      
       If Range(A & i - j) = serie Then
              If Range(col & i - j) = "CED" Then conteurced = conteurced + 1
              ElseIf Range(col & i - j) = "CYP" Then conteurcyp = conteurcyp + 1
              End If
        ElseIf Range(A & i + j) = serie Then
             If Range(col & i + j) = "CED" Then conteurced = conteurced + 1
             ElseIf Range(col & i + j) = "CYP" Then conteurcyp = conteurcyp + 1
             End If
                            
        End If
Next j
            If conteurcyp = 0 Then Range(P & i) = "Cypres absent de la serie" And Rows("i:i").Select
                                                     With Selection.Interior
                                                         .ColorIndex = 8
                                                         .Pattern = xlSolid
                                                     End With [COLOR="yellowgreen"]'colorie la lg si pas de cyp[/COLOR]        
            ElseIf conteurced = 0 Then Range(Q & i) = "Cèdre absent de la serie" And Rows("i:i").Select
                                                       With Selection.Interior
                                                            .ColorIndex = 8
                                                            .Pattern = xlSolid
                                                    End With [COLOR="yellowgreen"]'colorie la lg si pas de ced[/COLOR]
            End If
        End If
Next i
End Sub

merci de votre aide
 
Dernière modification par un modérateur:
Re : boucle if

au sein de la 2° la boucle for, je pense plutôt que tu voulais obtenir cela
Code:
If Range(A & i - j) = serie Then
    If Range(col & i - j) = "CED" Then
        conteurced = conteurced + 1
    ElseIf Range(col & i - j) = "CYP" Then
        conteurcyp = conteurcyp + 1
    End If
ElseIf Range(A & i + j) = serie Then
    If Range(col & i + j) = "CED" Then
        conteurced = conteurced + 1
    ElseIf Range(col & i + j) = "CYP" Then
        conteurcyp = conteurcyp + 1
    End If
End If

Next j


il faut que tu révises également ton 2° bloc d'instruction.
si tu veux tester si la ligne sélectionnée est la ligne i, essaye ceci :
Code:
if Selection.Row = Rows(i)


ps : pour poster du code, utiliser la balise code avec crochets ouvrants et fermants
[ code ] ... [ / code ] (sans les espaces)
 
Re : boucle if

le probleme a changé, maintenant il veut bien faire tourner les boucles mais j'ai l'impression que rien ne se passe, en tout cas le résultat n'est pas le bon
je mets en piece jointe le fichier avec mon code et ce que je voudrais si qqun peut regarder 🙂
merci
 

Pièces jointes

Dernière modification par un modérateur:
- 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

Réponses
15
Affichages
830
Réponses
4
Affichages
287
Réponses
7
Affichages
187
Réponses
5
Affichages
932
Réponses
4
Affichages
743
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…