Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

coloriage de cellule

  • Initiateur de la discussion Initiateur de la discussion BAT
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BAT

XLDnaute Occasionnel
Bonjour,

J'essaye de créer le code macro qui va me colorier et m'inscrire "F" dans les cellules d'une colone si une des valeur de la feuille est présente dans une matrice d'une autre feuille. (cf doc joint)

Sur la feuille "Masque", la cellule a tester est K7. Si la valeur de K7 est dans la matrice de la feuille "ADM", alors les cellules D10😀30 se colorie en rouge avec un F dedans.
Ensuite si sur la feuille "Masque", la cellule a tester est M7. Si la valeur de K7 est dans la matrice de la feuille "ADM", alors les cellules E10:E30 se colorie en rouge avec un F dedans.
...
Voila en résumer ce que je tente de faire et ce que j'ai imagé dans ce document joint.

J'espère que vous aurez une astuce pour moi. Merci à tous par avance.

A +
 

Pièces jointes

Re : coloriage de cellule

Bonjour BAT,

Ci-joint le fichier. La macro est dans le code de la feuille MASQUE :

Code:
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 5
If IsNumeric(Application.Match(Cells(7, 10 + i), Sheets("ADM").Range("F:F"), 0)) Then
Range("C10:C39").Offset(0, i).Value = "F"
Range("C10:C39").Offset(0, i).Interior.ColorIndex = 9
End If
Next
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : coloriage de cellule

Bonjour,

Sans macro, avec la mise en forme conditionnelle (MFC). Il faut le faire en deux fois car la MFC ne supporte pas les références à une autre feuille. Voir formules dans les cellules J7, L7, N7, P7 et R7 (elles sont écrites en blanc pour être invisibles) ensuite voir formules dans MFC

Cordialement

EDIT : je n'avais pas vu qu'il fallait écrire "F". il suffirait de mettre la formule équivalente à celle de J7 dans les cellules de la colonne D mais il y a un petit problème lorsque le jour n'est pas férié. Je vais regarder...

EDIT2 : non, cela n'ira pas car je pense que tu veux écrire des choses dans ces colonnes ; on ne peut donc pas y mettre de formules! Désolé!
 

Pièces jointes

Dernière édition:
Re : coloriage de cellule

Bonjour,

Dans une MFC, on peut se référer à des données situées dans sur une autre feuille.

Il faut pour ça nommer les cellules.

Dans le fichier joint, j'ai nommé la plage de cellules jours_fériés et j'y fais ensuite référence dans la formule de la MFC.

La seule chose qu'une MFC ne puisse faire, c'est mettre une lettre dans les cellules.

Reste à voir comment le fichier de notre ami est destiné à être utilisé.

Je joins le fichier avec quelques commentaires.

@+
 

Pièces jointes

Re : coloriage de cellule

Re

Je pense en effet qu'une MFC et des formules appropriées sont plus adaptées.

Concernant la macro, il faudrait initialiser la plage D10:H39, mais pour cela il faudrait connaître les formules à y mettre.

A+
 
Re : coloriage de cellule

Le problème, c'est ce que je disais plus haut dans mon EDIT2 : si, comme je le pense, il veut écrire un nombre ou une lettre lorsque ce n'est pas férié, il va écraser la formule que l'on y aura mise...je ne vois pas comment faire en dehors d'une macro (celle de JOB75 qui va bien et qui pourrait d'ailleurs se lancer à chaque modif des dates de la ligne 7 ou de celles de la feuille ADM)

Cordialement
 
Re : coloriage de cellule

Bonsoir à tous,

mécano a sans doute raison, voici donc le fichier et la macro modifiés :

Code:
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 5
If IsNumeric(Application.Match(Cells(7, 10 + i), Sheets("ADM").Range("F:F"), 0)) Then
Range("C10:C39").Offset(0, i).Value = "F"
Range("C10:C39").Offset(0, i).Interior.ColorIndex = 9
[COLOR="Red"]Else
If Range("C10").Offset(0, i).Value = "F" Then
Range("C10:C39").Offset(0, i).Value = ""
Range("C10:C39").Offset(0, i).Interior.ColorIndex = 0
End If[/COLOR]
End If
Next
End Sub
A+
 

Pièces jointes

Re : coloriage de cellule

Bonjour,

Je ne sais pas si cela te servira, mais j'ai repris ce qu'a fait JOB75 (il y a un décalage de colonnes à corriger) et je l'ai automatisé.
Selon mon habitude, j'ai nommé les cellules de façon à, pouvoir ensuite ajouter ou supprimer des lignes et des colonnes dans la feuille sans avoir à retoucher le code.

Pour le cas où la date du lundi proviendrait d'un calcul, il faudrait ajouter une procédure avec l'événement Worksheet_Calculate pour avoir une remise à jour automatique. J'ai essayé mais je n'ai pas trouvé la bonne solution (ça tourne en rond même en annulant le calcul pendant la mise à jour...). Je dois m'absenter quelques jours, j'essaierai en revenant...

Question à JOB75 : où trouve-t-on l'aide pour la fonction Application.Match ; je n'ai rien trouvé ?

Cordialement
 

Pièces jointes

Dernière édition:
Re : coloriage de cellule

Bonjour à tous,

Je réponds à mécano, qui a fait du bon travail.

1)
j'ai repris ce qu'a fait JOB75 (il y a un décalage de colonnes à corriger)
Je ne vois pas de quoi il s'agit, merci de préciser.

2) Dans le module, la variable ZoneAcolorier apparaît alors que c'est ZoneAcolor qui a été définie dans la macro précédente.

3) Pas d'aide VBA sur Match (comme pour la plupart des fonctions de feuille de calcul en anglais). Il faut rechercher EQUIV et rechercher une fonction commençant par M... L'aide serait à revoir sur ces fonctions !

A+
 
Re : coloriage de cellule

Bonjour à tous


Trouvé dans l'aide VBA

 
Dernière édition:
Re : coloriage de cellule

Merci à tous pour les renseignements sur Match.

Pour Job75 : la correction dont je parle c'est mettre :

...Application.Match(7,9+2*i) au lieu de Application.Match(7,10+i) car sinon cela ne fonctionne plus correctement à partir du mardi car il y a les colonnes J, L N et P entre les dates.

Pour le Dim ZoneAcolorier au niveau module, il faut l'enlever (c'est un vieux reste d'autres essais...)

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…