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

VB 6 et antérieur Discussion :

Faire passer des infos de Word a excel


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Faire passer des infos de Word a excel
    Bonjour, je suis débutant dans les macros, et je suis en stage dans une entreprise qui me demande de faire la chose suivante :

    Dans un fichier word, il y a un tableau (pas un XCel, un "normal) que l'on retrouve sur plusieurs page à l'identique.

    Le principe est simple, en démarrant un certain fichier excel, il me faut arriver à ouvrir le fichier, me rendre à la bonne page (au bon tableau donc) et copier les informations de chaque cellule dans des cellules du fichier Xcel.

    voici ce que donne mon esquisse de début de programme :


    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
    33
    34
    35
    36
    37
    38
    39
    40
    Sub Essai()
     
     
      ' On commence par demander le nom de la page à ajouter au tableau Excel
      ' (exemple : 1, ii, 21 ...)
      Page_adresse = InputBox("Indiquez le nom de la page à ajouter")
     
      ' On se place maintenant dans le document STD.doc et on affiche la page demandée.
     
      Documents.Open Filename:="D:\Documents and Settings\gd58611\Desktop\Macro\nouveau.doc"
      Documents("nouveau.doc").Activate
      Call page(Page_adresse)
     
      ' On copie maintenant la première info
      ActiveDocument.Tables(1).Cell(1, 1).Select
      Selection.Copy
     
     
     
      ' On retourne dans le classeur et on colle à l'aide d'une macro
      Call copie(ligne, colonne)
     
    End Sub
     
     
    Sub page(num)
     
      ' Macro permettant de se rendre sur la bonne page.
      ' Une variable en entrée : num (numéro de la page)
     
      Documents("nouveau.doc").Goto What:=wdGoToPage, Which:=wdGoToFirst, Name:=12
     
    End Sub
     
    Sub copie(ligne, colonne)
     
      Range("B2").Select
      Selection.Paste
     
    End Sub
    Et voici mes questions :

    *Pourquoi est ce que je n'arrive pas à me rendre sur la page voulue ? Comment dire à la macro de prendre le tableau de cette page et pas celui de la première (ce qu'il fait actuellement) page (qui est un tableau qui ne me sert à rien !)

    *Comment lui faire coller LE CONTENU de la cellule et non pas la cellule ?

    *Comment appliquer le coller alors que je sélectionne une cellule juste avant (comment sélectionner la destination, sans que le Selection.paste s'apllique ??)

    J'espère que j'ai étais clair, je n'en suis pas sur, excusez moi, je débute. Merci d'avance de vos répones !

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    Pourquoi est ce que je n'arrive pas à me rendre sur la page voulue ? Comment dire à la macro de prendre le tableau de cette page et pas celui de la première (ce qu'il fait actuellement) page (qui est un tableau qui ne me sert à rien !)
    c'est normal puisque tu as écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(1).Cell(1, 1).Select
    Tables(1) correspond au 1er tableau dans le document.
    Tu n'as pas besoin d'atteindre une page particuliere. Lorsque le document Word est ouvert, il suffit d'indiquer l'index de ton tableau dans la macro : Tables(x)


    par contre je n'ai pas compris si ta macro est dans Word ou Excel: peux tu le préciser ?
    en attendant , voici un principe de boucle pour extraire le contenu d'un tableau Word


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim i As Integer, j As Integer
    Dim x As Integer, y As Integer
     
    i = ActiveDocument.Tables(2).Rows.Count
    j = ActiveDocument.Tables(2).Columns.Count
     
    For x = 1 To i
        For y = 1 To j
        Debug.Print ActiveDocument.Tables(2).Cell(x, y).Range.Text
        Next y
    Next x

    Une autre solution pourrait consiter à copier le tableau Word et ensuite faire un collage spécial dans Excel pour ne récupérer que les contenu



    j'espere que ce lien pourra aussi t'aider

    http://vb.developpez.com/faq/?page=word



    bonne journée
    michel

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je te remerci de ta réponse !

Discussions similaires

  1. [Debutant] comment faire passer des donnée ???
    Par cyrill.gremaud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/01/2006, 22h28
  2. Passer des infos d'une zone de liste à une autre
    Par Rinecka dans le forum Access
    Réponses: 1
    Dernier message: 09/01/2006, 11h59
  3. Réponses: 5
    Dernier message: 08/03/2004, 10h28
  4. Réponses: 2
    Dernier message: 19/01/2004, 12h19
  5. [CR7][VB6] Passer des infos de Vb vers CR
    Par tripper.dim dans le forum SDK
    Réponses: 2
    Dernier message: 13/11/2003, 13h30

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