Trouver les 5 cellules sans couleur d'une colonne
Bonjour a tous, je cherche a faire:
pour la colonne i, a partir de la cellule pointer par mon index,, je veux faire certaines vérifications sur chacune des 5 cellules suivantes qui ne contiennent pas de couleur (ColorIndex=22).
Un petit bout de code m'aidera a partir, merci!
Salut Capucin,
ceci te mettrait-il sur la piste ?
En feuille2, tu cliques n'importe où dans la colonne I...
A+
Salut! malheureusement j'utilise XL2003, pourrais-tu m'envoyer le code VBA, que je regarde ca?
Voilà, j'ai créé une feuille avec la colonne I dont les cellules étaient colorées aléatoirement de ta couleur 22.
Il te suffit de cliquer n'importe où dans cette colonne (que tu dois forcément créer toi-même) et des chiffres de 1 à 5 s'affichent dans les cellules non-colorées.
[/Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Not Application.Intersect(Target, Range("I:I")) Is Nothing Then
Range("I:I").ClearContents
iFlag = 0
iRow = Target.Row
For x = iRow To 100
If Range("I" & x).Interior.ColorIndex <> 22 Then
iFlag = iFlag + 1
Range("I" & x) = iFlag
If iFlag = 5 Then Exit For
End If
Next
End If
'
End Sub
code]
A+, si tu as encore besoin de quelque chose!
[ligne][/ligne]
[code]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Not Application.Intersect(Target, Range("I:I")) Is Nothing Then
Range("I:I").ClearContents
iFlag = 0
iRow = Target.Row
For x = iRow To 100
If Range("I" & x).Interior.ColorIndex <> 22 Then
iFlag = iFlag + 1
Range("I" & x) = iFlag
If iFlag = 5 Then Exit For
End If
Next
End If
'
End Sub
Intéressant ton code. Cependant c'est pas tout a fait ce que je cherche.
Par exemple, si je me trouve en partant sur la cellule J4, j'aimerais vérifier J5 et s'il ne contient pas de couleur 22 alors je lance un sub. Je vérifie ensuite J5,J6,J7 ect. jusqu'au moment ou j'ai eu un total de 5 cellules sans couleur 22.
Voici un ébauche:
For X = 1 To plage1 'pour chacune des 5 cellules suivante du tableau 1
For a = 1 To 5
If tablo1(i + X, 1).Interior.ColorIndex = 22 Then
plage1 = plage1 + 1
X = X + 1
Else
'je fais mes choses ici
End If
Next a
Salut Capucin,
sans savoir exactement ce que tu veux faire, nous risquons de folâtrer longtemps dans toutes sortes de codes!!!
Explique-toi!
Voici de quoi voyager dans toute ta feuille à la recherche de cellules non colorées...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
If Not Application.Intersect(Target, Range("A:Z")) Is Nothing Then
Range("A:Z").ClearContents
iFlag = 0
iRow = Target.Row
iCol = Target.Column
For x = iRow To 100
If Cells(x, iCol).Interior.ColorIndex <> 22 Then
iFlag = iFlag + 1
Cells(x, iCol) = iFlag
If iFlag = 5 Then Exit For
End If
Next
End If
'
End Sub
Belle journée au Canada?
Ici,... non, je préfère ne rien dire...
A+
Je vais essayer ton code dans mon application. Je t'en redonne des nouvelles.
On a eu de drole de température cet hivers. D,abord a Noel, il faisait 16 degrés, et pas un flocon sur la pelouse! La semaine derniere on a eu droit a une petite crise de verglas, chez moi, il y a eu une panne de courant de 32 heures.
Présentement au Québec, il ne fait pas encore tres chaud (-20 la nuit), mais le printemps est a nos portes!
J'ai finalement trouvé. Merci pour l'aide
'on vérifie pour chacune des 5 cellules suivante du tableau 1, si on trouve dans l'une des 5 cellules suivante du tableau 2
For X = 1 To plage1 'pour chacune des 5 cellules suivante du tableau 1
If (i + X) <= limit1 Then 'si on ne déborde pas du tableau
If tablo1(i + X, 1) > 0 And Sheets("ASS").Cells(i + X + 2, 9).Interior.ColorIndex <> 4 Then 's'il y a une mnémonique et qu'il n'y a pas de couleur vert
For Y = 1 To plage2 'pour chacune des 5 cellules suivantes du tableau 2
If (i2 + Y) <= limit2 Then 'si on ne déborde pas du tableau
If tablo2(i2 + Y, 1) > 0 And Sheets("ASS2").Cells(i2 + Y + 2, 9).Interior.ColorIndex <> 22 Then 's'il y a une mnémonique et qu'il n'y a pas de couleur
If tablo1(i + X, 1) = tablo2(i2 + Y, 1) Then
nombre = nombre + 1 'on cumule les cellules identiques trouvées
End If
Else
'plage2 = plage2 + 1
Y = Y - 1
i2 = i2 + 1
End If
End If
Next Y
Else
'plage1 = plage1 + 1
X = X - 1
i = i + 1
End If
End If
Next X