Concaténation et format sous excel

Résolu/Fermé
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 - 28 juil. 2011 à 23:33
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 - 1 août 2011 à 19:01
Bonjour,


je rencontre un petit problème sous excel.
Je souhaiterais concaténer les valeurs de 3 cellules en une seule tout en conservant le format initial des cellules de base en particulier la couleur de la police d'origine.

Autrement dit, ma première cellule comprend un texte en rouge, la seconde en vert et la dernière en jaune.
Je voudrais créer une cellule reprenant les valeurs comprises dans ces 3 cellules mais également la couleur de la police de chacune d'elles.

Merci beaucoup pour votre aide,

Lou
A voir également:

17 réponses

Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
29 juil. 2011 à 09:40
Ce n'est pas très rassurant : "Rigoureusement impossible"??? Vraiment?

Pourtant, cela paraît à priori relativement simple, je cherche juste à ajouter dans la fonction de concaténation de valeurs, une option me permettant de conserver également le format des cellules d'origine...

Impossible de procéder à la main, je dois avoir plus de 300 tableaux de 300 cellules chacun...

Existe t'il un autre logiciel me permettant de faire cela?
0
Raymond PENTIER Messages postés 58387 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 16 avril 2024 17 088
29 juil. 2011 à 13:58
J'imagine que oui.
Mais il ne s'agirait plus alors d'un simple logiciel de Bureautique, mais d'un langage de Programmation, ce qui t'obligerait à changer de Forum..
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
29 juil. 2011 à 14:02
Salut Raymond,
Tu as largement raison.
De plus, même par VBA, c'est faisable, mais avec tellement de conditions à rermplir que ça en devient un casse-tête pour l'utilisateur...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
29 juil. 2011 à 09:45
Bonjour,
Cela semble possible sous Excel, mais il faudra passer par une fonction VBA.
Vous dites...
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
29 juil. 2011 à 09:58
Bonjour et merci pour la rapidité de votre réponse,

c'est rassurant mais mes compétences en VBA sont très limitées...

Je vais quand même essayer en cherchant à droite à gauche. Mais si quelqu'un a déjà rencontré ce problème et l'a résolu, je serais ravie d'échanger pour comprendre la démarche...

Merci beaucoup,
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
29 juil. 2011 à 18:24
Apparemment le problème est complexe et pour y faire face, mes compétences en VBA sont extrêmement minces. J'avoue que je suis vraiment en train de galérer...

J'ai regardé les autres posts sur le sujet et quelqu'un avait fournit une solution via VBA sur un site spécifique mais elle n'est plus disponible...

Bref, je ne sais pas trop comment faire...

Personne ne sait vers où je pourrais chercher à trouver des indications sur le problème ou m'indiquer un autre logiciel pour le traiter?

Merci beaucoup par avance...
0

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

Posez votre question
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
Modifié par eriiic le 29/07/2011 à 20:21
Bonjour,

Déjà il faut que tu saches que ce que tu demandes n'est pas réalisable par une fonction personnalisée, ça ne peut être qu'une procédure appelée au coup par coup ou bien sur un évènement (modification d'une cellule, activation d'une feuille par exemple)
Voici une procédure que j'avais réalisée il y a qcq temps déjà.
Le fichier exemple parait complexe mais c'est parce qu'il y a plusieurs exemples d'utilisation dessus.

Pour tester :
Les formules de concaténation sont en H3:H8, tu sélectionnes cette plage et tu lances la procédure RecupFormatCel, c'est tout.
Je récupère gras, souligné, couleur

Elle agit sur la plage sélectionnée contenant les formules de concaténation et tu peux choisir de mettre la concaténation où tu veux par rapport à la formule grâce à l'offset (0 écrase la formule).
Le mieux est de mettre un offset de 1 et de masquer la colonne avec les formules. Ainsi elles restent éditables.
J'ai ajouté aussi la possibilité de mettre des retours à la ligne avec le code "vbLf" inséré dans la formule

http://www.cijoint.fr/cjlink.php?file=cj201107/cij2AlrPwi.xls
Regarde si ça te va et n'hésite pas à poser des questions, je ne suis pas sûr d'avoir bien expliqué ;-)

eric
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
29 juil. 2011 à 21:08
Mille fois merci pour ta réponse...
C'est vraiment génial, j'ai juste quelques questions...

Pour ce qui est de l'explication, elle doit être très bien mais mes compétences limitées en VBA font que j'ai un peu du mal à comprendre....

