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 :

Créer un fichier excel depuis VBA Word


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 44
    Par défaut Créer un fichier excel depuis VBA Word
    Salut à tous,

    J'aimerais me faire une macro de copie de données depuis Word vers Excel, rien de méchant.

    J'ai un problème sur la création du fichier Excel au début de ma macro et je ne vois pas pourquoi, j'ai besoin d'un coup de patte

    c'est très basique, j'ai récupéré le code qui est censé marcher, j'ai vérifié sur plusieurs sites.

    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
    Sub creer_tableau()
        Dim excl As New Excel.Application  'il plante ici "type défini par l'utilisateur non défini"
        Dim livre As New Excel.Workbook
        Dim feuille As New Excel.Worksheet
        Dim nom_fichier As String
        nom_fichier = "c:\test.xls"
     
        excl.Visible = True
     
        'tout le code pour 
        'construire mon tableau
        'va ici
     
        livre.SaveAs nom_fichier
        Set livre = Nothing
        livre.Close
        excl.Quit
        Set excl = Nothing
    End Sub
    Est-ce que je dois importer quelque chose pour utiliser cet appel ? Je ne vois pas pourquoi ça ne marche pas.

    Merci à celui qui pourra me débloquer

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Il manque une référence dans ton projet.

    Outils => Références => Microsoft Excel XX.X
    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
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 44
    Par défaut
    Merci, ça marche tout de suite mieux

  4. #4
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 44
    Par défaut
    J'ai une autre petite question.

    Mon fichier excel se créé, mais ça plante lorsque j'utilise le code pour ecrire mon tableau. Le code en question, je l'ai récupéré de l'enregistreur de macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub construire_tableau()
        ActiveCell.FormulaR1C1 = "Titre"
        Range("A3").Select     'plantage ici, type d'argument incorrect"
        ActiveCell.Value = "Numéro"
        Range("B3").Select
        ...
    et j'appelle cette fonction avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub creer_tableau(nom_fichier As String)
        Dim excl As New Excel.Application
        Dim classeur As New Excel.Workbook
        Dim feuille As New Excel.Worksheet
     
        Set classeur = excl.WorkBooks.Add
        excl.Visible = True
        construire_tableau
        classeur.SaveAs nom_fichier
        Set classeur = Nothing
        classeur.Close
        excl.Quit
        Set excl = Nothing
    End Sub

    Pareil, je ne vois pas pourquoi, quelqu'un a une idée s'il vous plait ?

    Merci !

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Si tu ne passe pas d'argument, le code ne sait pas où aller écrire les données.

    Dans ta procédure, tu déclares les variables en local, elles sont disponibles dans ta procédure.
    Utiliser une autre procédure ne permet pas d'utiliser ces variables ou objet.

    http://heureuxoli.developpez.com/office/word/vba-all/
    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 !

  6. #6
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 44
    Par défaut
    Salut,

    Merci pour la réponse, en fait j'ai toujours un problème...

    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
    Sub creer_tableau(nom_fichier As String)
        Dim excl As New excel.Application
        Dim classeur As New excel.Workbook
        Dim feuille As New excel.Worksheet
     
        Set classeur = excl.WorkBooks.Add
        excl.Visible = True
        construire_tableau feuille, excl, classeur
        classeur.SaveAs nom_fichier
        Set classeur = Nothing
        classeur.Close
        excl.Quit
        Set excl = Nothing
    End Sub
     
    Sub construire_tableau(feuille As excel.Worksheet, excl As excel.Application, classeur As excel.Workbook)
        ActiveCell.FormulaR1C1 = "Titre"
        Range("A3").Select
        ActiveCell.Value = "Numéro"
        Range("B3").Select
        ActiveCell.Value = "Terme Fr"
        Range("C3").Select
        ActiveCell.Value = "Cat. Gram."
    ...
    Mais maintenant il me dit "La classe ne gère pas Automation ou l'interface attendue" sur mon appel de "construire_tableau". L'aide de VBA ne m'aide pas.

    Ce qui m'étonne c'est qu'avant que je passe mes paramètres comme maintenant, il m'écrivait quand même mon "Titre" dans mon fichier excel et plantait sur l'instruction Range qui suit. C'est donc bien que les objets actifs sont déclarés d'office en public ? J'ai beaucoup de mal avec le VBA...

    Si quelqu'un peut encore m'aider juste pour qu'il rentre une bonne fois pour toute dans ma sub de creation de tableau et qu'il veuille bien m'exécuter son propre code sans se plaindre, ce serait royal.

    Merci encore.

Discussions similaires

  1. Rechercher une valeur dans fichier Excel depuis VBA Access
    Par tribaleur dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/07/2008, 14h10
  2. Création nouveau fichier excel depuis vba
    Par bossLINDROS dans le forum VBA Access
    Réponses: 7
    Dernier message: 11/04/2008, 15h31
  3. Tracé graphique sur fichier excel depuis vba access
    Par kdestine dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/09/2007, 12h37
  4. Créer un fichier Excel en VBA
    Par ShAk44 dans le forum Excel
    Réponses: 2
    Dernier message: 27/07/2007, 16h51
  5. créer un fichier excell avec VBA(access)
    Par JCH dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2006, 19h07

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