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

Macros et VBA Excel Discussion :

VBA, excel: donner un titre à un fichier word


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 32
    Points : 17
    Points
    17
    Par défaut VBA, excel: donner un titre à un fichier word
    Bonjour,
    j'ai un fichier excel avec dans ma 1er colonne des titres.
    je voudrais creer pour chaque cellule de cette colonne un fichier word ayant pour nom de fichier "le titre de la cellule".
    est possible d'avoir de l'aide pour creer une macro capable de founir ce travail ? merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 32
    Points : 17
    Points
    17
    Par défaut suite
    en fait concretement, d'un coté j'ai un fichier excel avec des données classées par commune, de l'autre j'ai un fichier word modele.doc.
    je veux creer pour chaque commune un fichier word avec comme nom de fichier le nom de la commune. ( ex: modele_marseille.doc)

    dans un deuxieme temps je veux remplir les fichiers .doc avec les données correspondant à la commune.( pour cela je pense utiliser une macro qui utilise une boucle avec des signets caractéristiques dans word)

    mais mon réel probleme est de creer un fichier word.

    merci de votre aide

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    le principe est d'ouvrir ton fichier modèle, de remplir les données correspondant à la commune, et puis de le sauver par Saveas sous le nom de commune que tu souhaites.

    Voici le principe pour 1 record unique

    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
     
        'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
        Dim WordApp As Word.Application
        Dim WordDoc As Word.Document
        Dim FileName as string
     
     
        'ouvre session word
        Set WordApp = New Word.Application
        'ouvre du document Word
        Set WordDoc = WordApp.Documents.Open("Chemin_et_nom_du_modèle_y_compris_point.DOT")
        'word est masqué pendant l'opération
        WordApp.Visible = False
     
     
          ' insert Commune 
          'je suppose que ta commune est en A2"
     
            Range_id = "a2"
            Range(Range_id).Select
            Filename = ActiveCell.FormulaR1C1
            InsertTextAtBookMark "Commune",  Filename
     
        'Ferme le document word en sauvegardant les modifications
        WordDoc.SaveAs Filename:=Filename 'attention au pacth à ajouter
        WordDoc.Close
        'ferme la session Word
        WordApp.Quit
    End Sub
    Sub InsertTextAtBookMark(strBkmk As String, varText As Variant)
    Dim m_objWord               As Word.Application
    Dim m_objDoc                As Word.document
     
     
        m_objDoc.Bookmarks(strBkmk).Select
        m_objWord.Selection.Text = varText & ""
     
    End Sub

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    Dans un premier temps voila un récapitulatif des solutions proposées remises en forme permettant de créer les documents.

    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
      'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
      Dim WordApp As Word.Application
      Dim WordDoc As Word.Document
      Dim Cell As Range
      Dim Chemin As String
     
      Chemin = "C:\Tes docs\ton rep\"
     
      'ouvre session word
      Set WordApp = New Word.Application
     
      'Pour passer toutes les cellule renseignées de ta colonne A
      For Each Cell In Range("A1:A" & Range("A65536").End(xlUp).Row)
     
        'ouvre du document Word
        Set WordDoc = WordApp.Documents.Open("Chemin_et_nom_du_modèle_y_compris_point.DOT")
        'word est masqué pendant l'opération
        WordApp.Visible = False
     
        'Ferme le document word en sauvegardant les modifications
        WordDoc.SaveAs FileName:=Chemin & Cell.Value & ".doc"
        WordDoc.Close
      Next
     
      'ferme la session Word
      WordApp.Quit
    J'ai vérifié le code fonctionne en renseignant correctement les chemins

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 32
    Points : 17
    Points
    17
    Par défaut merci à tous mais...
    Merci à tous de votre aide...

    mais j'ai encore un petit souci:
    pour la 1er instruction "Chemin = "C:\Tes docs\ton rep\"" que j'ai personnalisé, j'ai une erreur de compilation : "instruction incorrecte à l'exterieur d'une procedure"...

    pouvez vous m'en dire un peu plus?
    merci d'avance

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    il faut que le code soit dans une procedure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub maProcedure()
      '
      'Ici tous le code
      '
    End Sub

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 32
    Points : 17
    Points
    17
    Par défaut parfait
    Parfait...c'est exactement ce que je voulais faire!!!!!!!
    un grd merci...
    probleme resolu

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/03/2017, 10h39
  2. [VBA Excel] Recupérer le répertoire du fichier .xls courrant
    Par greg2 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/02/2015, 17h58
  3. VBA Excel, modifier une lettre type dans word
    Par morgan47 dans le forum VBA Word
    Réponses: 2
    Dernier message: 26/06/2006, 21h02
  4. [VBA] Problème enregistrement mise en forme fichier word
    Par guenfood dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/06/2006, 14h10
  5. vba excel - Donner un titre a un graphique en vba
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/11/2005, 09h13

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