Alors si je récapitule la façon dont j'ai compris la chose ...
La macro utilise la formule concaténée pour récupérer le format des cellules de base, c cela?
Le fichier fonctionne super bien mais j'ai juste quelques problèmes pour l'adaptation: comment récupérer la macro pour l'adapter à mes tableaux?, dois je forcément, comme toi, spécifier dans la macro les cellules contenant la formule concaténée de base et les cellules de destination? Ou puis je simplement les sélectionner pour activer la macro et obtenir le résultat?

Par ailleurs, je ne comprends pas trop l'idée de départ... Ce que tu veux dire c'est que je suis obligée de créer une commande et que je peux pas directement taper une formule simple, c'est cela?

Merci encore, vraiment merci...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
29 juil. 2011 à 21:54
J'ai fait cette procédure pour qu'elle soit générale, et pour ça on doit lui passer des paramètres.

Peut-être que ton cas est particulier et que l'on peut mettre en dur ces paramètres.
Il faudrait un fichier exemple (cijoint.fr et coller ici le lien fourni) et que tu décrives précisément ce qu'il faut faire, et sur quelle action.
eric
0
Bonjour,

Tu dois recopier son code (copier coller) dans ton fichier et l'adapter à la zone que tu veux traiter. Mais je viens de regarder son code (Alt-F11), il faut adapter à ton cas !!!
Pour lancer la macro, \outils \macro...

Si vraiment tu y tiens, remplacer "Sub RecupFormatCel()" par "Function RecupFormatCel()" et la macro devient une fonction que tu peux réutiliser dans une cellule, genre "=Recupformatcel()"

Tu me comprends ?

A+
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
29 juil. 2011 à 22:08
Je me permet de corriger ça :
remplacer "Sub RecupFormatCel()" par "Function RecupFormatCel()" et la macro devient une fonction que tu peux réutiliser dans une cellule, genre "=Recupformatcel()"
non, une fonction retourne une valeur et ne peut jamais modifier son environnement (couleur, mise en forme, etc)

eric
0
Re,

Mea culpa. Tu as raison Eric. Reste donc à faire travailler la macro sur une sélectionnée avant de l'appeler.

Bonne soirée.
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
30 juil. 2011 à 01:00
Re,

Merci pour cette intervention Sylvain, je suppose...

Cher Eric,

ci joint un extrait d'un de mes classeurs Excel avec en bas la concaténation simple réalisée (sans les couleurs de police)
http://www.cijoint.fr/cjlink.php?file=cj201107/cijhSxDBHS.xls.

Merci d'avance pour ton aide...

Bonne soirée ou bonne nuit,

Luana.
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
30 juil. 2011 à 10:22
Pardon, j'ai peut être oublié de préciser les actions que je souhaite voir à l'origine du déclenchement de la macro.

Ce serait génial s'il pouvait la déclencher au moment de l'ouverture de la feuille en question.

Encore merci...

Luana.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
Modifié par eriiic le 30/07/2011 à 10:32
Re,

En tout premier confirme moi que tes couleurs sont bien mises manuellement et non pas par une mise en forme conditionnelle.

D'autre part on peut peut-être simplifier ton travail...

- Si chacun des 3 tableaux de nombres génère dans l'ordre toujours P, M et A on peut récupérer les couleurs directement sur les nombres et se passer des tableaux intermédiaires.
- S'il y a une règle pour les couleurs des nombres on éventuellement automatiser cette partie.

Donc si tu veux explique au mieux comment tu construis ton tableau et également si les tableaux peuvent varier en taille et/ou position, et s'ils sont toujours 3, et on verra ce qu'il est possible de faire.

eric

edit:
Ce serait génial s'il pouvait la déclencher au moment de l'ouverture de la feuille en question.
Ok, mais tu as parlé de plusieurs feuilles.
Il faudrait que les noms des feuilles concernées aient une particularité que les autres n'ont pas.
Par exemple leur nom commence par un D
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
30 juil. 2011 à 11:33
Re,

Oui, les couleurs sont conditionnelles mais j'ai traité ce problème à l'aide du logiciel SAS, j'exporte donc les résultats vers Excel et les valeurs sont déjà coloriées quand elles arrivent sous Excel. Je pense que c'est équivalent à du manuel...

Concernant le tableau final, il comprendra effectivement toujours les 3 lettres PMA qui, je l'espère, pourront être chacune coloriée à l'aide de la couleur de chacun des 3 tableaux initiaux (ceux comprenant les valeurs si possible).
Sur chaque feuille, il n'y a que 3 tableaux que je vais disposer de la même manière pour faciliter l'opération.

