Macro VBA Excel

Fermé
Laurent - 3 juin 2005 à 10:47
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 - 3 juin 2005 à 12:38
Bonjour à tous,

J'aurais besoin de votre aide...

Comment traduire en VBA :

Si il y a une Cellule "couleur Noire" dans la colonne "A:A"

Alors remplir de la meme couleur les cellules de la meme ligne que la cellule de "couleur Noire"

exemple :

Si Cellule noir en "A5"

---> Alors remplir en "Noir" la ligne "A5:L5"

Merci d'avance,
Cordialement
Laurent
A voir également:

5 réponses

WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
3 juin 2005 à 12:38
;-)

De rien !! ;-) Toi aussi... ;-)
1
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
3 juin 2005 à 11:01
;-)

if cells(5,1).interior.colorindex=vbblack then range(cells(5,1),cells(5,12)).interior.colorindex=vbblack

De mémoire...

;-)
0
Salut WhiteFang,

en fait j'ai trouvé ça qui marche :

Sub noir()
For Each rg In Range([a1], [A65536].End(xlUp))
rg.Activate
If rg.Interior.ColorIndex = 1 Then
Range(Cells(rg.Row, 1), Cells(rg.Row, 12)).Interior.ColorIndex = 1
End If
Next rg
End Sub

Mais le problème c'est que ça marche seulemnt si les cellules sont non vide.
Or les cellules en noir dans mon fichier sont vides...

Aurais tu une solution.....Merci
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
3 juin 2005 à 11:41
Hello Laurent,

Ta macro fonctionne bien (tu peux virer le rg.Activate qui ne sert à rien).
Le problème est sans doute que tes cellules noires sont des cellules vides après les dernières données de ta colonne. Elles ne sont donc pas détectées par End(xlUp), qui recherche les données.

Question : as-tu quand même, dans les lignes à noircir, des cellules qui contiennent des données ?
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
3 juin 2005 à 11:43
;-)

Sub toto()
'Déclaration des variables
Dim L, C, Lne, Col
'Récup dans L et C de l'adresse de la dernière cellule de la feuille
L = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
C = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
'Boucle sur les lignes
For Lne = 1 To L
'Test de l'intérieur de la cellule
Select Case Cells(Lne, 1).Interior.ColorIndex
'Si c'est NOIR
Case Is = 1
'Boucle sur les colonnes de la feuille
For Col = 1 To C
'Et application de la couleur
Cells(Lne, Col).Interior.ColorIndex = 1
Next
End Select
Next
End Sub

;-)

Vides ou pas vides... ;-)
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
3 juin 2005 à 12:03
Re WhiteFang,

Euh... t'es sûr que t'as testé ?
Quelques mélanges de pinceaux dans les SpecialCells...
L'idée reste bonne, évidemment...

Sub totoBis()
'Déclaration des variables
Dim L, Lne
'Récup dans L de l'adresse de la dernière cellule de la feuille
L = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
'Boucle sur les lignes
For Lne = 1 To L
'Test de l'intérieur de la cellule
Select Case Cells(Lne, 1).Interior.ColorIndex
'Si c'est NOIR
Case Is = 1
'Noircissement de la plage
Range(Cells(Lne, 1), Cells(Lne, 12)).Interior.ColorIndex = 1
End Select
Next
End Sub
0
WhiteFang Messages postés 2063 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204 > Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024
3 juin 2005 à 12:18
;-)

Tu crois que je mettrais du code ici sans l'avoir testé ? ;-))))))

Au fait, tes modifs sur mon code sont inutiles...

ActiveSheet : Pourquoi puisque le code est dans la feuille ? ;-) Et que de toutes façon, l'implicite est Activesheet ?

Constante xlCellTypeLastCell : L'objet le plus simple à utiliser est ActiveCell, puisque le code se trouve dans la feuille...

Et pour la boucle sur les colonnes, cela a l'avantage de lui montrer que ce code va s'adapter au contenu de sa feuille, pas sur une plage fixée, car il a déjà la solution plus haut pour l'adressage d'une plage...

;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci à tous les deux... :)

Avec ça je devrais m'en sortir à merveille...

@+
et bonne journée !!
0