Insertion de texte avec Excel VBA
Fermé
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
-
4 nov. 2011 à 21:11
Le Pingou Messages postés 12242 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 mars 2025 - 5 nov. 2011 à 23:06
Le Pingou Messages postés 12242 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 16 mars 2025 - 5 nov. 2011 à 23:06
A voir également:
- Insertion de texte avec Excel VBA
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Transcription audio en texte word gratuit - Guide
6 réponses
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
4 nov. 2011 à 22:25
4 nov. 2011 à 22:25
Bonjour,
Mais que vous donne l'enregistreur de macro ?
Est-il possible de le voir ?
Mais que vous donne l'enregistreur de macro ?
Est-il possible de le voir ?
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
356
4 nov. 2011 à 23:34
4 nov. 2011 à 23:34
Salut Le Pingou,
J'ai ça avec l'enregistreur macro (j'ai enlevé le texte qui ne présente aucun intérêt ici):
En fait, la macro n'enregistre que l'édition du texte et les polices de caractères des différentes zones (ici Arial pour l'ensemble du texte et un caractère Webdings à la position 23).
Je pense qu'il faut utiliser la partie de code pour le caractère ajouté soit :
J'ai ça avec l'enregistreur macro (j'ai enlevé le texte qui ne présente aucun intérêt ici):
Sub Macro1() ' ' Macro1 Macro ' Range("G6").Select ActiveCell.FormulaR1C1 = "xxxxxxxxxxxxxxxxxxxxx (mon texte) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx." With ActiveCell.Characters(Start:=1, Length:=22).Font .Name = "Arial" .FontStyle = "Normal" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With ActiveCell.Characters(Start:=23, Length:=1).Font .Name = "Webdings" .FontStyle = "Normal" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With With ActiveCell.Characters(Start:=24, Length:=133).Font .Name = "Arial" .FontStyle = "Normal" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Range("G7").Select End Sub
En fait, la macro n'enregistre que l'édition du texte et les polices de caractères des différentes zones (ici Arial pour l'ensemble du texte et un caractère Webdings à la position 23).
Je pense qu'il faut utiliser la partie de code pour le caractère ajouté soit :
ActiveCell.Characters(Start:=xx, Length:=1).Font.Name = "Webdings"mais je ne vois pas comment je peux faire pour détecter la position du pointeur (xx) dans le texte afin de définir le start, et surtout quelle instruction je dois mettre pour insérer le caractère choisi.
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
5 nov. 2011 à 10:45
5 nov. 2011 à 10:45
Bonjour,
Merci pour l'information.
J'admets que le pointeur de la souris se trouve à l'endroit de l'insertion dans le texte ... est-ce correct ?
Merci pour l'information.
J'admets que le pointeur de la souris se trouve à l'endroit de l'insertion dans le texte ... est-ce correct ?
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
356
5 nov. 2011 à 12:43
5 nov. 2011 à 12:43
Bonjour Le Pingou,
Correct.
1 - J'édite la cellule;
2 - Avec la souris ou les flèches je positionne le point d'entrée où je souhaite insérer le caractère;
3 - J'utilise l'insertion pour ajouter ce caractère.
C'est cette dernière étape que je souhaite mettre en macro.
Michel
Correct.
1 - J'édite la cellule;
2 - Avec la souris ou les flèches je positionne le point d'entrée où je souhaite insérer le caractère;
3 - J'utilise l'insertion pour ajouter ce caractère.
C'est cette dernière étape que je souhaite mettre en macro.
Michel
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
5 nov. 2011 à 13:56
5 nov. 2011 à 13:56
bonjour
Une bidouille +/- foireuse
à l'endroit voulu avec le curseur, tu mets un caractère peu commun comme "¤" et tu valides
tu peux donc trouver la (ou les) position(s) de ce caractère et changer la police par la méthode "characters"
à la fin de la macro tu fais un "replace" "¤" par ""
ca devrait pouvoir se faire par fonction
bon courage quand même! ;o)
Une bidouille +/- foireuse
à l'endroit voulu avec le curseur, tu mets un caractère peu commun comme "¤" et tu valides
tu peux donc trouver la (ou les) position(s) de ce caractère et changer la police par la méthode "characters"
à la fin de la macro tu fais un "replace" "¤" par ""
ca devrait pouvoir se faire par fonction
bon courage quand même! ;o)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
Modifié par eriiic le 5/11/2011 à 14:17
Modifié par eriiic le 5/11/2011 à 14:17
Bonjour,
Je souhaite être contredit mais je doute de la faisabilité d'un tel projet.
Lorsque tu es en édition, je pense qu'aucun évènement ne peut être intercepté, donc comment lancer ta macro ?
Tu devrais plus orienter ta recherche vers un programme externe comme un clavier virtuel.
ici tu en as un de paramétrable qui semblerait faire l'affaire.
A toi de tester et de nous faire un retour ;-)
eric
Je souhaite être contredit mais je doute de la faisabilité d'un tel projet.
Lorsque tu es en édition, je pense qu'aucun évènement ne peut être intercepté, donc comment lancer ta macro ?
Tu devrais plus orienter ta recherche vers un programme externe comme un clavier virtuel.
ici tu en as un de paramétrable qui semblerait faire l'affaire.
A toi de tester et de nous faire un retour ;-)
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
356
5 nov. 2011 à 17:01
5 nov. 2011 à 17:01
Salut à tous les deux,
Merci pour vos remarques judicieuses.
@ Eric, c'est ce qui me bloque en effet : le lancement d'une macro en cours d'édition.
On peut, je pense, créer un pseudo clavier virtuel avec Excel VBA avec les instructions Onkey, Keypress et SendKeys. Mais toujours pareil : est-ce que ces instructions sont actives en mode édition ? Je n'en sais rien et je ne les ai jamais utilisées. Je vais essayer de creuser de ce côté.
@ Michel_m la bidouille est réalisable et rejoint ce que je pensais faire en dernier recours. D'autant que les caractères étant en fait des caractères classiques avec un espace de part et d'autre, il suffirait de chercher ces caractères isolés dans la cellule et de changer leur police pour afficher le caractère correspondant. Mais il faut bien reconnaitre que ce n'est pas très "User friendly".
Merci pour vos remarques judicieuses.
@ Eric, c'est ce qui me bloque en effet : le lancement d'une macro en cours d'édition.
On peut, je pense, créer un pseudo clavier virtuel avec Excel VBA avec les instructions Onkey, Keypress et SendKeys. Mais toujours pareil : est-ce que ces instructions sont actives en mode édition ? Je n'en sais rien et je ne les ai jamais utilisées. Je vais essayer de creuser de ce côté.
@ Michel_m la bidouille est réalisable et rejoint ce que je pensais faire en dernier recours. D'autant que les caractères étant en fait des caractères classiques avec un espace de part et d'autre, il suffirait de chercher ces caractères isolés dans la cellule et de changer leur police pour afficher le caractère correspondant. Mais il faut bien reconnaitre que ce n'est pas très "User friendly".
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
5 nov. 2011 à 21:22
5 nov. 2011 à 21:22
Oui, je pense que seule la proposition de michel est réalisable.
A la saisie ça pourrait être une combinaison de lettres ¤a pour un caractère, ¤b pour un autre, etc
Et pourquoi pas, un formulaire non modal pour avoir un mémo des codes sous les yeux.
eric
A la saisie ça pourrait être une combinaison de lettres ¤a pour un caractère, ¤b pour un autre, etc
Et pourquoi pas, un formulaire non modal pour avoir un mémo des codes sous les yeux.
eric
Le Pingou
Messages postés
12242
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2025
1 458
5 nov. 2011 à 23:06
5 nov. 2011 à 23:06
Bonjour mic13710,
J'arrive à l'instant et je constate qu'il y a plein de bonnes idées.
Effectivement aucune macro ne peut être déclenchée si la cellule est active, il faut passée par la proposition de Michel_m.
Dans le cas où vous devez insérer plus d'un caractère, selon les cas, je pense qu'il serait possible de passer par un formulaire (UserForm) ....avec liste de choix!
--
Salutations.
Le Pingou
J'arrive à l'instant et je constate qu'il y a plein de bonnes idées.
Effectivement aucune macro ne peut être déclenchée si la cellule est active, il faut passée par la proposition de Michel_m.
Dans le cas où vous devez insérer plus d'un caractère, selon les cas, je pense qu'il serait possible de passer par un formulaire (UserForm) ....avec liste de choix!
--
Salutations.
Le Pingou