Coloriser plus de 3 conditions
Résolu/Fermé
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
-
6 janv. 2008 à 17:10
aldéric76 Messages postés 303 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 13 juillet 2024 - 26 janv. 2008 à 07:19
aldéric76 Messages postés 303 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 13 juillet 2024 - 26 janv. 2008 à 07:19
A voir également:
- Coloriser plus de 3 conditions
- Picasa 3 - Télécharger - Albums photo
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Ai suite 3 download - Télécharger - Optimisation
- Qu'est ce qu'une femme fait 3 fois par jour et un homme une fois dans sa vie - Forum Loisirs / Divertissements
- Affichez l'ensemble des diapositives à l'écran avec 5 diapositives par ligne. repérez le groupe de 3 diapositives avec une fleur identique alignées verticalement, supprimez la première d'entre elles. un nouveau groupe de 3 diapositives avec une fleur identique alignées verticalement apparaît, supprimez encore la première d'entre elles. déplacez les 3 premières diapositives de la 4e ligne au début de la présentation. quel mot est formé par les lettres de la première colonne ? - Forum Powerpoint
13 réponses
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
8 janv. 2008 à 00:34
8 janv. 2008 à 00:34
Salut
Voila un début de solution. Désolé je n'ai pas excel sous la main avec cette bécane, je n'ai donc pas pu la tester, mais cela devrait ressembler à cela
Crée une macro
Sub CouleurSelonHeure
Option Explicit
dim iHeure As int
iHeure=Hour(Selection) 'On récupère l'heure de la cellule sélectionnée
Select Case iHeure
Case Is = 0
Selection.Interior.ColorIndex = 27
Case Is = 1
Selection.Interior.ColorIndex = 43
Case Is = 2
Selection.Interior.ColorIndex = 31
Case Is = 3
Selection.Interior.ColorIndex = 10
.....
End Select
End Sub
Crée un bouton dans ta feuille et affecte lui cette macro
Cela t'oblige à appuyer sur le bouton à chaque fois mais c'est la première chose qui m'est venue à l'idée.
Voila un début de solution. Désolé je n'ai pas excel sous la main avec cette bécane, je n'ai donc pas pu la tester, mais cela devrait ressembler à cela
Crée une macro
Sub CouleurSelonHeure
Option Explicit
dim iHeure As int
iHeure=Hour(Selection) 'On récupère l'heure de la cellule sélectionnée
Select Case iHeure
Case Is = 0
Selection.Interior.ColorIndex = 27
Case Is = 1
Selection.Interior.ColorIndex = 43
Case Is = 2
Selection.Interior.ColorIndex = 31
Case Is = 3
Selection.Interior.ColorIndex = 10
.....
End Select
End Sub
Crée un bouton dans ta feuille et affecte lui cette macro
Cela t'oblige à appuyer sur le bouton à chaque fois mais c'est la première chose qui m'est venue à l'idée.
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
21 janv. 2008 à 21:38
21 janv. 2008 à 21:38
désolé de ne pas avoir repondu plus vite mais vacances et stage.
bien, j'ai essayé ta macro mais malheureusement je n'ai pas reussi à la faire fonctionner.
as tu une autre idée?
merci
amicalement
bien, j'ai essayé ta macro mais malheureusement je n'ai pas reussi à la faire fonctionner.
as tu une autre idée?
merci
amicalement
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
21 janv. 2008 à 22:02
21 janv. 2008 à 22:02
Au temps pour moi, il y avait 2 erreurs dans le code.
Tu peux faire sauter Option Explicit, d'autre par il faut remplacer Dim iHeure As int par Dim iHeure as Integer
Rq les .... correspondent à la suite de ton code
Tu peux faire sauter Option Explicit, d'autre par il faut remplacer Dim iHeure As int par Dim iHeure as Integer
Rq les .... correspondent à la suite de ton code
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
22 janv. 2008 à 04:18
22 janv. 2008 à 04:18
t'es trop fort et en plus rapide...
ca marche tip top
le problème est que j'ai mal expliqué ce que je voulais EXACTEMENT
méa-culpa
donc je souhaite que les cellules horaires se colorisent automatiquement ou à défaut que je puisse selectionner l'ensemble des cellules pour les coloriser par la macro via un bouton personnalisé par exemple.
houla ais-je été clair?
je récapitule:
j'ai créé un bouton et lui ai affecté la macro que tu m'as proposé.
lorsque je selectionne une cellule contenant un horaire et que je lance la macro, ca fonctionne mais je suis obligé de me taper toute les cellules une par une. De plus, à droite de la cellules contenant l'heure, je doit mettre une description qui doit se coloriser de la couleur de l'horaire lui correspondant.
bon du coup je suis pas sur d'avoir été beaucoup plus clair...
j'espère que tu m'auras tout de même compris et merci encore
amicalement
ca marche tip top
le problème est que j'ai mal expliqué ce que je voulais EXACTEMENT
méa-culpa
donc je souhaite que les cellules horaires se colorisent automatiquement ou à défaut que je puisse selectionner l'ensemble des cellules pour les coloriser par la macro via un bouton personnalisé par exemple.
houla ais-je été clair?
je récapitule:
j'ai créé un bouton et lui ai affecté la macro que tu m'as proposé.
lorsque je selectionne une cellule contenant un horaire et que je lance la macro, ca fonctionne mais je suis obligé de me taper toute les cellules une par une. De plus, à droite de la cellules contenant l'heure, je doit mettre une description qui doit se coloriser de la couleur de l'horaire lui correspondant.
bon du coup je suis pas sur d'avoir été beaucoup plus clair...
j'espère que tu m'auras tout de même compris et merci encore
amicalement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
22 janv. 2008 à 07:25
22 janv. 2008 à 07:25
additif au message precedent:
apres mure reflexion, le tableau serait plus clair sans que les lignes à droite des horaires soient colorisés.
donc en fait je n'ai plus besoins que d'une chose, c'est de ne pas etre obligé de faire la manip sur chaque cellule
merci encore
amicalement
apres mure reflexion, le tableau serait plus clair sans que les lignes à droite des horaires soient colorisés.
donc en fait je n'ai plus besoins que d'une chose, c'est de ne pas etre obligé de faire la manip sur chaque cellule
merci encore
amicalement
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
22 janv. 2008 à 11:03
22 janv. 2008 à 11:03
Essayes ce code
Private Sub Worksheet_Change(ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
If Target.NumberFormat = "hh:mm" Or Target.NumberFormat = "h:mm" Then 'On ne colorie pas les autres formats que les formats "Heure"
CouleurSelonHeure Target
End If
End Sub
Sub CouleurSelonHeure(Cellule)
'La liste des ColorIndex est donnée dans l'aide de VBA ColorIndex,Propriété
Dim iHeure As Integer
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
'On est limité à 14 couleurs dont le noir et le blanc
'On va donc distinguer Matin et Après-midi
If iHeure < 12 Then 'Matin
Cellule.Interior.ColorIndex = iHeure + 3
Else
iHeure = iHeure - 12 'Après-Midi
Cellule.Interior.ColorIndex = iHeure + 3
Cellule.Interior.Pattern = xlPatternLightHorizontal 'C'est à mon avis le plus lisible
End If
End Sub
Rq: Les cellules doivent être au format Heure
Private Sub Worksheet_Change(ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
If Target.NumberFormat = "hh:mm" Or Target.NumberFormat = "h:mm" Then 'On ne colorie pas les autres formats que les formats "Heure"
CouleurSelonHeure Target
End If
End Sub
Sub CouleurSelonHeure(Cellule)
'La liste des ColorIndex est donnée dans l'aide de VBA ColorIndex,Propriété
Dim iHeure As Integer
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
'On est limité à 14 couleurs dont le noir et le blanc
'On va donc distinguer Matin et Après-midi
If iHeure < 12 Then 'Matin
Cellule.Interior.ColorIndex = iHeure + 3
Else
iHeure = iHeure - 12 'Après-Midi
Cellule.Interior.ColorIndex = iHeure + 3
Cellule.Interior.Pattern = xlPatternLightHorizontal 'C'est à mon avis le plus lisible
End If
End Sub
Rq: Les cellules doivent être au format Heure
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
22 janv. 2008 à 11:15
22 janv. 2008 à 11:15
J'ai contourné la restriction de format
Private Sub Worksheet_Change(ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
CouleurSelonHeure Target
End Sub
Sub CouleurSelonHeure(Cellule)
'La liste des ColorIndex est donnée dans l'aide de VBA ColorIndex,Propriété
Dim iHeure As Integer
On Error GoTo Fin:
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
'On est limité à 14 couleurs dont le noir et le blanc
'On va donc distinguer Matin et Après-midi
If iHeure < 12 Then 'Matin
Cellule.Interior.ColorIndex = iHeure + 3
Else
iHeure = iHeure - 12 'Après-Midi
Cellule.Interior.ColorIndex = iHeure + 3
Cellule.Interior.Pattern = xlPatternLightHorizontal 'C'est à mon avis le plus lisible
End If
Fin:
End Sub
Désolé à la lecture on ne voit pas les indentations. La structure du code serait plus claire
Limites :
Tu dois recopier ce code pour chaque feuille
Private Sub Worksheet_Change(ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
CouleurSelonHeure Target
End Sub
Sub CouleurSelonHeure(Cellule)
'La liste des ColorIndex est donnée dans l'aide de VBA ColorIndex,Propriété
Dim iHeure As Integer
On Error GoTo Fin:
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
'On est limité à 14 couleurs dont le noir et le blanc
'On va donc distinguer Matin et Après-midi
If iHeure < 12 Then 'Matin
Cellule.Interior.ColorIndex = iHeure + 3
Else
iHeure = iHeure - 12 'Après-Midi
Cellule.Interior.ColorIndex = iHeure + 3
Cellule.Interior.Pattern = xlPatternLightHorizontal 'C'est à mon avis le plus lisible
End If
Fin:
End Sub
Désolé à la lecture on ne voit pas les indentations. La structure du code serait plus claire
Limites :
Tu dois recopier ce code pour chaque feuille
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
22 janv. 2008 à 11:51
22 janv. 2008 à 11:51
On y arrive
Le code suivant doit être copié dans ThisWorkBook
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
CouleurSelonHeure Target
End Sub
Sub CouleurSelonHeure(Cellule)
'La liste des ColorIndex est donnée dans l'aide de VBA ColorIndex,Propriété
Dim iHeure As Integer
On Error GoTo Fin:
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
'On est limité à 14 couleurs dont le noir et le blanc
'On va donc distinguer Matin et Après-midi
If iHeure < 12 Then 'Matin
Cellule.Interior.ColorIndex = iHeure + 3
Else
iHeure = iHeure - 12 'Après-Midi
Cellule.Interior.ColorIndex = iHeure + 3
Cellule.Interior.Pattern = xlPatternLightHorizontal 'C'est à mon avis le plus lisible
End If
Fin:
End Sub
Le code suivant doit être copié dans ThisWorkBook
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
CouleurSelonHeure Target
End Sub
Sub CouleurSelonHeure(Cellule)
'La liste des ColorIndex est donnée dans l'aide de VBA ColorIndex,Propriété
Dim iHeure As Integer
On Error GoTo Fin:
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
'On est limité à 14 couleurs dont le noir et le blanc
'On va donc distinguer Matin et Après-midi
If iHeure < 12 Then 'Matin
Cellule.Interior.ColorIndex = iHeure + 3
Else
iHeure = iHeure - 12 'Après-Midi
Cellule.Interior.ColorIndex = iHeure + 3
Cellule.Interior.Pattern = xlPatternLightHorizontal 'C'est à mon avis le plus lisible
End If
Fin:
End Sub
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
24 janv. 2008 à 14:07
24 janv. 2008 à 14:07
t es un vrai chef...
et moi un bourricot, du coup ton code fonctionne à merveille mais, je ne sais pas comment le modifier pour pouvoir faire le choix moi même de la couleur associée au créneau horaire
merci encore pour ton aide
amicalement
et moi un bourricot, du coup ton code fonctionne à merveille mais, je ne sais pas comment le modifier pour pouvoir faire le choix moi même de la couleur associée au créneau horaire
merci encore pour ton aide
amicalement
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
24 janv. 2008 à 14:41
24 janv. 2008 à 14:41
Il faut utiliser la méthode Colors, elle est très bien décrite dans l'aide
Elle permet de modifier les ColorIndex en leur attribuant des valeurs RGB. Tu peux donc passer a 26 couleurs et supprimer le hachurage pour l'après-midi.
Colors n'est valable que pour le classeur actif donc il faut définir ces couleurs à l'activation du classeur
Private Sub Workbook_Activate()
'On va supposer que les 14 premières conviennent
ThisWorkbook.Colors(15) = RGB(25, 30, 35)
End Sub
Pour définir les couleurs, utilise Paint avec couleur/Modifier les couleurs/Définir les couleurs personnalisées et modifie les valeurs de Rouge, Vert(G), Bleu
Elle permet de modifier les ColorIndex en leur attribuant des valeurs RGB. Tu peux donc passer a 26 couleurs et supprimer le hachurage pour l'après-midi.
Colors n'est valable que pour le classeur actif donc il faut définir ces couleurs à l'activation du classeur
Private Sub Workbook_Activate()
'On va supposer que les 14 premières conviennent
ThisWorkbook.Colors(15) = RGB(25, 30, 35)
End Sub
Pour définir les couleurs, utilise Paint avec couleur/Modifier les couleurs/Définir les couleurs personnalisées et modifie les valeurs de Rouge, Vert(G), Bleu
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
24 janv. 2008 à 19:17
24 janv. 2008 à 19:17
je te remercie du temps que tu as passé sur mon problème.
j'ai reussi à bidouiller ton code et à obtenir ce que je voulai
je te le montre et le mets à disposition de tout ceux qui serait dans la même attente
amicalement
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
CouleurSelonHeure Target
End Sub
Private Sub CouleurSelonHeure(Cellule)
Dim iHeure As Integer
Dim listcolor As Variant
listcolor = Array(RGB(255, 223, 223), RGB(223, 255, 223), RGB(223, 255, 255))
On Error GoTo Fin:
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
Cellule.Interior.Color = listcolor(iHeure)
Fin:
End Sub
j'ai reussi à bidouiller ton code et à obtenir ce que je voulai
je te le montre et le mets à disposition de tout ceux qui serait dans la même attente
amicalement
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'S'exécute automatiquement à chaque changement de valeur de cellule
'Voir l'aide de VBA Worksheet_Change
CouleurSelonHeure Target
End Sub
Private Sub CouleurSelonHeure(Cellule)
Dim iHeure As Integer
Dim listcolor As Variant
listcolor = Array(RGB(255, 223, 223), RGB(223, 255, 223), RGB(223, 255, 255))
On Error GoTo Fin:
iHeure = Hour(Cellule) 'On récupère l'heure de la cellule sélectionnée
Cellule.Interior.Color = listcolor(iHeure)
Fin:
End Sub
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
24 janv. 2008 à 21:25
24 janv. 2008 à 21:25
merci encore à tout ceux qui ont la gentillesse de prendre quelques minutes pour rendre services au "bleu" j'espère pouvoir vous rendre la pareille un jour
amicalement
amicalement
aldéric76
Messages postés
303
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
13 juillet 2024
7
26 janv. 2008 à 07:19
26 janv. 2008 à 07:19
amicalement