Changement de couleur de groupe de cellule a paritr d'une cellul

Résolu/Fermé
Signaler
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014
-
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014
-
J'aurai besoin de votre aide.
Je suis entrain de faire un tableau de rendez-vous ou plusieurs élements doivent être renseigner.
Et cherche le moyen de changer la couleur de fond d'un groupe cellule (groupe de 3 colonne et 7 ligne) soit en cliquant sur un bouton soit à partir d'un chiffre ou d'une lettre mis dans une cellule. Et mon tableau comporte 70 groupe comme cela. Chaque groupe devant être individuel.
Par avance merci de vos lumières et de votre aide

8 réponses

Messages postés
13339
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
19 janvier 2022
2 325
Bonjour

On peut le faire avec une macro mise dans la worksheet de la feuille concernée

ALT + F11 pour ouvrir Editeur VBA
Double clic sur la feuille à traiter dans l'arborescence
Copier et coller la macro suivante dans la page blanche et fermer l'Editeur

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "X" Then ' modifier ici le X si autre lettre
x = Target.Row
y = Target.Column
For a = x To x + 6
For b = y To y + 2
Cells(a, b).Interior.ColorIndex = 6 ' modifier ici le 6 pour une autre couleur
Next
Next
End If
End Sub


Chaque fois qu'un X est entré dans une cellules cette cellule et les cellules contiguës à sa droite sur 3 colonnes et en dessous sur 7 lignes sont colorées en jaune

Macro à adapter selon la lettre déclenchant et la couleur voulue

Cdlmnt
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

Bonsoir,

Merci pour votre aide.

Par contre quand je j'enlève la lettre la couleur reste. Y t'il un moyen qu'elle s'enleve quand je supprime la lettre (sa redevient donc sans fond)

Merci par avance
0
Messages postés
24267
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2022
7 026
tu as eu d'autres propositions plus bas...
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

oui Eriic j'ai vu la votre aussi. Ce sont ces 2 solutions qui me plaise le plus.
0
Messages postés
17818
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 913
Bonjour,

70 groupes ce qui veut dire 70 couleurs, si c'est bien ce que j'ai compris il va falloir passer par du VBA si tu as quelques notions ce que je doute à la vue de tes explications et accepter que plusieurs groupes aient la même couleur bien que le panel couleur d'Excel depuis 2007 est important
0

Bonjour, Merci pour votre réponse.

Mais le système que vous me donner ne pourra fonctionne Avec mon Tableau il me semble.
Vu que la cellule Dispo se trouve vers le Milieu de mes carré à chaque fois.

Et le système de changement de Couleur sera la pour que l'on puisse voir quel ordre de réparation doivent encore être imprimer
0
Messages postés
17818
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 913
Re,

En VBA il est possible de tout ou presque tout programmer, soit plus constructif dans tes explications, exemple si je saisi un X en cellule F5 il faut que les cellules E2:G8 soit de couleur jaune
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

Rebonjour,

Merci de votre aide.

Alors je vais essayer d'être plus précis.

Une couleur me suffit.

Je joint une photo, ce sera plus explicite également.


Il s'agit d'un planning pour prise de rendez-vous par tranche horaire de 30 minutes.
1 carre correspond à un RDV. Une fois cette liste rempli et le jour venu je dois à partir de ce fichier créer des ordres de réparation ou facture.
Mais vu que nous sommes plusieurs à travailler sur le même classeur je voulais pouvoir mettre en jaune les ordres déjà traiter. Car sinon si un collègue rajoute un RDV, je ne peut pas voir si je l'ai déjà traiter ou non.

La feuille sera également verrouiller pour que aucun ne puisse modifier la base.

Question cerise sur le gateau. Est-il possible que chacun est ce fichier mais qu'il se mette chez chacun à jour en temps réel. (Nous sommes en réseau, et à l'heure actuel on a un fichier et tout le monde vas sur le même. Donc de l'attente à certain moment.) Si pas possible pas grave
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

et j'ai testé le premier code. Cela irai. Par contre cela n'enlève pas la couleur lorsque j'enlève la lettre.

Si ca c'est faisable alors je suis presque combler
0
Messages postés
24267
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2022
7 026
Bonjour à tous

une proposition par double-clic n'importe où dans le bloc. Fonctionne en bascule.
Voir les constantes au début du programme pour adapter à la feuille.
https://www.cjoint.com/c/DKrqV3lAbN9

Tu peux mettre en partage ton classeur pour travailler à plusieurs dessus.
Le mieux est d'enregistrer le fichier avant de faire une modif pour avoir une mise à jour des modifs des autres utilisateurs, plutôt que d'être alerté d'un conflit après.

eric

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

bonsoir et merci pour votre aide.

a l'heure actuel c'est comme cela que l'on fait au niveau du partage. 1 fichier et tout le monde se connecte dessus. Et on attend que la personne est fini.

En ce qui concerne l'exemple ca serai bien. Par contre lorsque je protège la feuille et le classeur, cela me met un message d'erreur (Les gens ne pourront que sélectionner les case déverouiller)

Y a t'il un moyen de remedier à ca
0
Messages postés
24267
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2022
7 026
Tu as le droit de remercier tous les intervenants, même si la proposition ne te convient pas...
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Const lig1 As Long = 2, col1 As Long = 2 'ligne et colonne 1ère cellule du 1er bloc
    Const largeur As Long = 3, hauteur As Long = 7 'largeur et hauteur des blocs
    Dim c As Range
    
    If Target.Row >= lig1 And Target.Column >= col1 Then
        ActiveSheet.Unprotect
        Cancel = True
        Set c = Cells(Target.Row - (Target.Row - lig1) Mod hauteur, Target.Column - (Target.Column - col1) Mod largeur).Resize(hauteur, largeur)
        If c.Interior.ColorIndex = 15 Then c.Interior.ColorIndex = xlNone Else c.Interior.ColorIndex = 15
        ActiveSheet.Protect
    End If
End Sub

eric
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

Merci Eric,
La ca marche nickel merci.

Et j'ai également remercier tout le monde déjà (voir plus haut)
0
Messages postés
17818
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 janvier 2022
4 913
Re,

un exemple sur chaque feuille du fichier joint

https://www.cjoint.com/c/DKrsZSlnLzi
0
Messages postés
21
Date d'inscription
lundi 17 novembre 2014
Statut
Membre
Dernière intervention
17 décembre 2014

Merci pour votre aide.

Ce n'est pas tout a fait cela à quoi je m'attendait. Mais l'exemple sur la page 3 s'en rapproche.
0