XL 2019 Macro copie de case à cocher avec modification de cellule liée

jgotch

XLDnaute Nouveau
Bonjour à tous,

Mon problème est le suivant : dans mon fichier joint, si je veux qu'un utilisateur puisse facilement ajouter une colonne, je pensai leur dire de copier/coller la dernière colonne (ici la I), cela copie-collera aussi les cases à cocher dans la colonne J. En revanche, les cases à cocher seront liées aux cellules en I et non en J. Et c'est un problème car quand on les coche cela ne déclenche plus la bonne mise en forme conditionnelle

Du coup je pensai faire un bouton "ajouter une colonne" avec une macro, mais je ne parviens pas à coder une macro qui copie une case à cocher se trouvant dans une colonne X, qui la colle dans une colonne X+1 et qui change la cellule liée pour X+1

Si vous avez d'autres solutions je suis preneur (vous allez comprendre facilement, je voudrais juste qu'on puisse cocher la case et que ça colore tout l'item)

Merci d'avance pour votre aide !
Julien
 

Pièces jointes

  • Suivi microbio.xlsm
    71.6 KB · Affichages: 13

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Si vous avez d'autres solutions je suis preneur (vous allez comprendre facilement, je voudrais juste qu'on puisse cocher la case et que ça colore tout l'item)
Avec la proposition du fichier joint, tu peux copier une colonne et la coller en fin de tableau, puisque ça n'utilise que des cellules avec du texte dedans.
En revanche, chaque colonne du tableau est constituée de deux colonnes de la feuille.

J'ai supprimé toutes les MFC.
J'ai supprimé la colonne A et mis les menus dans une nouvelle feuille.
J'ai modifié les validations de données.
J'ai supprimé toutes les CheckBox.
J'ai protégé la feuille. Mais cela risque de ne pas être forcément très pratique à l'usage...

/!\ La délimitation basse de l'item se fait actuellement par le trait d'épaisseur "medium" sur le bord inférieur d'une cellule (mais on peut trouver une autre solution), donc ne pas changer la mise en forme du tableau à ce niveau.


C'est une création originale Marcel32 !
(donc ça ne vaut que ce que ça vaut...😄)
 

Pièces jointes

  • Suivi-microbio_Marcel32-v1.xlsm
    26 KB · Affichages: 24
Dernière édition:

jgotch

XLDnaute Nouveau
Bonsoir

Merci pour votre aide mais en fait je pense que j'ai mal expliqué mon problème

Sur ma version initiale ce que je voulais c'était que tout le carré (par exemple ici C3:D6) se colore quand l'utilisateur clique sur "En cours"

Ca fonctionnait normalement mais juste ça ne marchait pas si on "copiait collait" une colonne pour en rajouter une facilement

Vous voyez ce que je veux dire ?

Merci d'avance !
 

TooFatBoy

XLDnaute Barbatruc
Sur ma version initiale ce que je voulais c'était que tout le carré (par exemple ici C3: D6) se colore quand l'utilisateur clique sur "En cours"
C'est ce que fait la proposition de #2, mais en cliquant plus logiquement sur le carré vide que sur le texte "En cours".

Ca fonctionnait normalement mais juste ça ne marchait pas si on "copiait collait" une colonne pour en rajouter une facilement

Vous voyez ce que je veux dire ?
J'avais parfaitement compris dès le départ, ou en tout cas je comprends ici la même chose qu'au départ. ;)

Tu disais qu'une autre possibilité était la bienvenue, alors j'ai pondu un truc sans ces cases à cocher qui me semblent lourdes à utiliser.

Et surtout, tu semblais dire que le plus important était de pouvoir ajouter une colonne au tableau par un simple copier/coller, et normalement c'est le cas avec la proposition de #2.


Ceci dit, nul doute que quelqu'un d'autre saura te fournir quelque chose qui te conviendra.
Bonne chance pour la suite.
Tschüss
🖖
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @jgotch et bienvenue sur XLD :)

J'avais commencé à faire un truc similaire à celui de @Marcel32 (que je salue ;)) puis j'étais passé à autre chose. La publication de @Marcel32 m'a encouragé à terminer ma version.
  • Une seule colonne a été insérée (colonne C). La colonne B ne contient donc plus que la "rubrique" et la colonne C contient l'indicateur "En cours" et les sous-rubriques.
  • Une ligne indiquant la fin du tableau été ajoutée
