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 :

savegarder dans un meme document word depuis une macro Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Points : 16
    Points
    16
    Par défaut savegarder dans un meme document word depuis une macro Excel
    Bonjour;
    j'ai beaucoup cherhcher dans les forum et dans des tutos. Au debut de realisation d une macro n j'ai pas fait attention à une tel remarque tel que 'créer un seul document word au lieu de plusieurs"!!
    Bon , Ma macro , parcour n importe quel fichier excel , ligne par ligne...et , chaque ligne doit etre enregistré dans un nouveau document word puis l enregistré sous " le contenu de Cell(2,1)".
    Si le fichier excel contient des centaines de lignes , le stockage des documents word va etre tres genant ; Alors, au lieu de créer pour chaqu une des ligne un nouveau document word , j voudrais créer un seul documents word contenant plusieurs page .
    Reamrque: On a une template "ClassJb.doc" qui est un modele et partir de laquelle nos documenty word vont etre crées, ce miodele est sous la forme d un tableau qui va etre rempli par des signets depuis le fichiers excel puis , enregistré sous " le contenu de Cell(2,1)".


    Voiçi ma macro :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Sub MacroAutoJB()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim oWdApp As Object
     
    Dim i As Byte
    Dim sChemin As String
    Dim wb As Workbook
     
      Dim OutApp As Object
      Dim OutMail As Object
      Dim strbody As String
     
    On Error Resume Next
    Dim nom As String
    Dim sName As String
    Dim sPath As String
     
    On Error Resume Next
    Dim j As Integer
    j = ActiveSheet.UsedRange.Rows.Count 'count number of lines used in the file
     
    Dim n As Byte
    n = Cells(1, Columns.Count).End(xlToLeft).Column
     
    If ActiveWorkbook.Name Like "WPaie*.xls" Then
     
    user = Environ("username")
    sName = ActiveWorkbook.Name
    sPath = "C:\Documents and Settings\" & user & "\My Documents\"
    sName = Replace(sName, ".xls", "_Word")
    MkDir sName
     
    For j = 2 To j     'start the loop the opeation until the next will be for each line used in the file
     
    Set WordApp = CreateObject("word.application") 
    nom = Sheets(1).Cells(j, 2)
    mail = Sheets(1).Cells(2, n)
     
    Set oWdApp = CreateObject("Word.Application")
    Set WordDoc = oWdApp.Documents.Open("C:\Documents and Settings\" & user & "\Class.doc")
     
    For i = 1 To n - 1
    WordDoc.Bookmarks("Sig" & i).Range.Text = Cells(j, i) 
    Next i
     
    WordDoc.Bookmarks("Signet").Range.Text = Cells(j, 2)
    WordDoc.Bookmarks("Sigmail").Range.Text = Cells(j, n)
     
    WordDoc.SaveAs Filename:=sPath & sName & "\" & nom & ".doc"
    WordApp.Visible = False 
    oWdApp.Quit
    ActiveDocument.Close True
    WordApp.Quit 
     
    Next j
    ActiveWorkbook.Close
    et la ce que j'ai voulu l intégré dans ma macro , mais , je reçoi des données depuis excel directement , ça ve dire , j aurais pas la mise en forme du modele (template " classJb.doc):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Set wordApp = CreateObject("Word.Application") 
        Set wordDoc = wordApp.Documents.Add 
        Set WS = ActiveSheet 
        WS.UsedRange.Copy 
        wordDoc.Paragraphs(wordDoc.Paragraphs.Count).Range.Paste 
        wordApp.Visible = True
    Cordialement

  2. #2
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut
    rooooo... ca ca décrit exactement ce que j'avais fait il y a quelques années en tant qu'intérimaire dans un 'Institut d'aménagement et d'urbanisme"... ca n'aurait pas un rapport par hasard ?

    mais bon, je pense que c'est une coincidence... et que ca ne fais pas avancer le schmilblick...

    bye
    Nico
    si ton travail est difficile et tes résultats sont minces
    n’oublie pas qu’un jour, le grand chêne a été un gland comme toi.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2015, 23h48
  2. [XL-2010] Recherche multiple d’occurrences dans des documents Word depuis un fichier Excel
    Par Meynur dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/04/2015, 16h16
  3. [XL-2007] Enregistrer un document Word en PDF depuis une macro EXCEL 2007
    Par davr971 dans le forum Excel
    Réponses: 3
    Dernier message: 13/06/2014, 16h36
  4. Ecrire dans un document Word avec une macro Word
    Par deruyter dans le forum VBA Word
    Réponses: 2
    Dernier message: 14/01/2010, 00h24
  5. Réponses: 1
    Dernier message: 15/07/2008, 10h37

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