Tu as raison, je dispose de plusieurs feuilles, 7 par classeur environ comprenant chacune 3 tableaux et pour chacune d'elle je souhaite réaliser la même opération de concaténation.
Ok pour le D si il est nécessaire...

J'espère avoir été suffisamment claire, si il manque une information, je reste entièrement disponible

Merci...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
30 juil. 2011 à 15:49
Re,

Ca ne devrait pas être trop loin du but, ça ne marche que sur les couleurs manuelles.
Toutes les feuilles dont le nom commence par D sont traitées à leur activation.

A l'ouverture du fichier le résultat est vide.
Sélectionne Feuil2, puis Data1, le résultat apparait. Ca sera à faire à chaque rafraichissement que tu veux si tu as modifié des couleurs.

Dans le module init j'ai regroupé les variables essentielles à modifier si tes tableaux évoluent un peu (nombre/taille/position).
En bonus, sur sélection d'un résultat les cellules données correspondantes sont surlignées.

http://www.cijoint.fr/cjlink.php?file=cj201107/cijd7j8Mot.xls
Teste à fond, c'est beaucoup plus dur de revenir dessus 4 jours après...

Une reflexion : sur absence de valeur ça n'aurait pas été plus lisible en conservant la lettre en encre blanche. Elles auraient conservés toujours leur position (et le travail facilité.. ;-) )
eric
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
30 juil. 2011 à 16:24
C'est vraiment génial, tu es un génie, cela marche super bien...
J'ai testé sur 3 classeurs différents et c'est parfait...

Moi qui déprimais totalement après le "rigoureusement impossible" et le "prise de tête pour l'utilisateur"...

J'ai une proposition pour toi, ne veux tu pas travailler dans la recherche? Je crois que je pourrais assez facilement trouver quelque chose pour toi...

Vraiment merci, tu me sauves la vie...

Je te dois une ligne de remerciement...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
30 juil. 2011 à 16:50
n'exagérons rien... ;-)
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
30 juil. 2011 à 16:25
Excellent week-end...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
30 juil. 2011 à 16:50
Merci, toi aussi
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
30 juil. 2011 à 16:30
Juste pour la réflexion,

Oui, effectivement, tu as raison...
En plus dans ces cellules, j'ai normalement des valeurs de 1, j'aurais pu les passer en blanc directement sous SAS...

Désolée, à l'origine, je pensais que ca allait être beaucoup plus facile que cela... :-))
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
30 juil. 2011 à 16:51
Voilà ce que ça donne avec PMA tout le temps mais encre blanche sur les valeurs absentes.
Si c'est toi qui supprimes les 1 tu peux facilement remplacer le test ="" par =1
N'oublie pas de mettre en résolu le moment venu
http://www.cijoint.fr/cjlink.php?file=cj201107/cijYRWpggn.xls
eric
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
1 août 2011 à 19:01
Parfait, merci beaucoup, j'ai presque fini l'ensemble des opérations...
Tu m'as éviter 1 mois de travail inutile...

Bonne soirée...
0
Raymond PENTIER Messages postés 58387 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 16 avril 2024 17 088
31 juil. 2011 à 02:55
Bonjour Lou.

Comme tu t'en rends compte, l'important travail réalisé par eriiic a nécessité l'utilisation du langage VBA afin d'écrire des macros.
Tu comprends donc pourquoi à ta demande "je rencontre un petit problème sous excel. Je souhaiterais concaténer les valeurs de 3 cellules en une seule tout en conservant le format initial des cellules" j'ai spontanément répondu "Hors de question. Rigoureusement impossible", car en effet les formules, fonctions et commandes classiques d'Excel ne permettent pas d'y parvenir.
Et j'avoue que je croyais que, même avec des macros, on n'aurait pas pu le faire !

Cordialement.
0
Luana33 Messages postés 13 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 1 août 2011 1
1 août 2011 à 19:01
D'accord et bien, merci Raymond pour ta réponse...

Simplement je ne pense pas qu'il faille être aussi catégorique quant on ne connaît pas les procédures pour réaliser une action.

Dans ce cas, il est simplement possible de dire: je sais que l'on ne peut pas réaliser cette action via les fonctions classiques de Excel et je ne pense pas qu'il soit possible de la mener à bien via l'usage de macros.

C toujours mieux qu'un hors de question, rigoureusement impossible...
Théoriquement, tout est possible...

Enfin, merci beaucoup quand même de t'être penché sur mon problème...

Bonne soirée...
0
Raymond PENTIER Messages postés 58387 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 16 avril 2024 17 088
29 juil. 2011 à 02:04
Hors de question.
Rigoureusement impossible.
-1