De la couleur, toujours de la couleur

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

D

Dango

Guest
Bonsoir à tous et à toutes,
Comment une couleur sélectionnée en Ex: FI peut être reportée en A1 et B1 sans autre modification que la couleur choisie.

Une petite pièce jointe vaut mieux qu'un grand discours.
J'ai fais mon marché dans le forum pour faire une partie du programme, le reste me semble pas si difficile, mais je peine à trouver la solution.

Merci pour toute l'attention que vous me porterez

Daniel
 

Pièces jointes

Bonjour,

est-ce qu'un simple copier / collage spécial (format) ne peut pas faire l'affaire ?

Range("H10:H20").Select
Selection.Copy
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("I10:I20").Select
Selection.Copy
Range("E10").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

A+
 
Bonjour à tous

Avec un tout petit ajout à ta procédure, en passant par une autre variable range, et en utilisant UNION, cela permet de modifier ce que tu veux pour les cellules de départ (Couleur de fond, couleur de police et caractères gras ou non), et ne modifier que certaines de ces propriétés pour les autres cellules (en l'occurence, ici, uniquement la couleur de fond)
En fait, C2 devient l'ensemble des cellules du matin, où l'ensemble des cellules de l'après-midi.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, C2 As Range
Application.ScreenUpdating = False 'Pour désactiver la mise à jour de l'affichage
For Each C In Worksheets(1).Range("H10:I20")
If C.Column = 8 Then
Set C2 = Union(C, C.Cells(1, -4), C.Cells(1, -3))
Else
Set C2 = Union(C, C.Cells(1, -3), C.Cells(1, -2))
End If
Select Case C.Value
Case "Congés"
C2.Interior.ColorIndex = 50
C.Font.ColorIndex = 50
Case "Congés n-1"
C2.Interior.ColorIndex = 5
C.Font.ColorIndex = 5
Case "RTT"
C2.Interior.ColorIndex = 6
C.Font.ColorIndex = 6
Case "Récup"
C2.Interior.ColorIndex = 46
C.Font.ColorIndex = 46
Case "Absence"
C2.Interior.ColorIndex = 15
C.Font.ColorIndex = 15
C.Font.Bold = True
Case "Maladie"
C2.Interior.ColorIndex = 29
C.Font.ColorIndex = 29
C.Font.Bold = True
Case ""
C2.Interior.ColorIndex = 0
C.Font.ColorIndex = 0
C.Font.Bold = False
End Select
Next C
Application.ScreenUpdating = True
End Sub


Remarque: j'ai remplacé ta série de IF then ...
par select case

Bonne journée.
Laurent
 
Bonjour Jean Marc,

J'ai intégré ton bout de programme à mon application.

1) la copie s'ppère sur une seul colone le matin et l'après midi (sur les 2 colonnes du matin et sur les 2 colonnes de l'après midi serait ma préférence)

2) Une fois l'application lancée, elle ne s'arrete plus...

Je te remercie d'y avoir réffléchi. Mais puis-je encore abuser de ta ou de votre gentillesse afin de résoudre cette énigme?
A bientôt Jean Marc.

Daniel
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
1 K
Compte Supprimé 979
C
Retour