IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

formater automatiquement un document .doc


Sujet :

Word

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut formater automatiquement un document .doc
    Bonjour,

    J'ai un fichier Word que dont je dois inverser certains mots. Je compte utiliser le language Perl et une expression régulière afin de repérer les changements à effectuer. Le problème est que ce fichier possède des mots en italique dont je dois garder le format. Il existe des modules perl Win32::Word::Writer qui permet de créer un document Word et Win32::OLE qui permet de manipuler des documents Word mais cela semble compliqué alors qu'à la base le problème est simple car je ne veux pas modifier la mise en page et le style mais simplement inverser certains mots.
    http://search.cpan.org/search?query=...ffice&mode=all

    Le fichier est en fait une liste de référence bibliographiques dont la liste des auteurs est écrite sous le format 'F. NOMA, Y. NOMB, ...' et que je dois modifier par 'Noma F., Nomb Y.'

    Je me demandais si il n'existait pas une façon de transformer mon document word en un simple document .txt contenant les information du formatage (un peu comme du html). De cette façon, je pourrais facilement modifier le fichier .txt via Perl et ensuite le remettre sous la forme .doc tout en gardant le bon format. Comprenez-vous ce que je suggère?

    Je me demandais si vous aviez une idée de la façon dont je pourrais résoudre ce problème.




    Merci pour vos conseils,
    -- Jasmine --

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Je ne comprend pas la démarche de le faire via Perl ?

    Quelle est ta version de Word ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut Inverser nom et prénom dans une bibliographie
    Salut,

    Comme Heureux-Oli, je ne vois pas l'utilité de la transformation (si tu dois conserver du Word) alors que Word permet de manipuler des expressions régulières (c'est un tout petit peu moins puissante que celle de Perl et/ou de Java mais qui répondent bien dans la majorité des cas) et surtout qui peuvent prendre en compte les formatages de caractères et/ou de paragraphes. Et de toute façon si les expressions régulières de Word ne sont pas suffisantes, une simple macro fera l'affaire.

    Sauf si tu as une raison personnelle (du style ta religion ne t'autorise qu'à faire du Perl...), si tu as un fichier Word au départ et tu veux un Word à l'arrivée, le mieux c'est d'utiliser... heu... Word.

    @+

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    En fait, j'ai parler de Perl car je ne connais que ce langage mais je n'arrive pas à manipuler un fichier Word via celui-ci alors que je peux facilement manipuler de simples fichiers textes. Je ne savais pas qu'il y avait moyen d'écrire des expressions régulières directement en Word. Je ne connais que le raccourci ctrl+H permettant de faire des modifications. Qu'est-ce que le macro? Je ne suis pas informaticienne, j'ai dû mal avec certains mots du vocabulaire informatique. Ma version Word est 2003. Tous mes moyens sont bons pour arriver à mes fins, je ne tiens pas spécialement à Perl. Merci beaucoup pour votre aide.

    Je récupère les initiales du prénoms, le nom, l'astérique si il y en a une et la ponctuation (. ou ,) de la ligne à formater via l'expression suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    my ($initiales_prenom, $nom, $asterisque, $ponctuation) = ($id =~ /([[A-Z]{1,2}\. ?(?:[A-Z]{1,2}\.)?)\s+([A-Z]+[ -]?[A-Z]*)(\*?)([,.])/i);
                    $nom = lc($nom);
                    $nom = ucfirst($nom);
                    print $nom." ".$initiales_prenom.$asterisque.$ponctuation." ";
    Ensuite, je réorganise pour avoir le format voulu. L'ennui est qu'il y a parfois des fautes des virgules, point, espace en trop ou trop peu (mais je devrais probablement les corriger manuellement) et aussi que certains prénoms forment de 1 à 3 initiales et que le noms sont parfois en 2 mots avec un tiret ou sans... enfin, c'est assez la foire.


    Donc ici,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    initiales = ([[A-Z]{1,2}\. ?(?:[A-Z]{1,2}\.)?)
    initiales_prénom : 1 à 2 lettres suivies d'un espace puis de 1 ou 0 point. Ensuite il est possible d'avoir encore une à deux lettre suivie d'un point.

    match
    Ph.
    A.
    A. P.
    A.P.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom = ([A-Z]+[ -]?[A-Z]*)
    nom : un groupe de lettre puis un espace ou un tiret optionnel et ensuite un second groupe de mot possible pour les noms composés.

    astérisque : présente ou absente
    ponctuation : un point ou une virgule

    Une fois que tout cela est récupéré, je mets le nom en minuscule sauf la première lettre et ensuite je réarrange les mots dans l'ordre voulu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $nom." ".$initiales_prenom.$asterisque.$ponctuation."


    donc si j'ai
    N.C. Louis, Ph. DUPONT, C. Van-Deel, J. J. van Duuren. blablabla inutiles.

    je récupère
    Louis N.C., Dupont Ph., Van-deel C., Van duuren J. J..

    Y aurait-il moyen de faire similaire en Word? Merci beaucoup pour votre aide.
    -- Jasmine --

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Le fichier de départ, c'est quoi ?

    Possible qu'il soit plus facile de travailler les données à la source.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Un fichier Word contenant une liste de références bibliographiques, il n'y a rien d'autre avant.
    -- Jasmine --

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pourrais-tu mettre un morceau de fichier ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Comment dois-je procéder afin de poster un document Word?


    Merci pour votre aide,
    -- Jasmine --

  9. #9
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    J'ai repris des copier-coller plic-ploc pour montrer les différentes structures.

    avant.doc
    après.doc


    Merci beaucoup,
    -- Jasmine --

  10. #10
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut Et Word fit les remplacer avec des caractères génériques
    Salut Jasmine,

    Pour quelqu'un qui ne fait pas de code, bravo pour la manipulation des expressions régulières en perl. Tu vas voir c'est (presque ) pareil avec Word.

    Attention, je suis parti des exemples que tu as donné. Ils sont tous traités et que ceux là mais tu dois vérifier que tu as été exhaustive (c'est toujours le plus dur). On s'accroche. Il faut procéder par étapes pour isoler les différents cas et se ramener un seul cas pour le dernier remplacement.

    Pour que que tu comprennes bien (et que tu puisses adapter si besoin), j'ai mis un n° devant chaque remplacer avec la chaine de rechercher (repérée par Ch-Rech = "", tu copies la valeur située entre les guillemets), ses attributs (en italique), la chaine de remplacement (repérée par Ch-Remp = "", tu copies la valeur située entre les guillemets) et ses attributs avec à chaque fois l'image de la boîte de dialogue correspondante. Prête, on y va (juste un dernier conseil, recopie bien car avec les expressions régulières un séparateur mal placé, un espace en plus ou en moins amène des distorsions importantes sur le résultat).

    étape 1 - Les prénoms - Cas des "Ph."
    • Ch-Rech = "<[A-Z][a-z][.; ]"
    • "Caractères génériques" cochée & "Couleur de police : automatique"
    • Ch-Remp = "$$$^&£££"
    • "Couleur de police : bleu clair"


    étape 2 - Les prénoms - Cas des "N.C.", "J. J."
    • Ch-Rech = "<[A-Z][.; ]@([A-Z][.; ])@"
    • "Caractères génériques" cochée & "Couleur de police : automatique"
    • Ch-Remp = "$$$^&£££"
    • "Couleur de police : bleu clair"


    étape 3 - Les prénoms - Cas des "C."
    • Ch-Rech = "<[A-Z][.; ]@"
    • "Caractères génériques" cochée & "Couleur de police : automatique"
    • Ch-Remp = "$$$^&£££"
    • "Couleur de police : bleu clair"


    étape 4 - Les noms simples et la 1ere partie des noms composés - Cas des "Louis", "DUPONT", "Van-", "van "
    • Ch-Rech = "(£££ )(<[A-Z;a-z]@)([-;,;^l;^13; ])"
    • "Caractères génériques" cochée
    • Ch-Remp = "\1\2££1\3"
    • "Couleur de police : bleu clair"


    étape 5 - La 2nde partie des noms composés - Cas des "-Deel", " Duuren"
    • Ch-Rech = "(££1)([-;,;^l;^13; ])(<[A-Z;a-z]@>)"
    • "Caractères génériques" cochée
    • Ch-Remp = "\2\3£££"
    • "Couleur de police : bleu clair"


    étape 6 - On inverse les noms et les prénoms
    • Ch-Rech = "($$$)(?@)(£££ )(?@)(££[£;1])"
    • "Caractères génériques" cochée & "Couleur de police : bleu clair"
    • Ch-Remp = "\4 \2"
    • "Couleur de police :Automatique"


    Ouf
    "N.C. Louis, Ph. DUPONT, C. Van-Deel, J. J. van Duuren. blablabla inutiles."
    devient
    "Louis N.C., DUPONT Ph., Van C.-Deel, van J. J. Duuren. blablabla inutiles."
    et je conserve les casses des noms (majuscules/minuscules)

    @+

  11. #11
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    whaaa quelles explications bien détaillées, je te remercie pour le temps que tu y as consacré. En fin de compte le chef a changé d'avis et je dois laisser tomber les points après les initiales des prénoms mais ce n'est qu'un détail. Je vais essayer de bien comprendre tes explications et ensuite de les mettre en pratique. Merci énormément.
    -- Jasmine --

  12. #12
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Arggh,

    Sâlo de chef, il te fait tout reprendre .

    Moi, je serai à ta place, je ferais très vite avec les points (disons avant ce soir) et tu lui dis que "tu voulais tout traiter parce que c'est quand même mieux, que t'en as bavé, que c'est gentil de sa part de vouloir et simplifier le travail (en supprimant les points) mais parce que tu l'aimes du fond du codeur, tu as préféré le faire quand même, parce qu'il le vaut bien (là, tu peux pousser le bouchon juste qu'à renvoyer tes cheveux élégamment sur ton épaule droite)"... Tu peux aussi ajouter d'autres remarques lénifiantes digne du grand chef qu'il est ou que tu n'as pas mangé ce midi (sauf si tu as mangé avec lui) et si tu as mangé avec lui, dis-lui que tu t'excuses de ne pas l'avoir trop écouter mais que tu n'arrêtais pas de penser justement aux cas des points après le prénom...

    Enfin si le faut le faire, ben rassure-toi il faut bien tout recommencer (j'exagère en fait mais au moins 2 étapes sur 6, c'est déjà pas mal)

    Put...in de chef (et je viens de cracher par terre)

    Bon courage

  13. #13
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    J'ai dû faire une fausse manœuvres car j'obtiens en correction dans le texte

    $$$Ph.£££

    J'ai supprimé les $$$ et £££ de la case remplacer ... à quoi cela devait-il servir?
    ... ça va peut-être coincer plus loin. Pour rappel, j'ai Word 2003.

    Ah non, je viens de comprendre c'est afin de créer un pattern spécial qu'on recherchera plus loin. Il faut toujours aller au bout des explications avant d'essayer de résoudre un problème, c'est pourtant ce que l'on apprend à l'école.



    Merci,
    -- Jasmine --

  14. #14
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Non mais quand il est revenu voir où ça en était pour la 5ième fois, je lui ai fait sous-entendre que sans les fautes de frappe, cela serait fait depuis longtemps ...

    En fin de compte, j'ai effectué les corrections en semi automatique avec mon expreg de Perl dont je faisais des copier-coller. Ainsi cela a été fini pour aujourd'hui. Pour les points, j'ai simplement fait un ctrlH remplacer des bonnes lignes sélectionnées.

    Nanmoins, je veux arriver à le faire entièrement en Word pour la prochaine fois (et au cas où le chef changerait une troisième fois d'avis).

    Merci beaucoup pour ton aide, je pars quelques jours en congé mais je m'y remettrai dès mon retour.


    Pourrais-tu expliquer ceci ou me donner la référence vers un manuel utilisateur en ligne des expressions rationnelles en word?

    étape 4 - Les noms simples et la 1ere partie des noms composés - Cas des "Louis", "DUPONT", "Van-", "van "

    * Ch-Rech = "(£££ )(<[A-Z;a-z]@)([-;,;^l;^13; ])"
    * "Caractères génériques" cochée
    * Ch-Remp = "\1\2££1\3"
    * "Couleur de police : bleu clair"
    \1\2\3 récupèrent les valeurs de ce qui est entre parenthèses
    on recherche les signes £££ que l'on a placé précédemment et on les stocke dans \1
    puis on recherche un groupe de lettres mais à quoi servenet < et @ ?
    Puis [-;,;^l;^13; ] un - ou , ou ^| ou ^13 mais que vallent ^| et ^13?

    Merci beaucoup,
    -- Jasmine --

  15. #15
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut Explications
    Salut Jasmine,

    Et oui, c'est le propre (au sens figuré) des chefs de changer d'avis.

    Pour les \1, je n'avais pas précisé car c'est comme pour les regexp standards. Lorsque tu isoles un bloc (dans le cas de la recherche avec des caractères génériques dans Word, les blocs sont délimités par des parenthèses ouvrantes et fermantes), tu peux le manipuler en tant que bloc dans le remplacement, le N° qui suit le "\" indique le n° de bloc (donc "\1" désigne le premier bloc du rechercher, "\3" le 3ième bloc...). Comme tu l'avais indiqué.

    Pour les ^13, dans la mesure où tu es dans la recherche générique les caractères spéciaux de recherche dans Word comme les tabulations, les retours chariot ne sont plus tous utilisables avec leurs raccourcis standards donc Word utilise leur code ASCII (lorsque ce dernier est international et identique pour les différentes plates-formes) pour les définir comme élément de recherche, en l'occurrence ^13 signifie ASCII(13° soit Retour Chariot (sans Line Feed) en gros un changement de paragraphe. Mais comme tous les codes utilisables ne sont pas identiques entre les plates-formes, Word utilise alors les caractères spéciaux de Word pour repérer les éléments, donc pour les changements de ligne (appelés aussi "Retours Chariots mous" ou "saut manuel de ligne"), Word demande à utiliser "^l" (un beau bor..del, quoi ) mais c'est la bonne (??? ) syntaxe.

    Pour "<" et ">", ils signifient respectivement "début de mots" et "fin de mots". Un super truc sauf que les mots dans Word ont une vision du commun des anglophones donc pas de tiret "-", pas de "_" ... dans les mots et donc ce qui est utile dans ce cas (début de mot, fin de mot) et qui simplifie la vie peut devenir vite compliqué pour un texte informatique, un rapport technique...

    Pour "@", c'est la syntaxe Word pour signifier "1 ou +", la syntaxe "0 ou +"
    c'est "*" (mais attention à cette dernière, elle est très très sujette à pb surtout si elle est utilisée avec "début de mot" et "fin de mot", à en pleurer parfois ).

    Pour info, l'utilisation des caractères de définition des éléments de syntaxe (comme le "[", le "*"...), s'effectue par "\" suivi du caractère concerné (exemple "\[", "\*"...).

    Voilà et bonnes vacances

  16. #16
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci pour tes réponses, bien que j'ai quitté le boulot j'avais quand même envie de comprendre avant le repos, d'où mon petit passage.
    -- Jasmine --

  17. #17
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    J'ai testé les expressions régulières cela fonctionne bien pour la majorité des noms mais pas tous car l'expression régulière ne prend pas en compte les initiales J.L.

    $$$M.£££ Moreau££1, $$$$$$J.£££$$$L.££££££ Gala££1, $$$F.£££ Frippiat££1, $$$B.£££ Vandercam££1.
    * Ch-Rech = "($$$)(?@)(£££ )(?@)(££[£;1])"
    * "Caractères génériques" cochée & "Couleur de police : bleu clair"
    * Ch-Remp = "\4 \2"
    * "Couleur de police :Automatique"
    Moreau M., Gala $$$J.£££$$$L.£££, Frippiat F., Vandercam B..


    Pour ($$$)(?@)(£££ )(?@)(££[£;1])
    @ signifie donc 1 ou + mais à quoi sert le ?
    si on écrit ($$$)@ cela ne prendra t'il que les multiple de trois $ ?




    J'ai également une autre question

    M Moreau, JL Gala, F Frippiat, B Vandercam.
    J'aimerais directement inverser les initiales et le nom. J'ai essayé avec :

    J'ai essayé
    (<[A-Z]@ ) (<[A-Z][a-z]@)([\.;,])
    \2\1\3
    pour dire (1 ou plusieur lettres majuscules, un espace)(une majuscule suivie d'un groupe de minuscules)(point ou virgule)
    ... mais cela ne fonctionne que pour M Moreau
    Pourriez-vous m'expliquer pourquoi?
    J'ai l'impression que j'ai différents types d'espaces.
    Comment indiquer entre 1 et 2 fois?



    Pour ce qui est des points à supprimer après les initiales des prénoms, je vais faire

    * Ch-Rech = "([A-Z])\."
    * Ch-Remp = "\1"
    Merci beaucoup,
    -- Jasmine --

  18. #18
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Jasmine,

    Citation Envoyé par Jasmine80 Voir le message
    J'ai testé les expressions régulières cela fonctionne bien pour la majorité des noms mais pas tous car l'expression régulière ne prend pas en compte les initiales J.L.

    $$$M.£££ Moreau££1, $$$$$$J.£££$$$L.££££££ Gala££1, $$$F.£££ Frippiat££1, $$$B.£££ Vandercam££1.

    Moreau M., Gala $$$J.£££$$$L.£££, Frippiat F., Vandercam B..
    Le problème vient du fait que certains prénoms de la bibilographie soient composés sans "." et avec "-" (cas de J-F) donc l'étape 2 - Les prénoms - Cas des "N.C.", "J. J." et des "J-F"
    * Ch-Rech = "<[A-Z][.; ]@([A-Z][.; ])@"
    doit prendre ne compte le "-" (la modif est marquée en rouge et gras)
    * Ch-Rech = "<[A-Z][-;.; ]@([A-Z][.; ])@"
    * "Caractères génériques" cochée
    * Ch-Remp = "$$$^&£££"
    * "Couleur de police : bleu clair"

    Le problème vient du fait que certains noms de la bibilographie soient suivis d'un "." donc l'étape 4 - Les noms simples et la 1ere partie des noms composés - Cas des "Louis", "DUPONT", "Van-", "van "
    * Ch-Rech = "(£££ )(<[A-Z;a-z]@)([-;,;^l;^13; ])"
    doit prendre ne compte le "." (la modif est marquée en rouge et gras)
    * Ch-Rech = "(£££ )(<[A-Z;a-z]@)([-;,;.;\*;^l;^13; ])"
    * "Caractères génériques" cochée
    * Ch-Remp = "\1\2££1\3"
    * "Couleur de police : bleu clair"


    Citation Envoyé par Jasmine80 Voir le message
    Pour ($$$)(?@)(£££ )(?@)(££[£;1])
    @ signifie donc 1 ou + mais à quoi sert le ?
    si on écrit ($$$)@ cela ne prendra t'il que les multiple de trois $ ?
    Le "?" signifie n'importe quel caractère
    Le "($$$)@" signifie qu'il recherche toutes les suites possible de "$$$" mais la première recherche ruse car elle recherche pas dans ce qui est déjà trouvé (mais les suivantes le font )


    J'ai également une autre question


    Citation Envoyé par Jasmine80 Voir le message
    J'aimerais directement inverser les initiales et le nom. J'ai essayé avec :
    (<[A-Z]@ ) (<[A-Z][a-z]@)([\.;,])
    \2\1\3

    pour dire (1 ou plusieur lettres majuscules, un espace)(une majuscule suivie d'un groupe de minuscules)(point ou virgule)
    ... mais cela ne fonctionne que pour M Moreau
    Tu as un " " en trop entre le 1er bloc et le 2ieme, tu dois utiliser
    (<[A-Z]@ )(<[A-Z][a-z]@)([\.;,])
    avec \2 \1\3


    Citation Envoyé par Jasmine80 Voir le message
    Pourriez-vous m'expliquer pourquoi?
    J'ai l'impression que j'ai différents types d'espaces.
    Comment indiquer entre 1 et 2 fois?
    Il existe dans Word plusieurs espaces (les espaces "normaux", les espaces insécables, les tabulations) que Word regroupe sous le terme générique de "espace blanc" et qui sont accessible en recherche (standard) par "^w". Tu peux donc essayé de remplacer "^w" par " " pour les uniformiser mais attention à bien cibler ton remplacement sinon tu vas le faire sur tout le document (et donc tu vas perdre les tabulations). Tu peux aussi utiliser "^s" pour les espaces insécables

    Citation Envoyé par Jasmine80 Voir le message
    Pour ce qui est des points à supprimer après les initiales des prénoms, je vais faire
    * Ch-Rech = "([A-Z])\."
    * Ch-Remp = "\1"
    C'est très bien (tu es une bonne élève ) mais là encore cible tes remplacements sinon tu vas la faire sur tout le document . Le mieux c'est de profiter que les étapes 1, 2 et 3 transforment les prénoms en leur ajoutant une couleur (bleu clair en l'occurrence), donc avant l'étape 4, tu peux passer ta macro en indiquant que tu vas travailler que sur les caractères de couleur "bleue claire" et hop, le tour est joué.

    Attention, j'ai vu que le doc que tu nous avais transmis que tu as de noms de biblio du type P.VANNUFEL (vers le bas) qui ne sont pas pris en compte dans la macro mais ta macro qui supprime simplement le "." va aboutir à PVANNUFEL. C'est pourquoi je n'ai pas pris en compte ce cas (à voir donc).

    @+

  19. #19
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci beaucoup pour les explications, je vais m'y remettre.

    Qu'est-ce qu'un macro?
    Comment indiquer entre 1 et 2 fois? En perl (blabla){1,2} signifie trouver entre 1 à 2 fois blabla ... existe t'il l'équivalent en Word?


    Encore un grand merci pour le temps que tu passes à m'aider
    -- Jasmine --

  20. #20
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Jasmine,


    Je voulais dire ton remplacement (j'ai dit macro car c'est une des possibilités de Word).

    Une macro est un bout de code (écrit en VBA les softs de pour Microsoft Office) qui prend de piloter WOrd, Excel et de leur faire faire des instructions. Par exemple, l'instruction
    permet de sauvegarder le document courant
    permet de sélectionner tout le document...

    En général pour des tâches répétitives, il est intéressant d'enregistrer les actions faites pour permettre de les rejouer (avec plus ou moins d'adaptation) sur d'autres documents. Pour toi, ce pourrait être intéressant si tu avais plusieurs fichiers qui contiennent de la bibliographie car une fois au point, tu peux rejouer autant de fois que tu veux ces macros donc sur autant de fichiers que tu veux et tu les lances une seule opération. Sympa

    c'est comme PERL sauf que VBA te fournit en plus le modèle des objets des outils (l'objet Document pour un fichier Word, l'objet WorkBook pour un classeur Excel...)


    @+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/04/2017, 17h21
  2. formater un document .doc
    Par Jasmine80 dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2008, 06h24
  3. [Format A4] Ajustement automatique du document
    Par aldo-tlse dans le forum Word
    Réponses: 1
    Dernier message: 09/07/2008, 12h38
  4. Génerer automatiquement plusieurs fichier .doc
    Par brunovitch dans le forum QuickReport
    Réponses: 3
    Dernier message: 09/07/2002, 08h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo