Selectionner des plages pour colorer auto.

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 !

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
J'ai développé un petit fichier d'absences le code est :
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("C5:L22")) Is Nothing Then
With Target
'If Selection.Interior.ColorIndex = 6 Then
'MsgBox " C'est un jour férié , modifiez votre sélection "
'Exit Sub
'End If
If Selection.Interior.ColorIndex = 3 Then
Selection.Interior.ColorIndex = xlNone
Else
Selection.Interior.ColorIndex = 3
End If
End With
End If
End Sub
Mon But est de pouvoir l'intégrer à un fichier plus complexe récupéré ( Ici ..? je sais plus ou) très intéressant , j'y ai déjà apporté des modif
Afin d'avoir une idée ou solution plus rapide que tout seul dans mon coin à chercher??
Comment incorporer ce code dans ce fichier ? la finalité serait de remplacer la couleur , ici en DUR ( rouge=3)
en cliquant sur un fond prédéfini comme Matin =jaune , AM=Bleu
J'aurai CP=jaune, RTT=Orange Maladie=Rouge
Puis de reporter cette couleur en selectionnant une plage ( comme je fais dans le petit bout de code)
Je sais c'est pas évident , mais je pense qu'il y a des BARBA... très compétent pour ce genre de Pb !!!!
merci
 

Pièces jointes

Bonjour Hervé

Je ne sais pas si c'est la bonne solution, à adapter à ton cas.Et change aussi le titre du post, par-ce que inserer un code et modifier la couleur d'une sélection, ce n'est pas la même chose.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D10:AZ50")) Is Nothing Or Target.Count > 1 Then Exit Sub
Select Case UCase(Target.Value)
    Case "AM"
        Target.Interior.ColorIndex = 4
        Target.Font.ColorIndex = 4
    Case "PM"
        Target.Interior.ColorIndex = 3
        Target.Font.ColorIndex = 3
    Case "MD"
        Target.Interior.ColorIndex = 33
        Target.Font.ColorIndex = 33
    Case "CG"
        Target.Interior.ColorIndex = 6
        Target.Font.ColorIndex = 6
    Case Else
        Target.Interior.ColorIndex = xlNone
        Target.Font.ColorIndex = 0
End Select
End Sub
 
Dernière édition:
Bonjour , et comme dit JC : Salut Loup Seul
Merci , mais ce n'est pas ce que j'attends , je cherche à simplifier la saisie des employés
Le bout de code vient d'un fichier ou j'ai la liste par nom et 1 sem/feuille : On selectionne une Cel. on étend vers la droite et le clic droit met tout en rouge
Donc je pensais intégrer cette idée dans un calendrier et comme je cherche les complications avoir le choix des couleurs par légende : Jaune = CP , Orange = RTT , Rouge= Maladie ..etc
Là je vais fouiner pour étudier la possiblité de clic sur une ou plage de Cel. et que s'ouvre une liste déroulante justement avec cette légende ensuite le traitement colorera !!! je vais voir si possibilité et pas usine à gaz !!
 
Ca y est , j'emmerge
Non ce n'est pas dans ce code que je cherche à modifier mais dans le GROS fichier calendrier
En plus ca colore Toute la ligne ( entirerow) moi dans le 1er fichier ça allait de 1 à 10 cel. max
Maintenant si par exemple , la personne pose 2 sem de CP du 04/01 > elle clique en D10 étend jusque E21
et avec clic droit ca colore ,, reste à savoir comment faire pour le choix Motif absence et couleur ???
 
Re Hervé, Bonjour Pierre-Jean

VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim dercol As Long, col As Long, c As Long, rw as long
If Intersect(Target, Range("d1:o1000")) Is Nothing Or Target.Count > 1 Then Exit Sub

'À remplacer par la dernière colonne remplie
dercol = Columns("O").Find("*", Range("O1"), , , , xlPrevious).Column

For col = ActiveCell.Column To dercol
c = c + 1
For rw = 0 to 4
Target.Offset(rw, c - 1).Interior.Color = vbRed
Next rw
Next col
Cancel = True
End Sub
 
Dernière édition:
Désolé Lone wolf , ta sub ne va pas car
la plage est rigide si je dis que ma dercol est AW ( vrai) que je me mets en D cela colore TOUT et sur 5 lignes
On va prendre un exemple de ce qu'il faudrait : si c'est la semaine
Donc je pose CP du 4/01 au 08/01 > je selectionne D10 -E14 et un clic me met en Rouge ou autre couleur de mon choix
Pierre Jean : Faire un copier/coller : on fait les 2 ?? sinon si c'est juste copier un Motif , puis selectionner une plage > coller
Pas besoin de code ??
 
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
14
Affichages
255
Réponses
3
Affichages
300
Réponses
2
Affichages
408
Retour