bonjour,
je suis plutot nvice en vba excel et j'essaie de programmer un boucle qui ne plante plus mais ne me donne pas le résultat escompté.
j'ai des lignes avec dans la colonne A un nom qui est identique pour qques lignes consécutives (ce qui forme donc des groupes de données)
Je voudrais rechercher dans chaque groupe si il existe dans la colonne J la valeur "A.R"
dans ce cas, il faut rechercher si il existe dans le groupe la valeur "CED" ou "CYP" dans cette meme colonne
si elles n'existent pas je voudrais surligner la ligne "AR du groupe et afficher "Pas de CED" ou/et "pas de CYP" dans les colonne P et Q de cette ligne (le must serait en fait de pouvoir copier en plus ce groupe sur un autre feuille)
j'ai bibouillé un code en recherchant, a partir du moment ou il trouve un "AR", dans les 10 lignes au dessus et en dessous de la valeur (les groupes de données n'ayant jamais plus de 10 lignes)
Je mets en fichier joint ce que j'aimerais
je mets le code aussi pour ceux qui on compris ce que j'ai essayé d'expliquer
Merci de votre aide
AL
je suis plutot nvice en vba excel et j'essaie de programmer un boucle qui ne plante plus mais ne me donne pas le résultat escompté.
j'ai des lignes avec dans la colonne A un nom qui est identique pour qques lignes consécutives (ce qui forme donc des groupes de données)
Je voudrais rechercher dans chaque groupe si il existe dans la colonne J la valeur "A.R"
dans ce cas, il faut rechercher si il existe dans le groupe la valeur "CED" ou "CYP" dans cette meme colonne
si elles n'existent pas je voudrais surligner la ligne "AR du groupe et afficher "Pas de CED" ou/et "pas de CYP" dans les colonne P et Q de cette ligne (le must serait en fait de pouvoir copier en plus ce groupe sur un autre feuille)
j'ai bibouillé un code en recherchant, a partir du moment ou il trouve un "AR", dans les 10 lignes au dessus et en dessous de la valeur (les groupes de données n'ayant jamais plus de 10 lignes)
Je mets en fichier joint ce que j'aimerais
je mets le code aussi pour ceux qui on compris ce que j'ai essayé d'expliquer
Code:
Sub ar()
Dim col As String
col = "I"
Dim serie As String
Dim conteurcyp As Integer
Dim conteurced As Integer
For i = 2 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) ' on seuille a 10ha et on stocke le nom de la serie
For j = 1 To 10 '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
If Range(A & i - j) = serie And Range(col & i - j) = "CED" Then
conteurced = conteurced + 1
ElseIf Range(A & i - j) = serie And Range(col & i - j) = "CYP" Then
conteurcyp = conteurcyp + 1
ElseIf Range(A & i + j) = serie And Range(col & i + j) = "CED" Then
conteurced = conteurced + 1
ElseIf Range(A & i + j) = serie And Range(col & i + j) = "CYP" Then
conteurcyp = conteurcyp + 1
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 'colorie la lg si pas de cyp
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 'colorie la lg si pas de ced
End If
End If
Next i
End Sub
AL