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 :

Insérer des textes à des positions variables


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Insérer des textes à des positions variables
    Bonjour à toutes et à tous,

    Je fais appel a votre aide car je bloque sur l'insertion dans un document word de données qui proviennent d'excel.

    J'utilise un formulaire excel pour obtenir des données et créer avec elles un document basé sur un modèle contenant des signets.

    Pour une partie des données je peux les placer sans difficulté à la position des signets définis dans le modèle. Par contre, il y a une série de données qui ne peut être positionné avec des signets existants.

    Je m'explique :
    - l'utilisateur dispose d'un champ nombre de formations s'il indique 3 alors il faudra insérer 3 séries de 5 données dans un tableau ce serait l'idéal (un autre utilisateur pourrait donner 2 ou 1 par exemple et dans ce cas le nombre à insérer est différent)
    - l'utilisateur dispose d'un champ nombre d'expérience qui fonctionne sur le même principe.

    Je ne parviens pas à insérer ces données car je ne peux les affecter à des signets existant puisque leur nombre et variable.

    Ce à quoi j'ai pensé :
    - insérer la première série de données depuis la position (page, ligne, colonne avec WdActiveEndPageNumber, wdFirstCharacterLineNumber et WdFirstCharacterColumnNumber)
    puis
    insérer un paragraphe vide
    se positionner juste en dessous (il faudrait pour cela indiquer que l'on veut se placer à la position du dernier paragraphe (peut être avec ObjDoc.Paragraphs(x).Range.Words(objDoc.Paragraphs(x).Range.Words.Count).select mon problème serait alors d'identifier la valeur x

    Voici le code dans la macro excel qui manipule word :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Open(ActiveWorkbook.Path & "\Fichetype.dot")
     
    wrdApp.ShowMe
    wrdApp.Visible = False
    wrdApp.Application.ScreenUpdating = False
    wrdApp.Application.DisplayAlerts = False
     
    With wrdDoc
    wrdDoc.Bookmarks("Nom").Range.Text = Me.TB_nom.Value
    wrdDoc.Bookmarks("Prénom").Range.Text = Me.TB_prenom.Value
    wrdDoc.Bookmarks("Adresse").Range.Text = Me.TB_adresse.Value
    wrdDoc.Bookmarks("Code_postal").Range.Text = Me.CB_code_postal.Value
    wrdDoc.Bookmarks("Ville").Range.Text = Me.Cb_ville.Value
    wrdDoc.Bookmarks("telephone").Range.Text = Me.TB_fixe.Value
    wrdDoc.Bookmarks("mobile").Range.Text = Me.TB_mobile
    wrdDoc.Bookmarks("mail").Range.Text = Me.TB_mail.Value
    wrdDoc.Bookmarks("motivation").Range.Text = TB_motivation_projet.Value
     
    'Ensuite je bloque car je ne peux utiliser des signets
    'car le nombre de données peut varier d'un utilisateur à l'autre"
     
    End With
    With wrdApp
    wrdDoc.SaveAs (ActiveWorkbook.Path & "\Fiche de " & Me.TB_nom & ".doc")
    wrdDoc.Close
    wrdApp.Quit
    End With
     
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    Je place le fichier excel et le modèle de document en zip
    Fichiers attachés Fichiers attachés

  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,

    tu peux toujours insérer un tableau sur un signet.
    Ill te suffit d'adresser les cellules du tableau en fonction du choix des utilisateurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim myTbl As Table
     
    Set mytbl = ActiveDocument.Tables.Add(Range:=ActiveDocument.Bookmarks("M").Range, NumRows:=2, numcolumns:=2)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Merci pour cette réponse, je suis vraiment embarrassé avec ce problème et je désespérais d'avoir des réponses.

    Je testerai la piste en début de semaine.
    Bon week-end
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    tu peux toujours insérer un tableau sur un signet.
    Ill te suffit d'adresser les cellules du tableau en fonction du choix des utilisateurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim myTbl As Table
     
    Set mytbl = ActiveDocument.Tables.Add(Range:=ActiveDocument.Bookmarks("M").Range, NumRows:=2, numcolumns:=2)

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Merci pour l'astuce
    Bonjour Olivier,

    Merci pour cette réponse.

    J'ai une erreur à l'exécution sur la déclaration de variable
    Dim myTbl As Table

    Erreur compilation : type défini par l'utilisateur non défini

    Bonne journée,

  5. #5
    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,

    C'est Word.Table

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Toujours la même erreur
    Même avec Word.Table j'ai toujours cet erreur type non défini

    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    C'est Word.Table

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/05/2011, 18h57
  2. Réponses: 19
    Dernier message: 20/12/2006, 10h15
  3. [MySQL] Utilisation des fonctions des récupérations des données
    Par Konrad Florczak dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/10/2006, 15h17
  4. Gestion des majuscules des miniscules des accent
    Par issam16 dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 14h21
  5. couleur des textes des boutons
    Par mqsi dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 14/10/2005, 14h59

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