Ces deux points car je refuse absolument de prendre comme référence des mises en forme (couleur, bordures, etc... trop modifiables par l'utilisateur) 😠 😡

Un clique sur une cellule "En cours" change l'état et la couleur de la rubrique.

Pour recopier une colonne, il suffit d'en recopier une existante.
Un double-clique sur la ligne 2 d'une colonne permet :
  • de réinitialiser à "Pas en cours" de toute la colonne (ou non, on a le choix)
  • d'effacer le texte des autres lignes de la colonne (ou non, on a le choix)
Le code est dans le module de la feuille "Feuil1 (2)".

Je ne commente pas mes codes sauf si on me le demande gentiment.
 

Pièces jointes

  • Sjgotch- suivi microbio- v1.xlsm
    25.4 KB · Affichages: 20
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour @mapomme 👋

  • Une ligne indiquant la fin du tableau été ajoutée
Ces deux points car je refuse absolument de prendre comme référence des mises en forme (couleur, bordures, etc... trop modifiables par l'utilisateur) 😠 😡
C'est aussi à peu près ce que je fais généralement : en début de tableau je mets une colonne cachée contenant des informations pour gérer plus facilement ledit tableau.
C'est à cela que je pensais quand je disais qu'on pouvait faire autrement que détecter le trait inférieur médium. 😉
 

TooFatBoy

XLDnaute Barbatruc
Un clique sur une cellule "En cours" change l'état et la couleur de la rubrique
Ça aussi généralement c'est ce que je fais, mais ici j'ai essayé de garder visuellement ce qui était en place, donc même si fonctionnellement la case à cocher ne sert à rien, j'ai voulu la laisser ; d'où l'ajout d'une colonne (je n'ai pas trouvé comment mettre deux fonts différentes dans une même cellule), et la fusion de cellules (ce que je n'aime pas du tout utiliser).
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bon j'ai un peu honte ... mais j'avais téléchargé ton fichier @Marcel32 sur mon Mac où les macros sont désactivés... évidement ! Sur le PC du boulot ça fonctionne nickel
Ah ben oui MEGA HONTE à toi !!! 😡😤🤬

Nan, j'rigole bien sûr !
L'erreur est humaine ;)
No soucy man ;)


Le fichier du copaing @mapomme est mieux, puisqu'il a réussi à laisser chaque colonne du tableau sur une seule colonne de la feuille.


Par contre, as-tu regardé comment les listes déroulantes sont traitées dans le fichier de #2 ?
 

jgotch

XLDnaute Nouveau
Oui c'est ce que je fais habituellement aussi, une feuille à part pour tous les items d'une liste déroulante.

Cela dit, là j'ai choisi de cacher la première colonne car cette feuille n'en sera qu'une parmi d'autre d'un gros fichier d'aide à la prescription. Donc je préfère limiter le nombre de feuilles dans la mesure du possible

Merci en tous cas !
Julien
 

TooFatBoy

XLDnaute Barbatruc
Oui c'est ce que je fais habituellement aussi, une feuille à part pour tous les items d'une liste déroulante.
Il n'y a pas que ça. ;)

Il y a aussi (et surtout) l'utilisation de tableaux structurés qui fait que les listes déroulantes s'adaptent automatiquement, sans changer quoi que ce soit, quand tu ajoutes ou supprimes des lignes dans ces tableaux structurés.


Cela dit, là j'ai choisi de cacher la première colonne car cette feuille n'en sera qu'une parmi d'autre d'un gros fichier d'aide à la prescription. Donc je préfère limiter le nombre de feuilles dans la mesure du possible
OK. Je comprends parfaitement. ;)
 

Phil69970

XLDnaute Barbatruc
Bonjour @Marcel32

Les 2 solutions sont dans la manière d'appliquer la macro soit les mots sont inscrits en dur dans le code soit les mots sont inscrits dans la feuille dédies à cet effet (la feuille 3).

Pour la fonte il suffit de rajouter

VB:
                        With Cel.Characters(Start:=Pos, Length:=Len(LeMot)).Font
                            .FontStyle = "Gras"
                            .ColorIndex = 5     '3 = rouge,  4 = vert  , 5 = bleu 
                            .Name = "Algerian"  ' ou "Courier" ou n'importe quelle autre police
                        End With

Tu auras bien 2 fontes dans la même cellule la fonte d'origine de la cellule et la fonte et/ou couleur déclarée dans la macro
Et on pourrait même faire une autre macro ==> Sub MotEnGras_V2(LeMot As String, Plage As Range) avec une autre fonte et/ou couleur et une autre série de mot dans la même cellule mais ça fera un peu sapin de noël ;)

*J'ai changé la couleur pour que cela soit plus visible

@Phil69970
 

Pièces jointes

  • Mot gras vert V1-2.xlsm
    35.7 KB · Affichages: 6

Discussions similaires

Réponses
10
Affichages
417

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83