Test sur une date pour colorer une cellule

Fermé
vieuxray - Modifié le 12 août 2018 à 11:44
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 17 août 2018 à 14:11
Bonjour a tous, forum bonjour,

je suis sous Windows 10 et Excel 2007

J'ai commencer un programme et je souhaiterai svp effectuer un test en VBA

Lorsque je clic dans une des cellules de la colonne (A) a partir de A2 car la première est pour le titre.
la date s'affiche sous cette forme "Dimanche 12 Aout 2018" avec le (D) de dimanche en gras et rouge idem pour le (A) mois d'aout.

je voudrais effectuer un test en VBA Ex:

Si A2=une date alors on colorie la cellule de la colonne (G2) intérior en jaune
Si A5=une date alors on colorie la cellule de la colonne (G5) intérior en jaune

etc etc etc a chaque fois qu'une date est copier dans la colonne (A) alors on colorie le fond en colonne (G)

je n'arrive pas a faire ce test, si svp quelqu'un veut bien m'aider.

Merci a tous pour aide et votre savoir partager.

Bon dimanche a tous

Cdlt Ray
A voir également:

15 réponses

yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
12 août 2018 à 21:49
bonjour, peux-tu partager le programme que tu as commencé?
1
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
Modifié le 15 août 2018 à 16:27
Bonjour à tous les deux

En attendant le retour de yg_be (salut amical)
Tu peux raccourcir un peu en remplaçant les 5 lignes
        'Target.Offset(0, 0).Interior.ColorIndex = 40                                  '(A2)=Brun
'Target.Offset(0, 1).Interior.ColorIndex = 40 '(B2)=Brun
'Target.Offset(0, 2).Interior.ColorIndex = 40 '(C2)=Brun
'Target.Offset(0, 3).Interior.ColorIndex = 40 '(D2)=Brun
'Target.Offset(0, 4).Interior.ColorIndex = 40 '(E2)=Brun

Par celle ci
        Target.Resize(1, 5).Interior.ColorIndex = 40  ' Axx:Exx = Brun

Cdlmnt
1
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
Modifié le 15 août 2018 à 17:54
Salut ccm81,

Merci pour la modification, c'est sympa a toi.
Alors ca fonctionne bien, ton code a trouver refuge dans mon fichier.

Si autre possibilité je suis preneur, LOL.

Encore merci pour ton savoir partagé, bonne fin d'après midi a toi.

Cdlt Ray
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
Modifié le 14 août 2018 à 11:31
Bonjour a tous, bonjour forum,
Bonjour yg_be

Merci pour ta réponse, c'est sympa.

J'ai réussi a faire ce pourquoi j'ai poster mais voir la suite svp.

Je ne peux pas joindre de fichier car je fais seulement des bouts d'essai pour un futur programme.

Lorsque je clic dans une des cellules de la colonne (A) a partir de A2 car la première sera pour le titre.
la date s'affiche sous cette forme "Dimanche 12 Aout 2018"

Et je remplie la cellule EX:

La cellule A2 qui contient la date couleur "Brun"

Le code si dessous me semble un peu lourd, si quelqu'un saurai me l'optimiser, ca serai super gentil.
Je vous remercie tous de votre aide.
Bonne journée a vous.

Cdlt Ray


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A2:A200]) Is Nothing And Target.Count = 1 Then

If Target.Value = Format(Target.Value, "dddd dd mmmm yyyy") Then _
Target.Offset(0, 0).Interior.ColorIndex = 40 '(A2)=Brun
Target.Offset(0, 1).Interior.ColorIndex = 40 '(B2)=Brun
Target.Offset(0, 2).Interior.ColorIndex = 40 '(C2)=Brun
Target.Offset(0, 3).Interior.ColorIndex = 40 '(D2)=Brun
Target.Offset(0, 4).Interior.ColorIndex = 40 '(E2)=Brun
Target.Offset(0, 5).Interior.ColorIndex = 45 '(F2)=Orange
Target.Offset(0, 6).Interior.ColorIndex = 6 '(G2)=Jaune

'Quand une des cellules de la colonne (A) est vide alors j'efface les couleurs

If Target.Value = "" Then _
Target.Offset(0, 0).Interior.ColorIndex = 2 'Blanc Supprime les couleurs
Target.Offset(0, 1).Interior.ColorIndex = 2
Target.Offset(0, 2).Interior.ColorIndex = 2
Target.Offset(0, 3).Interior.ColorIndex = 2
Target.Offset(0, 4).Interior.ColorIndex = 2
Target.Offset(0, 5).Interior.ColorIndex = 2
Target.Offset(0, 6).Interior.ColorIndex = 2
End If
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
14 août 2018 à 12:16
à quel genre d'optimisation penses-tu?
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
14 août 2018 à 12:32
salut ye_be

merci pour ta réponse ,

je pense au répéter du code , j'ai regarder et avec Offset(0,+ ou -) on pourrait colorier plusieurs colonnes en une seule mais je n'ai pas su faire.

