couleur cellules

  • Initiateur de la discussion Boby71C
  • Date de début
B

Boby71C

Guest
Bonjour à tous

Petit souci de macro

Je désir transformer les cellules grisées en noir de la façon suivante:

Transformer en violet les cellules des lignes 4, 12 à 20
Transformer en Vert les cellules des lignes 5, 21 à 26
Transformer en Bleu les cellules des lignes 7, 27 à 34
laisser les autres lignes en noir.


Merci de votre aide
 

Pièces jointes

  • MacCoul.zip
    6.4 KB · Affichages: 13
@

@+Thierry

Guest
Bonjour Boby, le Forum

Pas sûr d'avoir interprété à 100% ta demande mais essaie cette macro :

Sub Coloring()
Dim Cell As Range

For Each Cell In Sheets("Feuil1").UsedRange
If Cell.Interior.Pattern = xlUp Then
Select Case Cell.Row
Case 4, 12 To 20
Cell.Interior.PatternColorIndex = 7
Case 5, 21 To 26
Cell.Interior.PatternColorIndex = 4
Case 7, 27 To 34
Cell.Interior.PatternColorIndex = 8
End Select
End If
Next Cell
End Sub

Ce devrait faire ce que tu veux (si j'ai bien compris)

Bonne Soirée
@+Thierry
 
B

Boby71C

Guest
Bonjour Thierry

Merci beaucoup pour ta réponse qui est exactement se que je désirai.
Il est domage que je ne posséde pas les connaissances des personnes qui ont la générosité de nous répondre.

Je te demanderai un dernier service si cela est possible.
Peut tu mettre les commentaires pour que je comprenne la Macro pour ma formation personnelle qui est trés limitée.

Que puis-je utiliser comme livre pour débuter en VBA car j'aimerai arriver à me débrouiller seul

Merci à nouveau et trés bon Week End

Robert
 
@

@+Thierry

Guest
Bonsoir Robert, le Forum

Voici le même code en "Full Comments" qui devrait t'aider à tout analyser...



Sub Coloring()
'Déclaration de Variable Objet Range (cellule ou plage de cellules)
Dim Cell As Range

'DEMARRAGE d'un boucle "For Each" ici je demande :
'Pour chaque Cellule dans la Plage utilisée de la feuille "Feuil1"
For Each Cell In Sheets("Feuil1").UsedRange

'DEMARRAGE d'une condition (If): "Si la cellule est formatée avec un Motif" (XlUp est celui de tes hachures)
If Cell.Interior.Pattern = xlUp Then

'Ici je fais des Cas basés sur le numéro de la ligne (Row) de la cellule (Cell) scannée par la boucle
Select Case Cell.Row

'Si le cas est la ligne 6 ou la tranche contenue entre 12 et 20 alors le cas correspond
Case 4, 12 To 20

'Si le cas du dessus correspond, alors je mets la couleur voulue (7 = index Violet)
Cell.Interior.PatternColorIndex = 7

'Idem pour les Cas de Ligne 5 ou dans inclu dans la tranche 21 à 26
Case 5, 21 To 26

'Si le cas du dessus correspond, alors je mets la couleur voulue (4 = index Vert)
Cell.Interior.PatternColorIndex = 4

'Idem pour les Cas de Ligne 7 ou dans inclu dans la tranche 27 à 34
Case 7, 27 To 34

'Si le cas du dessus correspond, alors je mets la couleur voulue (8 = index Cian)
Cell.Interior.PatternColorIndex = 8

'Fin des Cas possibles (les autres cas (lignes) ne sont pas traités)
End Select

'FIN de ma Condition
End If

'BOUCLE SUIVANTE (le cellule suivante va être scannnée de la même manière
'que ce que tu viens de lire, jusqu'à la dernière cellule de la plage utilisée)
'Une fois arrivé à la dernière cellule, ce sera la FIN de la boucle FOR EACH.....NEXT
Next Cell

'FIN de Procédure (Ouf)
End Sub

Voilà, pour les ouvrages regarde ce Fil d'aujourd'hui :
Lien supprimé

Il y a beaucoup de bouquins, c'est assez difficile de bien conseiller, mais John Walk est une référence.

Bonne Soirée
@+Thierry
 
B

Boby71C

Guest
Bonjour Thierry le Forum

Merci beaucoup pour ta réponse une nouvelle foi trés rapide

Je vai de se pas continuer à essayer de perfectionner mon développement en VBA car comme tu l'as compris, je suis un débutant.
J'ai la logique dans la tête, mais ne connaissant pas le VBA et de plus, l'Anglais, c'est trés difficile

Trés bon Dimanche

A+ Robert
 

Discussions similaires

Réponses
2
Affichages
223

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 697
dernier inscrit
Pierrot Hubert