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

Signaler
Messages postés
9
Date d'inscription
lundi 23 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008
-
Messages postés
9
Date d'inscription
lundi 23 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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)
Messages postés
9
Date d'inscription
lundi 23 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008

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.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

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

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
9
Date d'inscription
lundi 23 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008

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"
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
9
Date d'inscription
lundi 23 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008

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?
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Pffff

même pas

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
9
Date d'inscription
lundi 23 juin 2008
Statut
Membre
Dernière intervention
25 juin 2008

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