sélectionner et colorer certaines cases d'un tableau

guiom

XLDnaute Nouveau
Bonjour à tous,

N'ayant jamais manipulé Visual Basic, j'éprouve beaucoup de difficultés à créer une macro pour finir un projet. Merci de m'accorder un peu de votre temps…

Mon objectif est de suivre un procédé industriel qui se décompose en plusieurs étapes. En fonction de différents paramètres, je peux prévoir la durée de chaque étape.
Je dois afficher un diagramme simple sur une feuille Excel qui permet de voir le procédé et la durée des différentes étapes.
Sur cette feuille Excel, chaque ligne représente une étape d'un procédé (nommé: étape1, étape2, ... jusqu'à étape5) et chaque colonne représente 5minutes.
On a donc:
-si l'étape 1 dure 25 minutes, 5 cases de la ligne1 sont colorées
-si l'étape 2 dure 45 minutes, 9 cases de la ligne2 sont colorées
-...
-si l'étape 5 dure 100 minutes, 20 cases de la ligne5 sont colorées
(Je n’ai pas d’autre choix pour afficher ce diagramme, je dois garder ce type de mise en forme même s’il n’est pas optimal)

J'ai déjà trouvé une petite macro qui me permet de colorer certaines plages de temps:
Sub Remplir_une_cellule_et_bordures()
Dim Arr()
Arr = Array("A1:C1", "D2:G2", "H3:I3", "J4:L4")'plages de temps colorés
For Each elt In Arr
With Worksheets("TEST") 'nom feuille à adapter
With .Range(elt)
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With .Interior
.ColorIndex = 8
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End With
End With
Next
End Sub

Maintenant, je voudrais pouvoir ajuster la taille des plages colorées en fonction de la durée de chacune des étapes (calculées dans un tableau sur une autre feuille).
Je voudrais donc agir sur
Arr = Array("A1:C1", "D2:G2", "H3:I3", "J4:L4")'plages de temps colorés
pour changer le début et la fin de chaque plage.

Pour cela, il serait pratique de passer en coordonnées ‘’RC ‘’(où A1= R1C1) et de modifier les coordonnées RiCj d'une case en jouant sur i et j.
Enfin je pense!! parce que à partir de là, je suis perdu!!

J’espère être clair et j’attends impatiemment votre aide ou vos commentaires. Merci.

Guiom

PS : Etant nouveau sur le forum, je vous prie d'excuser mes éventuelles erreurs de débutant!
 

cibleo

XLDnaute Impliqué
Re : sélectionner et colorer certaines cases d'un tableau

Bonjour guiom,
Bonjour Sergio,

Un exemple de macro placé dans un module standard que j'ai développée dans un de mes projets.

Content de te croiser Sergio, c'est bizarre cette macro (un peu modifiée), je suis persuadé de l'avoir piochée dans un de tes fichiers proposé sur le forum.
Code:
Sub Marquage_H()
'Heures Normales
Dim c As Range
Dim oIntersect As Range
Application.ScreenUpdating = False
  Set oIntersect = Intersect(Selection, Range("C3:IJ33"))
  If Not oIntersect Is Nothing Then
    If oIntersect.Count = Selection.Count Then
      For Each c In Selection
        c = "N"
        Selection.Interior.ColorIndex = 36
        Selection.Font.ColorIndex = 36
      Next c
      Exit Sub
    End If
  End If
MsgBox "Mauvaise Sélection!"
  Range("A1").Select
  Application.ScreenUpdating = True
End Sub

Amicalement Cibleo

Ps : çà ne doit pas répondre à la deuxième partie de ta question, mes excuses.
 
Dernière édition:

guiom

XLDnaute Nouveau
Re : sélectionner et colorer certaines cases d'un tableau

Merci pour vos réponses!

Sergio:
Je pensais que la mise en forme conditionnelles n'était pas appliquable dans mon cas et tu me prouves le contraire!
Néanmoins, j'ai du mal à comprendre ta formule et à l'adapter à mon tableau (je rappelle que je ne suis pas très doué!).
Pourrais tu m'aider un peu plus??
Il me semble aussi qu'une macro permettra, au besoin, une modification plus aisé du fichier (?)

cibleo:
Si je comprend bien, tu selectionnes manuellement des cellules et la macro les colorent. ça à l'air pratique et je garde ta macro de coté!! Néanmoins, mon problème est différent.
J'ai besoin que la macro colore une plage de cases de façon automatique à partir des données d'un tableau, ici une durée (quantité de cases) et une fin). Evidement, cette durée et cette fin sont variables. Elles sont calculées dans un tableau sur une autre feuille.

Je vous joins mon fichier (en version alléger) avec la macro associé pour que vous ayez une meilleure vision du problème.
 

Pièces jointes

  • TESTGuiom.xls
    38.5 KB · Affichages: 75
Dernière édition:

cibleo

XLDnaute Impliqué
Re : sélectionner et colorer certaines cases d'un tableau

Bonsoir guiom,

Les fichiers de Monique regorgent de solutions et d'astuces (sans VBA), je m'en suis souvent inspirés.

Explore celui-ci et ses formules magiques, peut-être un début de piste :cool:

Amicalement Cibleo
 

Pièces jointes

  • PlanningVanwin.zip
    24.8 KB · Affichages: 50
  • PlanningVanwin.zip
    24.8 KB · Affichages: 48
  • PlanningVanwin.zip
    24.8 KB · Affichages: 44
Dernière édition:

guiom

XLDnaute Nouveau
Re : sélectionner et colorer certaines cases d'un tableau

Bonjour tout le monde et merci Cibleo pour ce fichier.

Malgré tout vos bons conseils, je voudrais rester sur une macro.
Le fichier que je prépare est assez complexe et sera certainement modifié à plusieurs reprises. Je pense que la structure du code permet une meilleure vision des opérations.
Malgré tout, j'avoue être complètement incompétent pour écrire un code!! Mais je persiste car au final, je sais que ça m'aidera.

Comment peut-on écrire une macro en coordonnées RiCj???
Par exemple, jcomment transformer la plage ''A1:C1'' en ''R1C1:R1C3"?
Que faut-il rajouter au code pour changer le système de coordonnées??
Un exemple de macro serait le bienvenu!!

Dans mon problème, un passage en coordonnées RiCj permetterait de faire varier la taille (durée) et la position des plages colorés (début et fin) en jouant simplement sur i et j.
(i et j seront calculé dans un tableau à part)

Merci pour vos commentaires
 
Dernière édition:

Statistiques des forums

Discussions
312 677
Messages
2 090 833
Membres
104 677
dernier inscrit
soufiane12