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 :

copie de donnée d'un tableau word à un autre tableau d'un fichier word différent. [WD-2010]


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut copie de donnée d'un tableau word à un autre tableau d'un fichier word différent.
    Bonjour à tous,

    J'aurais besoin de votre aide. En général en surfant de sujet en sujet je trouve ce que je désire mais la c'est la panne seche ...

    Je recherche à copier les données de divers tableaux de word dans les tableaux d'un second document word.

    Par exemple:
    Copier la valeur de la colonne 1 ligne 3 du premier fichier dans le 2eme tableau du 2ème document Colonne 2 ligne 2

    PS: aucun des tableaux n'étant identique que ce soit en ligne ou en colonne

    Je recherche aussi comment connaitre l'index de mes tableaux.

    Auriez-vous des idées sur le sujet?

    Le début de mon code n'est que l'ouverture des deux fichiers et la le blanc...

    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
    Sub A_TO_B()
    'Récupération du chemin complet avec nom du fichier de A
    Dim FicA
    FicA = ActiveDocument.FullName
    'Récupération du chemin complet avec nom du fichier de B
    Dim FicB
    Dim finput As FileDialog
    Dim CheminB As String
    Set finput = Application.FileDialog(msoFileDialogOpen)
    finput.Show
        CheminB = finput.SelectedItems(1)
    FicB = CheminB
    ' ouverture du B
    Documents.Open FicB
     
    'vide interstellaire
     
    End Sub
    Cordialement,
    Jean-Baptiste

  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,

    L'index des tableaux est obtenu par extension de la sélection jusqu'au début du document et en comptant le nombre de tableau que la sélection contient.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    selection.HomeKey unit:=wdstory, extend:=true
    Pour les données, c'est comme au combat naval.
    LaTable.Cellule(Ligne,colonne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(1).Cell(1,1).Range.Text
    Mais, il y a souvent un mais, le texte obtenu contient deux caractères supplémentaires qui sont les délimiteurs de la cellule, il faut les enlever.
    Là : http://heureuxoli.developpez.com/off...t-tiroir/#L2-B, il y a une fonction NetText qui permet de supprimer ces caractères.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Tout d'abord merci de ta réponse j'ai pu récupérer la fonction interressante pour nettoyer le texte .
    Par contre la fonction que j'essaye d'utiliser et que tu m'a redonné ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(2).Cell(3, 1).Range.Text
    j'ai message d'erreur utilisation incorrecte de la propriété.

    je la remplace par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(2).Cell(3, 1).Range.Delete
    et hop ca marche ma cellule est nettoyé.
    d'autres fonction aussi marche copy, paste, etc....

    De plus je n'arrive pas a switché de documents le document FicB reste toujours actif malgé le fait que je demande a FicA de passer actif puis switcher sur FicB à la suite des manipulations

    Merci d'avance de votre aide à tous.

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

    Tes questions ne sont pas très précises, ce qui rend les réponses assez évasives.

    Pour passer d'un tableau à l'autre facilement, il faut les affecter à des variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oTbl1 As Table
    Dim oTbl2 As Table
     
    Set oTbl1 = ActiveDocument.Tables(X)
     
    Application.Documents.Open .....
    Set oTbl2 = ActiveDocument.Tables(Y)
    Ensuite, on passe par ces objets
    oTbl1.Cell(1,1).Range.Texte = NetText(oTbl2.Cell(2,2).Range.Texte)
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous,

    J'ai résolu mon problème avec la command select.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(2).Cell(3, 2).Range.Select
    je me bornais a essayer de récupérer le texte au lieux de récupérer la cellule en elle même pour la coller ailleur.

    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
    Sub A_TO_B()
    'Récupération du chemin complet avec nom du fichier de A
    Dim FicA
    FicA = ActiveDocument.FullName
    'Récupération du chemin complet avec nom du fichier de B
    Dim FicB
    Dim finput As FileDialog
    Dim CheminB As String
    Set finput = Application.FileDialog(msoFileDialogOpen)
    finput.Show
        CheminB = finput.SelectedItems(1)
    FicB = CheminB
    ' ouverture du B
    Documents.Open FicB
    Documents(FicA).Activate
    ActiveDocument.Tables(2).Cell(3, 2).Range.Select
    Selection.Copy
    Documents(FicB).Activate
    ActiveDocument.Tables(6).Cell(3, 2).Range.Select
    Selection.PasteAndFormat (wdFormatPlainText) 
     
    End Sub
    Merci a tous pour votre aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/05/2015, 18h44
  2. [XL-2007] VBA - Copie de données entre deux feuilles et restructuration
    Par Allure dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/09/2013, 00h53
  3. [VBA] copie de données
    Par Ted37 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/01/2009, 21h29
  4. Vba copie de données dans un autre tableau
    Par wade-doak dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/07/2008, 07h53
  5. copie des données d'un champ vers un autre
    Par cvlpj dans le forum IHM
    Réponses: 10
    Dernier message: 26/12/2006, 22h15

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