Modification formats caractères sélectionnés dans une cellule active Excel2007

so2306 Messages postés 9 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 25 juin 2008 - 25 juin 2008 à 13:01
so2306 Messages postés 9 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 25 juin 2008 - 25 juin 2008 à 16:28
Bonjour,

Je me demande comment modifier le format d'un texte sélectionné dans une cellule active sous Excel, sans passer par Format de cellule/Police/Indice à chaque fois. C'est une opération assez fastidieuse pour l'écriture de formules sous forme de texte dans mon métier (je ne suis pas programmeur). Je veux donc écrire cette macro sous VB 6.3.

Deux points sont à régler:

- pouvoir éxécuter une macro alors que l'on édite le texte de la cellule: typiquement une macro toute simple comme mettre tout le texte en gras, ne s'exécute pas lorsque l'on est en train d'éditer la cellule, alors que la commande Excel le peut.

- pouvoir transformer la sélection en faisant appel à une commande qui récupère le texte déjà sélectionné à la souris: c'est à dire que cette commande est dynamique,  les évenements de début et de fin du texte à modifier correspondent à ceux d'un texte sélectionné, ce qui doit changer à chaque fois que je fais appel à la macro, c'est une option d'objet que je ne sais pas désigner.

En résumé je cherche à recréer la la commande qui se trouve même dans cet éditeur de texte : pour écrire "x2" on tappe "x2" puis on sélectionne "2" et un clic sur la commande de mise en forme et le tour est joué.

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 juin 2008 à 13:34
Salut
En fait, il y a deux choses :
- Le code à exécuter
- La manière de lancer ce code

Le code à lancer :
Il te suffit d'enregistrer la manipulation pendant que tu la fais une dernière fois à la main (Menu Format, Police ...)

La manière de lancer le code :
Tape ces mots dans la recherche de l'aide de Excel : ajouter bouton barre outils
Il te proposera plusieurs items dont un qui s'appelle "Créer un barre d'outils personnalisée"
Les explications sont dedans : création d'une barre d'outils
Ensuite, tu vas y placer un bouton associé à la catégorie "Macros" + "Bouton personnalisé"
Il ne reste plus qu'à cliquer sur ce nouveau bouton  et désigner le nom de la macro que tu veux lancer

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
so2306 Messages postés 9 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 14:21
Merci pour ta réponse, mais l'enregistrement de la macro lui-même ne tient pas compte du fait que le format ne s'applique qu'aux caractères sélectionnés, c'est pour cela que je cherche à modifier le code VB en spécifiant le début et la fin de la chaîne de caractères à affecter en prenant en compte la sélection. C'est cette précision là que je n'arrive pas à implémenter.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 juin 2008 à 14:57
Salut,

ActiveCell.Characters(Start:=LaValeur, Length:=LaValeur)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
so2306 Messages postés 9 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 15:42
Salut chevalier! C'est justement comment implémenter la valeur de début et de fin qui me manque, puisque c'est une pré-sélection à la souris, qui change à chaque fois (tu ne mets pas tout le temps 1 ou N caractères en indice, ça dépend du cas)  ce que je ne sais pas c'est comment spécifier que c'est (si tu veux utiliser start/length) "le début de la chaîne de caractère pré-sélectionnée manuellement" pendant "le nombre de carctères pré-sélectionnés manuellement"
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 juin 2008 à 15:58
Ok, je comprends !
Et bien vu.

Le seul problème, c'est que tu n'as pas accès au bouton TANT QUE le texte d'une cellule est sélectionné, la je vois pas de parade.
Dommage, car avec la propriété Text de l'objet Characters, on aurait pu déterminer la position des caractères avec un InStr.

Si tu vois autre chose.. n'hésite pas, car là j'avoue, que je vois pas comment contourner le problème de cette sélection afin d'activer le CommandButton.

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
so2306 Messages postés 9 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 16:18
Exactement: ce qui est étrange c'est que les commandes excel (pour souligner, par exemple) ou l'accès au format de cellule sont possibles tant que le texte est sélectionné. Cette sélection est donc comprise comme une saisie de donnée et par conséquent les macros ne peuvent être exécutées?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 juin 2008 à 16:21
On peut contourner le problème (peut-être, faut tester) avec un raccourci clavier !
Mais ça oblige les utilisateurs à le connaitre

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 juin 2008 à 16:23
Pffff

même pas

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 juin 2008 à 16:26
Passer par le click droit est différent du code.

Si tu n'as pas moyen de déterminer le ou les caractères à mettre en forme, je crains qu'il n'y ait aucune solution pour toi !
(et c'est pas faute d'avoir cherché)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
so2306 Messages postés 9 Date d'inscription lundi 23 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 16:28
ouais c'est ce que j'ai fait jusque là, en plaçant "police" comme premier bouton dans la barre d'accès rapide ce qui donne le raccourci clavier Alt+Shift+1 (pour les polices) +i
0
Rejoignez-nous