Mais si une autre possibilité code VBA d'arriver au même résultat je suis preneur

Bon app et merci pour ton aide

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
14 août 2018 à 12:53
tu pourrais faire:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A2:A200]) Is Nothing And Target.count = 1 Then

    If Target.Value = Format(Target.Value, "dddd dd mmmm yyyy") Then
        Target.Offset(0, 0).Interior.ColorIndex = 40 '(A2)=Brun
        Target.Offset(0, 1).Interior.ColorIndex = 40 '(B2)=Brun
        Target.Offset(0, 2).Interior.ColorIndex = 40 '(C2)=Brun
        Target.Offset(0, 3).Interior.ColorIndex = 40 '(D2)=Brun
        Target.Offset(0, 4).Interior.ColorIndex = 40 '(E2)=Brun
        Target.Offset(0, 5).Interior.ColorIndex = 45 '(F2)=Orange
        Target.Offset(0, 6).Interior.ColorIndex = 6 '(G2)=Jaune
    End If
    'Quand une des cellules de la colonne (A) est vide alors j'efface les couleurs
    
    If Target.Value = "" Then
        Range(Target.Offset(0, 0), Target.Offset(0, 6)).Interior.ColorIndex = 2 'Blanc Supprime les couleurs
    End If
End If
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
14 août 2018 à 14:16
Re salut,

Merci pour la modification du code, je viens de faire des essais ca fonctionne parfaitement bien
du coup le code est bien plus court et surtout moins répétitif, merci a toi.

Une petite question, si tu veux bien.

Dans ma colonne (E) j'ai des formules s'étendant dans la plage de (E2:E42), la formule fonctionne très bien.

Mais mon soucis est que lorsque je veux insérer ou supprimer une ligne, la formule de la ligne est effacer.

J'ai vu mais voila ou et quand ??? qu'on pouvais palier a ce genre de problème en modifiant la formule, EX

=SI($C$27>1;$E$26-$C$27;"") ou encore =SI(C27>1;$E26-$C27;"") mais ca marche pas.

Dit moi, svp, si c'est possible, car je souhaiterai par la suite créer une macro pour insérer des lignes ou supprimer des lignes.

'************************

=SI(C27>1;E26-C27;"")


Encore merci pour ton code, bonne après midi a toi.

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
14 août 2018 à 17:33
la formule disparaît vraiment quand tu supprimes une ligne?
si tu insères des lignes par macro, tu peux facilement ajouter une formule dans les lignes insérées, par exemple en allant chercher une formule dans une ligne existante.
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
Modifié le 14 août 2018 à 18:02
Re,
Cette formule ci dessous se trouve en colonne E2 et le l'ai tirer vers le bas jusqu'à E42
Donc il y a cette formule tout au long de cette colonne
et quand je supprime ou insère une ligne la formule s'efface complètement.

=SI(C2>1;E1-C2;"")

Pour le faire par macro, je ne sais pas faire, je cherche un code pour insérer ou supprimer une ligne sans effacer la formule.

merci a toi

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
14 août 2018 à 20:01
moi quand je fais tout cela, la formule ne disparaît pas du tout.
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
15 août 2018 à 12:12
Salut yg_be,

Pour moi ca ne fonctionne pas pourtant je l'ai déjà fait j'ai des recherches dans mes anciens fichiers et sur le net pas je retrouve pas pour la macro "insérer et supprimer" des lignes sans perte des formules.

je peux partager mon fichier si tu le souhaites car la j'ai presque fini manque plus que cette fameuse macro.

A bientôt et merci pour ton aide.

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
15 août 2018 à 12:23
je peux regarder si tu partages ton fichier.
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
15 août 2018 à 12:33
Voici le lien pour le fichier, je ne touche plus au fichier j'attends de tes nouvelles prends le temps rien ne presse encore merci pour ton aide n'hésite pas de critiquer ou de dire comment j'aurai du faire, c'est bon pour la formation VBA.

bonne journée a toi et bon app

https://www.cjoint.com/c/HHpkvYTKjKz
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
15 août 2018 à 18:14
voici venu le moment de définir ce que tu attends de la macro. sauf s'il s'agit d'adapter une macro existante?
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
15 août 2018 à 18:35
Salut yg_be,

je souhaiterai deux macros avec un bouton pour actionner l'une ou l'autre des macros, quand il y a le besoin.

Pour infos il y a des formules dans les colonnes E et F.

Je souhaiterai une première macro qui pourrai (insérer une ligne) qui s'incrémente en fonction de la formule au dessus et au dessous de la ligne insérer et qui ne supprime pas les formules des colonne E et F.

Et une autre macro qui me (supprimerai une ligne) si j'ai le besoin et bien sur qui se décrémente en fonction de la formule au dessus et au dessous de la ligne qui vient d'être supprimer afin de garder un bon suivi logique des formules et aussi si c'est possible.

