Remplir fond cellule en Texte

Bonjour à tous,

Je suis en train de créer un tableau de gestion de prod' (approximativement 30 colonnes et plus de 2300 lignes...)
Pour mieux s'y repérer dans la navigation du tableau, j'ai besoin de figer la première colonne, et d'y afficher une info importante : le mois de production.

Ma question : est-ce possible de remplir le fond d'une cellule avec un texte ?
De plus, il faudrait que ce texte se répète aussi loin que la cellule le permet !

Ci-joint : mon tableau épuré, avec uniquement la première colonne en question.

Pour être plus précis sur mon besoin :
J'aurai besoin d'avoir toujours en visuel la première colonne (peu importe ma position dans le tableau), pour savoir à quel mois j'en suis.

Ma première idée était donc la suivante (voir mon tableau) : écrire à la main chaque mois, puis figer la première colonne.
Exemple d'une cellule : "Sep.2020 _ Sep.2020 _ . . . . . _ Sep.2020 _ Sep.2020 _ Sep.2020"

Le problème c'est que je souhaiterai paramétrer via VBA la modification de ce texte (pour passer d'un mois sur l'autre).
Donc plutôt que d'écrire la chaîne de caractère (qui peut être trèèèèès longue), est-ce possible de :

- Donner à la cellule la valeur "Sep.2020" ?
- En fonction de cette valeur, affecter un fond de cellule, pour afficher/remplacer la chaîne de caractères ?

Note : plus la cellule est longue, plus la chaîne de texte est grande, donc variable selon la taille de la cellule...

_-_-_-_-_

J'espère que mon besoin est clair.
Merci par avance pour ceux qui pendront la peine d'étudier mon problème.

Bien entendu, si vous avez une idée différente pour arriver à ce résultat, cela peut m'aller aussi.

Bonne journée,
Matthieu

Bonjour,

J'ai pas vraiment compris ce que vous entendiez par fond de cellule. Mais il est possible d'afficher un autre texte que la valeur de la cellule avec une mise en forme personnalisée.

Si votre première colonne contient des dates, vous pouvez mettre comme mise en forme : mmm-aaaa

Si votre cellule ne contient pas des dates, vous pouvez quand même forcer une mise en forme : ;;;Sep-2020

Cette mise en forme est statique et donc présente des limites puisqu'elles ne s'adaptera pas seule à vos besoins. Cependant elle présente l'avantage de n'avoir à saisir qu'une fois, sur la première cellule de votre colonne, et de la répéter via un copier/collage formats.

Sinon, je suis peut-être totalement à côté de la plaque...

Cdlt,

Bonjour,

En fait, je souhaiterai pouvoir donner une valeur à une cellule (une date "Sep-2020" par exemple).
Et que par cette valeur, il soit affiché : "Sep-2020 _ Sep-2020 _ . . . _ Sep-2020" dans cette cellule (ou une autre).

Comment je peux faire pour configurer cela ?

Exemple ici :

image

J'ai dans la cellule du haut le texte "Sep-2020", et dans celle en-dessous il est affiché le texte en boucle (à l'infini si l'on étire la cellule).

Est-ce possible d'avoir ce résultat sur Excel ? Sans avoir à écrire à la main tout le texte à l'infini ...

Si cela peut se faire par une mise en forme personnalisée, je ne connais pas la formule à utiliser.

Franchement, je comprends pas bien.

Il est possible d'afficher un texte autre que la valeur réelle de la cellule, comme indiqué sur mon premier commentaire. Ainsi, vous pourriez définir que toutes les cellules de la ligne ont le format ;;;Sep-2020 (ou si ces cellules contiennent une date : ;;;mmm-aaaa).

Sinon, s'il ne s'agit pas de personnaliser la mise en forme mais juste d'avoir le contenu, sans le saisir à la main, vous pouvez :

- le saisir une fois puis copier sur le reste de la ligne,
- (mieux) mettre une formule de type :

=$A$1

et copier la formule sur toute la ligne. Où A1 serait votre cellule du haut.

Bonjour,

Je dois admettre que je n'y comprend pas grand chose ? votre image ne correspond pas du tout à votre fichier.

Si vous souhaité juste une formule pour pouvoir l'étirer et conserver tout le temps la même valeur que la cellule d'origine alors:

Exemplesi votre premier Sep-2020 se trouve dans la cellule A1

alors dans les autres cellules il suffira d'écrire =$A$1 tirez dans tous les sens cela restera A1

Oops 3G plus rapide que moi je dois encore être en 2G

Xmenpl, on passe à la 5G maintenant, faut se mettre à la page .

Matthieu, cette fameuse ligne n'est pas en réalité un ensemble de cellules fusionnées j'espère ?

Bonjour,

Allez, je tente ma chance

SI j'ai bien compris :

=REPT(TEXTE(A1;"MMM.AAAA")&"_";30)

Sur le fichier modèle, tout est en texte. Il faut au préalable tout passer en format standard. En A1, une date quelconque.

essai

JoyeuxNoel, notre sauveur !

Oui, je pense que c'est ça que Matthieu demande. Et on peut même remplacer 30 par colonnes(A1) qui plus est.

@3GB :
Le problème n'était pas tant la mise en forme ; D'ailleurs je n'ai pas vraiment compris votre format ";;;Sep-2020".
Et si je parle bien d'un ensemble de cellules fusionnées...

@Xmenpl :
Oui mon image ne correspond pas au fichier que j'ai envoyé, car dans mon exemple je suis sur une colonne. C'était juste pour éviter d'avoir un screenshot énorme. Mais le principe est le même, que ce soit en ligne ou en colonne.

