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

VSTO .NET Discussion :

[Word automation] Afficher une recherche (ctrl-F) à l'ouverture d'un fichier [Débutant]


Sujet :

VSTO .NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [Word automation] Afficher une recherche (ctrl-F) à l'ouverture d'un fichier
    Bonjour à tous,

    Je débute avec word automation et je ne parviens pas au résultat que je désire.

    J'aimerais pouvoir ouvrir un fichier avec des mots recherchés surlignés en jaune (en gros le résultat d'un ctrl-F) dés l'ouverture du fichier mais je n'y parviens pas.

    Voilà mon code pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                Object oMissing =  System.Reflection.Missing.Value;           
                Object oFile = (Object)"C:\\Users\\User1\\Desktop\\Test\\Test.docx";
                Microsoft.Office.Interop.Word.Application wordAp = new Microsoft.Office.Interop.Word.Application();
                Microsoft.Office.Interop.Word.Document wordDoc = new Microsoft.Office.Interop.Word.Document();
                wordAp.Visible = true;
                wordDoc = wordAp.Documents.Open(ref oFile, ref oMissing, ref oMissing, ref oMissing);
                wordAp.Selection.Find.Text = "MotCléRecherché";
    Ce code me permet d'ouvrir un fichier, et le mot apparait directement ds la textbox de recherche quand j'appuie sur ctrl-F mais j'aimerais ne pas avoir à appuyer sur ctrl-F justement.

    Quelqu'un a une idée pour forcer word à afficher la sous-fenetre de navigation pour la recherche(ctrl-f)?

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Peut-être quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordAp.Selection.Find.Execute()

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    J'avais déjà essayé cela, cette méthode surlignait seulement le premier mot en bleu comme une sélection ce qui n'est pas mon but.

    J'ai mis ce boulot en stand by, mais quand je le reprendrais, je pense que je surlignerais simplement tout les mots recherchés, en affichant une copie du fichier en question.

    Merci de votre aide

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Salut !

    je n'ai pas d'exemple de code à te proposer, mais quelqueschose du genre substring sur le corps du document word ?

    En fait, tu récupères le corps du document, et tu cherches le mot en question avec substring, tu récupères donc l'index de ton mot, et tu peux donc aller le surligner dans le document.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    J'ai repris cette partie de mon projet et j'ai fini par y apporter la solution suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Object oMissingOpen =  System.Reflection.Missing.Value;
     
    Object oReadOnly = true;
    Object oFile = (Object)"RepertoireFichier";
    Microsoft.Office.Interop.Word.Application wordAp = new Microsoft.Office.Interop.Word.Application();
    Microsoft.Office.Interop.Word.Document wordDoc = new Microsoft.Office.Interop.Word.Document();
    wordDoc = wordAp.Documents.Open(ref oFile, ref oMissingOpen, ref oReadOnly, ref oMissingOpen);
    wordAp.Visible = true;
    object oMissingFind = System.Type.Missing;
                    foreach (Word.Range tmpRange in wordDoc.StoryRanges)
                    {
                        tmpRange.Find.Text = "MotRecherché";
                        tmpRange.Find.Replacement.Highlight= 1;
                        tmpRange.Find.Wrap = Word.WdFindWrap.wdFindContinue;
                        object replaceAll = Word.WdReplace.wdReplaceAll;
                        tmpRange.Find.Execute(ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref replaceAll, ref oMissingFind, ref oMissingFind, ref oMissingFind, ref oMissingFind);
                    }
     wordAp.NormalTemplate.Saved = true;
    Pour info ce besoin s'intègre à un moteur de recherche de documents docx, à l'ouverture d'un fichier (via l'application), le mot-clé qui a généré la liste de documents est surligné dans les documents grâce à ce code.

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

Discussions similaires

  1. Afficher une recherche après une sélection dans une ListBox
    Par vitalus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/05/2015, 18h04
  2. Afficher une recherche dans une msgbox
    Par hylis dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 18/03/2015, 14h04
  3. [VB.NET] Afficher une recherche dans un dictionnaire
    Par Herzele dans le forum Débuter
    Réponses: 1
    Dernier message: 07/11/2013, 13h29
  4. Afficher une recherche faite dans l'active directory
    Par clemantine dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/06/2012, 19h12
  5. [XL-2007] Afficher une userbox à la toute première ouverture d'un fichier
    Par toushusss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2011, 08h54

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