boucle if

moialbert

XLDnaute Nouveau
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 édition:

STephane

XLDnaute Occasionnel
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)
 

moialbert

XLDnaute Nouveau
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

  • extrait_ser_30-22.xls
    40 KB · Affichages: 45
  • extrait_ser_30-22.xls
    40 KB · Affichages: 45
  • extrait_ser_30-22.xls
    40 KB · Affichages: 52
Dernière édition:

Discussions similaires

Réponses
11
Affichages
372

Statistiques des forums

Discussions
312 677
Messages
2 090 806
Membres
104 671
dernier inscrit
Guilbry