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

Delphi Discussion :

Accès via Delphi à un tableau Word situé dans un pied de page [FAQ]


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut Accès via Delphi à un tableau Word situé dans un pied de page
    Bonjour à tous d'un p'tit nouveau impressionné par la richesse du site !

    Je dois aller graver, en Delphi, du texte dans les cellules d'un tableau qui se trouve dans le pied de page d'un document Word. Je pensais simplement que ce tableau était un tableau supplémentaire dans la collection, mais pouette, ça va pas. J'ai neuf tableaux dans le corps du document, et je peux les tripoter à mon aise, avec
    doc.Tables.Item( pNumTableau ).Rows.Item(1).Cells.Count;
    ou doc est un bête OLEVariant

    Mais le dixième tableau, celui du bas de page, est inconnu de la collection Tables.

    Et dans les macros VB aussi, même problème, j'arrive pas à le référencer à l'aide par exemple de
    Application.ActiveDocument.Tables.Item(10).Cell(1, 1).Range.Text

    Quelqu'un sait comment on accède à ce putGRRRRRRRRbleau ? :-))

    Paul

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Salut

    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).Cell(1, 1)

  3. #3
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut passer par activepane
    Ouahahaaaa, c'est toujours comme ça, c'est quand on fait appelle à l'équipe qu'on se rend compte qu'on est con...

    La solution est d'activer d'abord le pied de page (ou l'en-tête) avec ActivePane, car les tableaux qui s'y trouvent sont repris dans une autre collection de tables. Puis on peut simplement faire :

    doc.ActiveWindow.ActivePane.Selection.Tables.Item(1).Rows.Count

    Et voilààààààààà...

    Merci qui ? Merci moi :-)

  4. #4
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par defluc
    Salut

    ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).Cell(1, 1)
    Ah, zut, battu sur la ligne :-)
    Merci en tout cas ! Je connaissais pas cette façon d'y accéder.

    Paul

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Je trouve que le fait d'activer l'élément auquel on veut accéder, c'est moins propre comme programmation que l'accès direct comme je te l'ai proposé.
    De plus, c'est plus lent à l'exécution.

  6. #6
    Membre du Club
    Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 73
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par defluc
    Je trouve que le fait d'activer l'élément auquel on veut accéder, c'est moins propre comme programmation que l'accès direct comme je te l'ai proposé.
    De plus, c'est plus lent à l'exécution.
    Ouaip, tu as absolument raison, c'est tout ce que j'avais trouvé comme solution... Et du coup j'ai corrigé mon code ! Merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/11/2010, 20h14
  2. Réponses: 2
    Dernier message: 22/10/2008, 15h36
  3. Résultat calculé dans un pied de page DataReport
    Par jimmy-sept dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/04/2007, 17h12
  4. [VBA-W] Mot en gras dans un pied-de-page
    Par Fée_Clochette dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/01/2007, 17h33
  5. Réponses: 6
    Dernier message: 28/11/2006, 09h55

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