Rajouter une deuxieme couleur

lostheroe

XLDnaute Occasionnel
Bonjour,

J'aimerais rajouter à la macro ci-dessous:
- une deuxième couleur en plus de la couleur violette
- et également cloisonner la recherche des cellules aux colonnes A à AW au lieu de scanner l'ensemble de la feuille.

Sub Tuyautage()
Dim Cellule As Range
Dim NouveauClasseur As Workbook

'Pour chaque cellule utilisée dans la feuille idée
For Each Cellule In Worksheets("idée").UsedRange

'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then

'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value

'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone

End If
 

Pierrot93

XLDnaute Barbatruc
Re : Rajouter une deuxieme couleur

Bonjour,
pour une colonne :

Code:
Dim c As Range
For Each c In Feuil1.Columns(1).Cells
    c.Select
Next c

mais préférable de borner la plage de cellule concernée :

Code:
Dim c As Range
With Feuil1
    For Each c In .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
        c.Select
    Next c
End With

code à adapter...

bonne journée
@+
 

lostheroe

XLDnaute Occasionnel
Re : Rajouter une deuxieme couleur

Bonjour,

J'arrive pas à l'intégré dans ma macro pour que cela fonctionne correctement.

Sub Tuyautage()
Dim Cellule As Range
Dim c As Range
Dim NouveauClasseur As Workbook

'Pour chaque cellule de la colonne 1 utilisée dans la feuille idée
For Each c In Feuil1.Range("A1:AW1").Cells
c.Select

'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then

'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value

'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone

End If
Next c
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Rajouter une deuxieme couleur

Re,

en l'état :
Code:
For Each c In Feuil1.Range("A1:AW1").Cells
ne boucle pas sur une colonne mais sur une partie de la ligne 1...

A noter "Feuil1" est le codename de la feuille sur laquelle est déterminée la plage...
 

lostheroe

XLDnaute Occasionnel
Re : Rajouter une deuxieme couleur

Il faut rajouter EntireColumn pour prendre les colonnes complète?

For Each c In Feuil1.Range("A1:AW1").EntireColumn.Cells

Par contre j'ai toujours un problème avec la macro. Elle bloque sur c.Select
 

Pierrot93

XLDnaute Barbatruc
Re : Rajouter une deuxieme couleur

Re,

Il faut rajouter EntireColumn pour prendre les colonnes complète?

dans ce cas bouclera sur toutes les cellules des colonnes A à AW....

Elle bloque sur c.Select
attention, la feuille n'est peut être pas la bonne... elle doit être active pour que cela fonctionne... mais c'était un exemple, rarement utilies les "select" en vba...
 

lostheroe

XLDnaute Occasionnel
Re : Rajouter une deuxieme couleur

Ca bloque maintenant sur If Cellule.Interior.Color.
Erreur d'execution '91'
Variable objet ou variable de bloc with non definie

Sub Tuyautage()
Dim Cellule As Range
Dim c As Range
Dim NouveauClasseur As Workbook

'Pour chaque cellule des colonnes A à AW utilisée dans la feuille idée
For Each c In ThisWorkbook.Worksheets("idée").Range("A1:AW1").EntireColumn.Cells
c.Select

'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then

'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value

'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone

End If
Next c
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Rajouter une deuxieme couleur

Re,

enlève "Cellule" partout dans ton code, c'est "c" qui est utilisé comme variable... tu peux enlever aussi le c.select qui n'était là que pour l'exemple....
 
Dernière édition:

lostheroe

XLDnaute Occasionnel
Re : Rajouter une deuxieme couleur

Je voudrais maintenant rajouter usedRange afin de scanner que les celulles contenant une donnée. Pour éviter de scanner toute les cellules vide pouvant être contenu dans les colonnes A à AW
J'ai essayé de la rajouter avant range ("A1;AW1"), mais malheureusement ca ne marche pas

Sub Tuyautage()
Dim Cellule As Range
Dim NouveauClasseur As Workbook

'Pour chaque cellule des colonnes A à AW utilisée dans la feuille idée
For Each Cellule In ThisWorkbook.Worksheets("idée").Range("A1:AW1").EntireColumn.Cells

'Si l'intérieur de la cellule utilisée est de couleur violette
If Cellule.Interior.Color = 13082801 Then

'Remplacer la valeur de cette cellule par sa valeur actuelle
Cellule.Value = Cellule.Value

'Retourner à un format de cellule sans remplissage
Cellule.Interior.Pattern = xlNone

End If
Next Cellule
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Rajouter une deuxieme couleur

Bonjour,

bah... sans voir le code utilisé ni les données traitées... pas facile de te répondre... regarde put être si les cellules ne contiennent pas en fait des formules...

bonne journée
@+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 609
dernier inscrit
AmineAB33