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
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
A voir également:
- Macro VBA Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
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
3 juin 2005 à 12:38
;-)
De rien !! ;-) Toi aussi... ;-)
De rien !! ;-) Toi aussi... ;-)
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
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...
;-)
if cells(5,1).interior.colorindex=vbblack then range(cells(5,1),cells(5,12)).interior.colorindex=vbblack
De mémoire...
;-)
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
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
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
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 ?
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 ?
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
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... ;-)
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... ;-)
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
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
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
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
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...
;-)
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...
;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question