@JoyeuxNoel :
C'est bien ce dont j'ai besoin ! Géniale cette formule, je ne connaissais pas !

À 1 détail près : étant donné que la cellule peut avoir une dimension petite, comme une très grande ... Est-ce possible de lier l'indicateur "30" (dans ta formule) en fonction de la taille de la cellule ?

Vous allez me dire que si on choisi un chiffre monstrueusement grand à la place de 30, on peut avoir une répétition suffisamment grande pour recouvrir toute la colonne...
Mais pour faire les choses proprement, n'y a-t-il pas moyen de pousser le vis un peu plus loin !?

En tout cas merci de votre réactivité !
Je note le sujet comme résolu
, car le plus gros de problème est réglé ... À moi de peauFiner !

_-_-_-_-_

Edit :

Concernant le fond de cellule, je parlais de l'arrière-plan.
En effet, on peut changer le fond pour le mettre en couleur ... Mais est-ce possible de placer un texte plutôt qu'une simple couleur ?
Cela me permettrai d'écrire la répétition de texte dans la cellule (formule de JoyeuNoel), en donnant uniquement la valeur à répétée à cette même cellule.

Exemple : la valeur est ici en noir dans la cellule, et le fond en gris avec la valeur qui se répète :

image

(montage fait sur Paint ... aperçu souhaité sur Excel si possible)

_-_-_-_-_

Merci à vous !

Matthieu.H

Eh bien voilà, tu as trouvé la solution.

Si tu veux un truc comme ça, tu peux passer par Paint. Pas dit que pour les calculs il soit bon, par contre...

Sinon, pour adapter le 30, il y a peut-être moyen. Mais il faudrait arriver à trouver une logique à partir des cellules qui se trouvent à côté. Et suivant la taille de la police, etc, ça ne sera jamais la même chose...
Il fait un temps de chiottes, OK, mais pas au point de me pencher dessus ;)

Honnêtement, le seul moyen que je vois est de passer par du VB.
Je posais juste la question au cas où quelqu'un connait une alternative uniquement via les fonctions basiques de Excel, sans taper dans du dur
... Un peu comme la fonction REPT() que je ne connaissais pas, et dont je te remercie. Bien pratique !

Pour le reste, je vais me creuser les méninges !
Bon Week-End !
Matthieu

JoyeuxNoel doit avoir un décodeur de demande Forum je voyais pas du tout le but ainsi

Dès le début, je savais que ça allait être compliqué de me faire comprendre... Et à trop vouloir donner de détails, je pense que j'ai noyé le sujet

M'enfin ... On s'en est sorti. Merci également !

Autrement, tu peux garder la formule dans ta 1ère zone.

Et dans la 2ème, tu mets :

=REPT(TEXTE(MOIS.DECALER(A1;1);"MMM.AAAA")&"_";30)

Tu n'as ensuite plus qu'à changer le 1 en 2 puis 3, etc ...

Une fois que c'est paramétré, ça n'a plus à bouger.

M'enfin le mieux serait de ne pas fusionner tes cellules ... Ca apporte tellement peu de solutions par rapport à tous les problèmes que ça peut te créer ... Et il y a tellement d'autres façons de bien marquer les différents mois ...

@Matthieu,

Je pense qu'il y a la possibilité de le faire par VBA (notamment avec sur la range les propriétés .Height/.Count * quelque chose) ou via excel avec ent(lignes(plage à coté)/nbcar(texte(A1;...)) * quelque chose. Mais à chaque fois demeure l'inconnue de la taille de la police. Donc il faut faire un peu de bricolage.

Mais, que contient cette colonne ? Des dates ? Si oui, y a-t-il plusieurs mois ? J'imagine que c'est le cas. Il y aurait donc une possibilité de passer par une mise en forme conditionnelle bien plus parlante :

=mois($A2)=mois($E$1)

En supposant que E1 contiennent votre date du mois et A2 soit la première cellule de la colonne A à mettre en forme.

Vous appliquez la MFC à $A$2:$A$2500 par exemple et vous choisissez un format bien visible. Vous ne pourrez pas confondre...

J'étudierai tout ça début de semaine

Je ne peux pas trop vous transférer d'infos, mais voici le tableau ci-joint dans sa vrai configuration (uniquement pour les dates).

La première colonne est composée de cellules fusionnées.
La deuxième indique toutes les dates de réception de commandes (et la troisième le délai qui correspond).

À première vue, pour savoir dans quel mois je suis, la colonne B est chiante à lire. J'ai donc créé la A avec les cellules fusionnées.
Sauf que, pour prendre un exemple avec le mois de Février 2020, la cellule s'étend de la ligne 459 à 767 (308 lignes quand même).

Du coup si j'écris juste "Fev.2020" dans la cellule, je ne peux pas voir "Fev.2020" partout (à moins d'avoir un écran de 2km de haut ... Ou de dézoomer à fond, à n'en plus voir le tableau).

J'ai donc pensé à cette idée de créer une chaîne de caractères pour afficher "Fev.2020" autant de fois que possible, pour pouvoir être lu partout verticalement.

Vous saisissez un peu mieux maintenant ?

_-_-_-_-_

Voilà ce que ça donne sans répétition (exemple sur Dec.2020) :

image

Je ne vois pas le mois !

_-_-_-_-_

Alors qu'avec la répétition :

image

Là je peux voir le mois (Fev.2020) de n'importe où !

_-_-_-_-_

Pour le nombre de répétition, je pense que si je mets 30 je suis large ... Mais bon, sait-on jamais !

Rechercher des sujets similaires à "remplir fond texte"