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 Discussion :

[VBA-W2000] Renvoyer les coordonnées d'un signet placé dans un tableau


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut [VBA-W2000] Renvoyer les coordonnées d'un signet placé dans un tableau
    Bonjour,

    Je ne connais pas encore bien le modèle d'objets de Word et je me retrouve donc à buter sur un problème peut-être tout bête.
    Je m'explique :

    Un utilisateur place un signet dans un tableau Word et j'aurais besoin de récupérer les coordonnées (numéros de ligne et de colonne) de ce signet au sein de mon tableau.

    PS : je sais comment atteindre le signet et renvoyer l'objet Range correspondant, mais je n'arrive pas à trouver la propriété/méthode qui me renverrait ses coordonnées au sein du tableau.

    Merci d'avance !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Jamais fait mais ce devrait être un truc comme ça une fois qu'on est dans la bonne cellule (extrait de l'aide... mais faut savoir ce qu'on cherche )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub NoColonneEtNoLigne()
        If Selection.Information(wdWithInTable) = True Then
            MsgBox "Colonne " & Selection.Information(wdStartOfRangeColumnNumber)
            MsgBox "Ligne " & Selection.Information(wdStartOfRangeRowNumber)
        End If
    End Sub
    Regarde aussi les exemples donnés par SylkiRoad à cette adresse, il met plein de solutions
    http://www.developpez.net/forums/sho...34&postcount=8

  3. #3
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Merci ouskel'n'or !
    Pratique cette propriété Information !
    Malheureusement, j'aurais aussi besoin de récupérer l'objet Table (ou son numéro d'index au sein de la collection Tables) auquel ces coordonnées correspondent.
    Quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Selection.Information(wdStartOfRangeTableNumber) 
    'cette constante n'existe malheureusement pas
    J'ai eu beau regarder toutes les constantes wdInformation, je n'ai rien trouvé de tel. Tu n'aurais pas une idée par hasard ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, mais tu peux utiliser le nom de ton tableau.
    Pour ça, tu colles un signet à l'ensemble de ton tableau (en plus des signets de tes cellules) et ensuite, tu récupères le nom du signet de la cellule active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Signet " & Selection.Bookmarks(Selection.BookmarkID).Name
    Selection.BookmarkID te fournit l'index du tableau dans lequel tu te trouves

  5. #5
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Merci pour ta réponse ouskel'n'or.

    Mais je ne comprends pas : a priori, Selection.Bookmarkid va me renvoyer l'index du signet, pas celui du tableau contenant ce signet, non ?

    En outre, j'utilise ces signets comme des champs de fusion que mes utilisateurs positionnent eux-mêmes au sein de leur document Word, document que je complète ensuite par programmation. Et comme je voudrais leur simplifier la vie au maximum, je souhaiterais leur éviter d'avoir à insérer un signet pour marquer chaque tableau de leur document.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok, j'ai compris le pb hier soir en me couchant
    C'est vrai : le problème existe si toutes les cellules de tes tableaux ont des signets.
    La question : As-tu une colonne de cellules n'ayant pas de signet ?
    L'idée pour pallier le pb consisterait alors à relever le signet de la cellule dont tu veux récupérer la donnée puis de décaler sur la colonne du même tableau qui ne contient pas de nom de cellule et de récupérer le nom du signet correspondant au tableau, non à une cellule.
    Ce qui n'est pas très reluisant... mais sinon, là je ne vois pas.
    Tu dis

  7. #7
    J1
    J1 est déconnecté
    Membre expérimenté Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Par défaut
    Malheureusement, ça obligerait bien les utilisateurs à marquer (à l'aide d'un signet) les tableaux dans lesquels ils insèrent des signets.
    En tout cas, je te remercie pour tes réponses, ouskel'n'or.

    Si quelqu'un d'autre a une idée, je récapitule en quelques mots le problème :
    comment, à partir d'un objet Range contenu dans un tableau, récupérer l'objet Table correspondant ?

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

Discussions similaires

  1. [Débutant] Obtenir les coordonnées de mes points 3D dans un repère 2D
    Par miss_ana dans le forum MATLAB
    Réponses: 4
    Dernier message: 13/03/2014, 14h40
  2. Réponses: 6
    Dernier message: 28/01/2012, 19h02
  3. Comment attraper tous les noeud d'un même type dans un tableau
    Par lodan dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 01/04/2007, 16h36
  4. Réponses: 2
    Dernier message: 26/12/2006, 12h49
  5. [VBA-E] Connaitre les coordonnées de la cellule ou l'on est
    Par Nicos77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2006, 16h38

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