Police de caractères différentes pour le résultat dans une cellule
Tags :
Dernière réponse : dans Programmation
Bonjour,
J'ai parcouru pas mal de sujets sur le forum, mais je n'ai pas trouvé ce que je cherche, peut-être est-ce tout simplement impossible.
Je travaille sur un fichier Excel à plusieurs onglets, dont les deux premiers servent à renseigner différents champs dans les onglets suivants, tels que client, interlocuteur, date, diverses références, etc, en remplissant directement des cellules, ou en passant par des menus déroulants.
Les autres onglets étant automatiquement renseignés selon les différents cas qui peuvent se présenter, et imprimés quand tout est renseigné, en cliquant sur un bouton, ce qui en même temps enregistre-sous le fichier vers un dossier et sous dossier, en fonction de l'année en cours et du nom du client, et d'une référence unique ; tout cela fonctionne très bien.
Mon soucis et que sur deux lignes faisant appel à la référence "Nom interlocuteur" précédée de la mention "Madame" ou "Monsieur" (issue d'un menu déroulant dans le premier onglet), je veux faire apparaitre le résultat dans une seule cellule sous la forme :
Monsieur Dupont. : (soit le nom de l'interlocuteur en italique)
N'ayant pas trouvé de solution propre pour l'instant, je travaille sur des cellules cote-à-cote, mais ça n'est pas génial car je dois jouer sur les décalages et les alignements droite et gauche....
J'ai trouvé sur le net une formule vb que j'ai adaptée et qui s'exécute sans erreur, mais je ne vois pas le résultat sur la cellule traitée, voici la macro :
Ma question : existe-t-il un moyen simple de parvenir à mes fins? je suis sous office 2003 (ça a peut-être son importance)
soit par VB, soit par formule directement sur excel?
Edit : remise en forme de mon message (c'est mieux là?)
J'ai parcouru pas mal de sujets sur le forum, mais je n'ai pas trouvé ce que je cherche, peut-être est-ce tout simplement impossible.
Je travaille sur un fichier Excel à plusieurs onglets, dont les deux premiers servent à renseigner différents champs dans les onglets suivants, tels que client, interlocuteur, date, diverses références, etc, en remplissant directement des cellules, ou en passant par des menus déroulants.
Les autres onglets étant automatiquement renseignés selon les différents cas qui peuvent se présenter, et imprimés quand tout est renseigné, en cliquant sur un bouton, ce qui en même temps enregistre-sous le fichier vers un dossier et sous dossier, en fonction de l'année en cours et du nom du client, et d'une référence unique ; tout cela fonctionne très bien.
Mon soucis et que sur deux lignes faisant appel à la référence "Nom interlocuteur" précédée de la mention "Madame" ou "Monsieur" (issue d'un menu déroulant dans le premier onglet), je veux faire apparaitre le résultat dans une seule cellule sous la forme :
Monsieur Dupont. : (soit le nom de l'interlocuteur en italique)
N'ayant pas trouvé de solution propre pour l'instant, je travaille sur des cellules cote-à-cote, mais ça n'est pas génial car je dois jouer sur les décalages et les alignements droite et gauche....
J'ai trouvé sur le net une formule vb que j'ai adaptée et qui s'exécute sans erreur, mais je ne vois pas le résultat sur la cellule traitée, voici la macro :
Sub mise_en_forme_du_texte() ' ' mise_en_forme_du_texte Macro ' Macro enregistrée le 04/11/2009 par Lulu ' Sheets("Rapport").Select Dim debut As String Dim longueur As String debut = [i54].Value 'nombre de caractère de Madame ou Monsieur longueur = [i55].Value 'nombre de caractère du nom de l'interlocuteur [b53].Characters(Start:=debut, Length:=longueur).Font.FontStyle = "Italique" ' End Sub
Ma question : existe-t-il un moyen simple de parvenir à mes fins? je suis sous office 2003 (ça a peut-être son importance)
soit par VB, soit par formule directement sur excel?
Edit : remise en forme de mon message (c'est mieux là?)
Autres pages sur : police caracteres differentes resultat cellule
Lassé par la pub ? Créez un compte
- | Alerter
- | Alerter
Meilleure solution
(C'est bien compliqué ton code.)
Alors, c'est bien embêtant, mais le changement de style ne marche pas sur des cellules calculées
Etudie puis exécute ce petit code, dans un classeur vide :
Sinon, tu vois grâce à cette exemple comment faire, mais statiquement. Si tu changes une valeur dans A1 ou A2, la valeur dans A4 ne changera pas dynamiquement. A toi de voir.
Alors, c'est bien embêtant, mais le changement de style ne marche pas sur des cellules calculées
Etudie puis exécute ce petit code, dans un classeur vide :
C'est pas cool, hein ?
Sub Pourquoi_cela_ne_marche_t_il_pas() Range("A1").Value = "Ludovic" Range("A2").Value = "500" Range("A3").Formula = "=A1 & "" "" & A2" Range("A4").Value = Range("A1").Text & " " & Range("A2").Text Range("A3").Characters(9).Font.FontStyle = "Italique" Range("A4").Characters(9).Font.FontStyle = "Italique" End Sub
Sinon, tu vois grâce à cette exemple comment faire, mais statiquement. Si tu changes une valeur dans A1 ou A2, la valeur dans A4 ne changera pas dynamiquement. A toi de voir.
- | Alerter
Contenus similaires
- Macro excel cellule vide - Forum
- Excel nom onglet cellule - Forum
- Vba access importer fichier excel - Forum
- Excel macro contenu cellule - Forum
Merci Zeb, j'arrive à faire quelque chose avec la ligne 9, mais pourquoi dois-je passer par un bouton associé à une macro? pas moyen de faire autrement?
autre chose, quand je fais compter le nombre de caractères dans une cellule (résultat d'une formule ou non), et que je veux utiliser ce comptage pour créer un point de départ et une longueur pour la mise en italique, je suis obligé de rajouter 1 à la valeur trouvée pour que ça fonctionne : le premier caractère est le caractère 0?
voici le code auquel j'arrive :
Je voudrais insérer une image pour l'exemple, mais je ne sais plus comment faire...
en tous cas merci ça montre que c'est possible
autre chose, quand je fais compter le nombre de caractères dans une cellule (résultat d'une formule ou non), et que je veux utiliser ce comptage pour créer un point de départ et une longueur pour la mise en italique, je suis obligé de rajouter 1 à la valeur trouvée pour que ça fonctionne : le premier caractère est le caractère 0?
voici le code auquel j'arrive :
Sub Pourquoi_faut_t_il_un_bouton()
Dim deb As Long
Dim longueur As Long
deb = Range("b2").Value 'résultat de la formule =nbcar(a1)+1
longueur = Range("b3").Value 'résultat de la formule =nbcar(b1)+1
Range("A4").Value = Range("a1").Text & " " & Range("b1").Text 'a1=Recherchev(F1;D1:E3;2)
Range("A4").Characters(deb, longueur).Font.FontStyle = "Italique" 'Résultat obtenu OK
End Sub
Je voudrais insérer une image pour l'exemple, mais je ne sais plus comment faire...
en tous cas merci ça montre que c'est possible
- | Alerter
deb = Range("b2" ).Value 'résultat de la formule =nbcar(a1)+1
longueur = Range("b3" ).Value 'résultat de la formule =nbcar(b1)+1
Et si tu essayais ça :
longueur = Len(Range("A1").Text)+1
_____________________
Bon, maintenant, pourquoi faut-il ajouter 1 ?
Ludovic
----^--
1234567
Et si je me permettais de t'appeler Ludo ?----^--
1234567
Je vais donc mettre les dernières lettres de ton prénom en italique.
Je compte donc 4 lettres pour L-U-D-O.
Et je mets en italique … partir de la cinquième (4+1).
Cela te paraît-il logique maintenant ?
- | Alerter
ok, je ne maitrise pas vb, quand je veux modifier des trucs, j'enregistre une macro approchante, puis je me débrouille avec le peu que je comprends du code
j'avais bien fait une formation de trois jours à visual basic dans mon ancienne entreprise il y a 4 ou 5 ans, mais je n'ai jamais eu l'occasion de m'entrainer dessus, et depuis, j'ai forcément tout oublié![[:spamafote] [:spamafote]]()
déclarer mes "constantes" (deb & longueur) en début reste obligatoire, si j'applique ton code, non?
compris pour le caractère de départ, mais pourquoi sur le nombre de caractères à mettre en italique, faut-il aussi ajouter 1 (je confirme que j'ai bien compté l'espace)
PS : oui tu peux m'appeler Ludo, il n'y a aucun problème.
Edit : le caractère supplémentaire à ajouter au nombre de caractères à mettre en italique semble provenir de l'espace que tu ajoutes entres les deux expression ; si je le supprime et que je le rajoute à la fin de la première expression sur excel, c'est bon, et plus logique pour moi
j'avais bien fait une formation de trois jours à visual basic dans mon ancienne entreprise il y a 4 ou 5 ans, mais je n'ai jamais eu l'occasion de m'entrainer dessus, et depuis, j'ai forcément tout oublié
![[:spamafote] [:spamafote]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/3e/46/spamafote.gif)
déclarer mes "constantes" (deb & longueur) en début reste obligatoire, si j'applique ton code, non?
compris pour le caractère de départ, mais pourquoi sur le nombre de caractères à mettre en italique, faut-il aussi ajouter 1 (je confirme que j'ai bien compté l'espace)
PS : oui tu peux m'appeler Ludo, il n'y a aucun problème.
Edit : le caractère supplémentaire à ajouter au nombre de caractères à mettre en italique semble provenir de l'espace que tu ajoutes entres les deux expression ; si je le supprime et que je le rajoute à la fin de la première expression sur excel, c'est bon, et plus logique pour moi
- | Alerter
- | Alerter
Citation :
ok, je ne maitrise pas vb, quand je veux modifier des trucs, j'enregistre une macro approchante, puis je me débrouille avec le peu que je comprends du code
__________________________________
Viens ici avec ton code le plus horrible, nous t'apprendrons à en faire du code propre et efficace.
Mais si c'est moi qui répond, tu n'auras pas toujours la solution directe, mais plutôt un exercice à étudier pour comprendre comment faire.
(Oui, je sais je suis pénible, mais j'assume
) - | Alerter
- | Alerter
- | Alerter
- | Alerter
Lassé par la pub ? Créez un compte
bien Maître