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

VBA Word Discussion :

Problème de selection d'une ligne avec !


Sujet :

VBA Word

  1. #1
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut Problème de selection d'une ligne avec !
    Bonjour,

    Suite à un bug dans un de mes projet, je me suis rendu compte que la ligne n'etait pas selectionnée lorsqu'il y a un "!" sur cette ligne :

    Ma phrase est bien sélectionnée
    Ma phrase s’arrête ici ! l’exclamation stop la sélection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.MoveRight Unit:=wdSentence, Count:=1, Extend:=wdExtend    'selection du reste de la ligne
    Edit : finalement je pense que j'ai trouvé une solution de contournement, mais j'aimerai bien comprendre, le pourquoi de la chose !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend

  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,

    Sentence est une phrase, et la phrase prend fin avec un ., un ! ou un ?
    Donc lorsque tu rencontres l'un de ces caractères, la phrase se termine.
    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 : 61
    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 Aalex_38,

    Citation Envoyé par aalex_38 Voir le message
    Edit : finalement je pense que j'ai trouvé une solution de contournement, mais j'aimerai bien comprendre, le pourquoi de la chose !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Attention, tu as réussi seulement en partie. En effet, ton code sélectionne la ligne et comme dans ton cas elle est courte ça passe. Il est plus prudent de sélectionner le paragraphe avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.MoveDown Unit:=wdParagraph, Extend:=wdExtend
    Comme si tu n'as qu'une seule ligne (comme pour cette fois-ci), c'est identique mais si tu as un paragraphe sur plusieurs lignes, seul le 2ième code (celui avec wdParagraph) te donne le bon résultat. C'est une (bonne) habitude à prendre, elle évite plein de problèmes après.

    Reste que l'essentiel est la correction que tu as faite et qui marche. Le reste n'est qu'un conseil.

    @+

  4. #4
    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 sais pas ce que tu veux faire avec ton code, mais le contenu d'un paragraphe est obtenu par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Activedocument.Paragraphs(1).Range.Text
    Qui est beaucoup plus rapide qu'un objet sélection.
    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 !

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Merci beaucoup pour tout ces conseils et ces précisions, on en apprend tous les jours !

    Sentence est une phrase, et la phrase prend fin avec un ., un ! ou un ?
    => c'est noté je ne le savais pas, je croyais que c'etait le retour chariot !

    Comme si tu n'as qu'une seule ligne (comme pour cette fois-ci), c'est identique mais si tu as un paragraphe sur plusieurs lignes, seul le 2ième code (celui avec wdParagraph) te donne le bon résultat. C'est une (bonne) habitude à prendre, elle évite plein de problèmes après.
    => Merci beacoup, c'est noté pour les prochaines fois, dans mon exemple ce sont des noms de fichiers que je selectionne, donc la selection de la ligne me suffit (Mon document word contient une liste de noms de fichiers que j'ouvre ensuite et traite par macro).

    Merci a vous deux.


    Edit : je viens de tester les codes proposés ils fonctionnent très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Selection.MoveDown Unit:=wdParagraph, Extend:=wdExtend
    nomfic = Selection.Text
    MsgBox nomfic
     
    nomfic = ActiveDocument.Paragraphs(2).Range.Text
    MsgBox nomfic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/10/2009, 02h09
  2. Réponses: 2
    Dernier message: 02/04/2009, 12h23
  3. Selection d'une plage avec ligne variable
    Par ginkas31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2008, 07h04
  4. problème lors de la selection d'une cellule avec un lien hypertexte
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2007, 10h16
  5. récupération d'une ligne avec un select MAX(champ1)
    Par rdams dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/07/2006, 10h33

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