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

Macros et VBA Excel Discussion :

Piloter Word depuis Excel: retenir le range de la sélection actuelle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Par défaut Piloter Word depuis Excel: retenir le range de la sélection actuelle
    Bonjour à tous,


    J'espère que je pose la question au bon endroit. Sorry si ce n'est pas le cas.

    En fait je pilote word depuis Excel. J'aimerais insérer une liste numérotée dans mon texte. Pour ça, je cherche à récupérer le Range de tous le texte que je veux mettre en forme avec un Start - End...


    Bref, je voudrais que mon Start soit le Range de la sélection actuel ... Comment récupérer le Range de la sélection actuel ? J'ai testé ce bout de code mais ça n'a pas fonctionné ... Quelqu'un aurait une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim DebutDeLaListe as Range
    Set DebutDeLaListe = WordApp.Selection.Range
    Je vous remercie d'avance pour l'aide ! : )

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la question a plutôt sa place dans le forum VBA Word

    voici par exemple, à adapter dans un contexte d'automation via Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim DebutDeLaListe As Range
    Set DebutDeLaListe = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End)
    MsgBox DebutDeLaListe.Text

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Par défaut
    Re Joe,


    Merci pour ta réponse, je m'en suis inspiré pour tester ça mais avec des Bookmarks... Par contre c'est toujours la même chose, j'ai toujours le même message d'erreur et je n'arrive pas à comprendre ... Je reçois le message d'erreur: incompatibilité de type sur la ligne de "DebutDeLaListe" que j'ai pourtant bien défini comme un range...


    Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim DebutDeLaListe As Range, FinDeLaListe As Range, RangeDeTouteLaListe As Range
     
    WordDoc.Bookmarks.Add "DonneesGlobalesInterventionsFin", WordApp.Selection.Range
     
     
    Set DebutDeLaListe = WordDoc.Range(Start:=WordDoc.Bookmarks("DonneesGlobalesInterventionsDebut").Range.Start, _
                                    End:=WordDoc.Bookmarks("DonneesGlobalesInterventionsFin").Range.End)
     
    MsgBox DebutDeLaListe.Text
    Que faire ? Je suis vraiment perdu là : (

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Ca t'apprendra à mal poser ta question

    par définition un Bookmark est un Range dans ton document
    donc son début c'est Start, et sa fin c'est End ... sans avoir besoin de l'affecter à une quelconque propriété range (contrairement à Selection)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With WordDoc
        Set DebutDeLaListe = .Range(Start:=.Bookmarks("DonneesGlobalesInterventionsDebut").Start, _
                                    End:=.Bookmarks("DonneesGlobalesInterventionsFin").End)
    End With
     
    MsgBox DebutDeLaListe.Text

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Par défaut
    J'ai un "incompatibilité de type" encore

    Comment ça se fait ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    prend un fichier word vierge

    écrit toto en ligne 1 et tata en ligne 2

    sélectionne toto et insère un signet appelé "début"
    sélectionne tata

    lance ce code

    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
    20
    Sub ii()
    Dim WordDoc As Document
    Dim Book1 As Range
    Dim Book2 As Range
    Dim MaSelection As Range
     
    Set WordDoc = ActiveDocument
     
    With WordDoc
        .Bookmarks.Add "fin", Selection
        Set Book1 = .Bookmarks("debut").Range
        Set Book2 = .Bookmarks("fin").Range
     
        Set MaSelection = .Range(Start:=Book1.Start, _
                                   End:=Book2.End)
    End With
     
    MsgBox MaSelection.Text
     
    End Sub
    j'ai un message
    toto
    tata

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

Discussions similaires

  1. [WD-2013] Piloter word depuis excel
    Par llyglad dans le forum Word
    Réponses: 1
    Dernier message: 16/09/2013, 02h22
  2. piloter powerpoint depuis excel
    Par cocktails dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 28/07/2006, 09h42
  3. coller une plage dans word depuis excel
    Par tarmin dans le forum VBA Word
    Réponses: 7
    Dernier message: 18/01/2006, 10h16
  4. Ouverture d'un template Word depuis Excel
    Par modus vivendi dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/08/2005, 10h29

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