Voila j'espère que je t'ai bien expliquer mon besoin, j'ai chercher sur le net, mais trouver pour moi.

Merci a toi, je te souhaite la bonne soirée.

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
15 août 2018 à 18:40
la ligne serait insérée avant la cellule sélectionnée?
la ligne de la cellule sélectionnée serait supprimée?
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
15 août 2018 à 19:18
J'ai tenté quelques simplifications, vois si ça roule comme tu veux
https://www.cjoint.com/c/HHpro26fSuB

RQ. Je n'ai pas regardé le pb du post #6

Cdlmnt
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
16 août 2018 à 10:52
Salut ccm81,

Merci pour les modifications, j'ai des formules en colonnes E et F et elles se trouvent souvent effacer lors de divers manipulations du programme, ce qui bien sur fausse les calculs, il est souvent écrit aussi "REF#".

Il existe un moyen d'éviter l'effacement des cellules ou sont les formules par une manière de coder la formule, mais je ne sais plus comment on fait.

On peux (insérer ou supprimer) une ligne, les formules s'ajustent automatiquement sans les effacées.

Voir le post #6 svp

Merci pour ton aide, bonne journée a toi

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018
16 août 2018 à 12:04
je laisse ccm81 continuer le boulot.
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
15 août 2018 à 19:24
Re

Ex: Je sélectionne un endroit en dessous des lignes déjà utilisées ou remplies puis je clic sur le (bouton insérer ligne) pour insérer une ligne afin d'avoir une ligne de plus et on recommence si besoin encore d'une ou plusieurs lignes.

On sélectionne la ligne dont on n'a plus besoin, puis on clic le bouton(supprime ligne) et on supprime la ligne sélectionnée.

voila je vois ca comme ca, classic, c'est ce que j'ai pu lire au cours de mes lectures sur le net.

Bonne soirée a toi et merci

Cdlt Ray
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
16 août 2018 à 14:55
Encore simplifié
https://www.cjoint.com/c/HHqm2l5VRkB

Cdlmnt
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
16 août 2018 à 17:11
RQ. Pour supprimer une ligne, un clic-droit sur la ligne puis Supprimer devrait suffire (difficile de faire plus efficace)
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
16 août 2018 à 19:46
salut merci pour les modifs

mais ca marche quand on supprime ou ajoute une ligne ca efface les formules colonnes F et met colonne E avec #REF!

je souhaiterai juste protéger les colonnes E et F afin de pouvoir utiliser le programme sans penser si les formules s'effacent .

merci a toi bonne soirée

Cdlt Ray
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018
16 août 2018 à 21:01
quand tu écris "ca efface les formules colonnes F", ne devrais-tu pas écrire "cela modifie le résultat des formules colonnes F"?
ou bien les formules en colonne F ont-elles réellement disparu?
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
Modifié le 17 août 2018 à 08:21
Salut,

Si je supprime une ligne ca engendre l'erreur #REF! en colonne E ou bien la formule disparait, le calcul n'ai plus bon.

Pour la colonne F : que j'ajoute ou supprime une ligne la formule disparait complètement.

Donc je suis obliger de remonter en F2 puis re étirer la formule vers le bas idem pour la colonne E2.

C'est très embêtant car je ne suis jamais sur de savoir si les formules sont toujours présentes.

De plus j'ai besoin d'insérer des lignes voir une ou plusieurs lignes.

Mais tu a le programme fait l'essai et vois ce qui se passe dans les colonnes E et F

Merci pour l'aide apporter, bon W-end.

Cdlt Ray
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
17 août 2018 à 11:51
Et comme ça pour une suppression de ligne ?
https://www.cjoint.com/c/HHrjX18tEEB

RQ. Est il pertinent de prévoir une insertion de ligne en plein milieu du tableau ?

Cdlmnt
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
17 août 2018 à 13:23
0
raymondo.free.fr Messages postés 39 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 26 août 2018 2
Modifié le 17 août 2018 à 13:45
Salut ccm1,

Merci pour tes efforts, mais ca fonctionne pas, il y a pleins d'erreur qui se cumule, effacement de formule ou le fond de cellule qui disparait, calcul faux, etc etc etc, je ne suis pas étonné car j'ai beaucoup chercher sur le net et je n'ai pas trouver un code qui fonctionne correctement.

Donc malgré mes recherches "On va laisser tomber" je vais me contenter du programma tel qu'il est, ce n'ai pas grave.

Je te remercie bien pour ton aide et recherches plus les modifications apporter au programme.

Je te souhaite un bon W-end, encore merci a toi.

Cordialement Ray
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
17 août 2018 à 14:11
1. Perso, je n'ai pas d'erreur pour
- Ajouter une date en fin de tableau
- Ajouter un commentaire en fin de tableau
- Supprimer une ligne (date ou commentaire) avec clic-droit/Supprimer

2. Je n'ai pas abordé l'insertion d'une ligne (date ou commentaire) en milieu de tableau

3. Je laisse tomber

Cdlmnt
0