Macro Word pour edition d'une nouvelle. - VB/VBA/VBS - Programmation
Marsh Posté le 03-12-2013 à 12:57:04
Salut !
Un exemple court et précis éclaircirait la problématique …
Les logiciels de messagerie (en tout cas les bons) ont la possibilité de poster les réponses
en dessous du message précédent au lieu d'au dessus, pas besoin de code alors ! …
Si non le copier / coller par bloc va très bien aussi !
N'étant pas un spécialiste de Word, une fois le texte collé à l'envers cela risque d'être une usine !
Par contre à partir du texte collé dans le Presse-papiers ou dans un fichier .txt ce serait facile …
Marsh Posté le 03-12-2013 à 13:28:01
Salut,
Je ne suis pas non plus expert en Word mais as-tu la possibilité de récupérer tout le texte d'un coup dans la macro? Si oui alors il te suffit d'utiliser la fonction split avec tout le texte et comme séparateur les "------", après tu parcoures ton tableau en partant de la fin.
Marsh Posté le 03-12-2013 à 17:31:31
Bah le truc c'est que le forum ou l'on est a pas un très bon système de messages...
Et copier coller par bloc c'est efficace, mais long (les macros sont supposé simplifier la vie... celle me colle juste un migraine en revanche >.> )
Disons en exemple que j'ai mon histoire comme ça
-------
Antoine remarque les chaussures de Marie et grimace... il préférait les autres...
-------
Marie adore ses nouvelles chaussures, elle sont trop belles! Elle les montre vite a Antoine!
--------
Comme vous voyez, les deux morceaux sont pas dans le bon ordre... et donc je pensais que on pourrai faire une macro simple qui irai sélectionner entre chaque -----, et qui collerais sa dans un nouveau document, de bas en haut, en boucle.
(parce que dans nos histoire les morceau sont un peu (beaucoup) plus gros que deux lignes...)
Sinon ce truc de tableau je suis pas sure de comprendre...
Marsh Posté le 03-12-2013 à 19:29:23
lasauvage a écrit : ------- |
En respectant cette structure, après le Copier du texte source,
dans Word juste sélectionner le point d'insertion (ne pas Coller !) puis lancer cette procédure :
Code :
|
Marsh Posté le 04-12-2013 à 11:31:25
La solution que je suggérais :
Code :
|
La première macro travaille sur le texte sélectionné, la deuxième sur tout le document.
Marsh Posté le 04-12-2013 à 14:22:54
Comme de toute manière lasauvage passe par un Copier, j'ai préféré travailler directement à partir du Presse-papiers …
Sinon mon premier jet était dans ton esprit mais peu souple quant au séparateur, s'il y a un "-" de plus ou de moins …
C'est pour cela que j'ai préféré détecter à partir de 3 "-" consécutifs, peu importe qu'il y en ait 6, 7 ou 8 !
Mon premier jet :
Code :
|
Marsh Posté le 04-12-2013 à 14:39:20
Ah oui, je n'ai pas cherché à comprendre, c'est donc cette histoire de tiret qui complique à un peu ton code, mais en effet ça sera plus souple pour un code prêt à l'emploi.
Marsh Posté le 04-12-2013 à 16:08:23
Oui j'aurai pu continuer en alimentant une simple variable texte au lieu de faire le beau avec un second tableau dynamique !
Il y avait aussi la possibilité de ne pas utiliser Split mais de détecter via InstrRev puis découper par Mid …
Bref, différents moyens d'effectuer l'inversion en pur VBA, ce que j'appréhendais était la partie Word, ma fois assez simple dans ce cas …
______________________________________________________________
La connaissance, c'est comme la confiture : moins on en a plus on l'étale !
Marsh Posté le 02-12-2013 à 23:05:48
Salut a tous, désolé de vous embêter, mais j'ai un petit problème.
En fait j'essaie de créer une macro word pour éditer une nouvelle qu'on écris moi et une amie sur un forum.
On s’écrie les passages par MP, le truc c'est que quand je sauve le texte finale, toute l'histoire est a l'envers (la dernière réponse est au début, la première a la fin)
Pas très pratique.
J'ai donc voulu faire une macro pour inverser tout ça. Comme je ne sais faire que des macro par enregistrement j'ai donc commencé par ça. Mais sa ne marche pas comme prévu parce que je ne sais pas dire a Word de sélectionner le text en partant de la fin, ni de faire une boucle...
J'ai regardé la macro, en fait elle fonctionne au nombre de ligne. Donc si on écrit une autre histoire, pas de la même taille, sa marchera encore moins...
Pour m'aider, nos répliques sont toute écrite ainsi
-------
blablablabla
blablablabla
blablablabla
-------
Donc comment dois-je faire pour dire a word de:
#selectionner le text entre chaque -------
#Partir de la toute fin du text
#faire ça en boucle jusqu’à ce qu'il ne trouve plus de -------
(tout le copier/coller tout ça j'ai trouvé le code je pourrai me débrouiller)
Merci beaucoup d'avance.