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

Liste jours de la semaine

  • Initiateur de la discussion Initiateur de la discussion knaekes
  • 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 !

knaekes

XLDnaute Occasionnel
Bonjour,

à partir de différentes listes de jours de la semaines je souhaite reporter dans une cellule "cible" la première lettre de chaque lettre des jours de la liste.

A cela s'ajoute un userform qui me permet de sélectionner certains jours. Ainsi si le lundi est coché dans le userform je souhaite que dans la cellule cible le "L" soit écrit en rouge. Les initiales des jours non sélectionnés mais présents dans la liste resteront 'noir'.

voir exemple fichier joint.

Avez-vous des propositions?

Merci d'avance pour votre aide
 

Pièces jointes

Re : Liste jours de la semaine

Bonjour membres de la Cellule

knaekes
Voici une proposition pour ton coloriage de caractères
(à mettre dans le code de l'userform)
Code:
Private Sub CommandButton1_Click()
Dim i As Byte
Range("B1").Font.ColorIndex = 0
For i = 1 To 7
[B1].Characters(i, 1).Font.ColorIndex = IIf((Controls("CheckBox" & i)), 3, 0)
Next
End Sub
EDITION: ajout code pour extraire les jours de tes colonnes
(à mettre dans un module standard
Code:
Sub x_joursemaines()
Set Dicocb = CreateObject("Scripting.Dictionary")
Set Dicocc = CreateObject("Scripting.Dictionary")
Set Dicocd = CreateObject("Scripting.Dictionary")

cb = Range("b4", [B65000].End(xlUp)).Value
cc = Range("c4", [c65000].End(xlUp)).Value
cd = Range("d4", [d65000].End(xlUp)).Value

For Each c In cb
Dicocb(c) = UCase(Left(c, 1))
Next c

For Each c In cc
Dicocc(c) = UCase(Left(c, 1))
Next c

For Each c In cd
Dicocd(c) = UCase(Left(c, 1))
Next c

[B1] = Replace(Join(Dicocb.items), " ", "")
[C1] = Replace(Join(Dicocc.items), " ", "")
[D1] = Replace(Join(Dicocd.items), " ", "")
[COLOR=SeaGreen]'inspiré et adapté de la syntaxe de JB[/COLOR]
End Sub
 
Dernière édition:
Re : Liste jours de la semaine

ok merci cela fonctionne

Toutefois je ne suis pas parvenu à l'adapter au cas où les suites de jours se suivent dans une même colonne

Ci-joint la solution que j'ai retenu

bonne soirée
 

Pièces jointes

Re : Liste jours de la semaine

Bonjour,

en fait j'ai constaté un souci dans ta proposition. En effet celle-ci suppose que l'intégralité des jours de la semaine est comptabilisé, or ceci n'est pas forcément le cas.

Je m'explique:

Si la série de semaine est la suivante: MXJVSD (il n'y figure pas le lundi =L)
et si dans le userform je ne coche que la case "lundi" alors, le M de Mardi sera malgré tout colorier en rouge car il se trouve en position 1 dans la liste.

Sur la base du fichier joint dans le précédent message, saurais-tu comment remédier à ce problème ?

merci.
 
Dernière édition:
- 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

Réponses
2
Affichages
892
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…