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 :

Mise en page d'un document word depuis excel VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Mise en page d'un document word depuis excel VBA
    Bonjour à tous,

    Je cherche à générer depuis un fichier excel et divers userform un document word. J'utilise pour cela VBA sans souci.
    Seul problème la mise en page du document qui est particulière (voir en annexe). Il se décompose d'un premier tableau (une ligne 2 colonnes) avec la première case encadrée dans lequel on intègre les données clients (depuis fichier excel) sur la droite la date et le numero d'offre de prix sont présent (générés depuis excel sans souci). Puis par la suite en dessous un texte classique.
    Mon problème quand j'ouvre le document "type" vide, je n'arrive pas a acceder à ce tableau pour taper mon texte.
    Autrement dit tous les textes se mettent les uns derrière les autres dans la première case du tableau comment positionner l'écriture du texte?

    Voici une partie de mon code:
    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
    With WordObj.Selection
            .Alignment = wdAlignParagraphRight
            .Font.Size = 11
            .Font.Italic = False
            .TypeText Text:="A l'attention de : "
            .TypeParagraph
            .TypeText Text:=CStr(Range("F5").Value)
            .TypeParagraph
            .TypeText Text:=CStr(Range("F6").Value)
            .TypeParagraph
            .TypeText Text:=CStr(Range("F7").Value)
            .TypeParagraph
            .TypeText Text:=CStr(Range("F8").Value)
            .TypeParagraph
            .TypeText Text:=CStr(Range("F9").Value)
            .TypeParagraph
            .TypeText Text:=CStr(Range("F10").Value)
            .TypeParagraph
          End With
    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
    With WordObj.Selection
            .Font.Size = 11
            .Font.Italic = False
            .TypeText Text:=CStr(Range("F11").Value)
            .TypeParagraph
            .TypeText Text:="Annecy, le " + Format(Date, "dd/mm/yyyy")
            .TypeParagraph
            .Font.Bold = True
            .Font.Underline = True
            .Font.Size = 15
            .TypeText Text:="OFFRE DE PRIX " + Format(Date, "YYYYMMDD") + "-01"
            .Font.Size = 11
            .TypeParagraph
            .Font.Bold = False
            .Font.Underline = False
            .TypeText Text:="description"  'a créer
            .TypeParagraph
            .InlineShapes.AddPicture Filename:= _
                "C:\Users\jessica.meudec\Pictures\logo.png", LinkToFile:=False, _
                SaveWithDocument:=True ' ajout d'une image a adapter plus tard
         End With
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With WordObj.Selection
         .Font.Size = 11
         .Font.Italic = False
         .TypeParagraph
         .TypeText Text:="Madame, Monsieur," 
         .TypeParagraph
         End With

    Quels sont les propriétés pour accéder à ce tableau, j'ai essayé des WordObj.Tables(1) mais rien?
    De plus, comment fait-on pour aligner une partie de texte à droite?
    Y a-t-il une propriété pour écrire une partie de texte sur 2 colonnes?

    Merci d'avance de votre aide et je m'excuse si ce sujet a déjà été traité mais je n'ai rien trouvé.
    Fichiers attachés Fichiers attachés

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    Hum... Et bien, pourquoi ne pas faire la même mise en page mais sous Excel?

    Personnellement c'est ce que j'ai fait. Le code est (très) lourd, je n'ai toujours pas trouvé comment l'alléger mais j'ai réussi à faire ma mise en page sans 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub Imprimer()
     
    'Macro pour imprimer les infos du Userform dans la mise en page Excel
     
    'Copier la feuille type (elle sera nommer ici "F(2)")
    ActiveWorkbook.Sheets("F").Copy Before:=ActiveWorkbook.Sheets("Feuil1")
     
     
    'Envoyer les infos sur la copie de la feuille F
    With Worksheets("F(2)")
        .Range("E6").Value = "UNITE: " & Label_Unite.Caption
        .Range("E8").Value = "NOM PRENOM: " & TextBox_Nom.Value
        .Range("T8").Value = "SEMAINE: S " & Cbo_Semaine.Value
     
    'etc...
     
    End With
     
    'Impression centrée sur la page A4
    With Worksheets("F(2)")
        .PageSetup.PrintArea = "$A$1:$U$81"
        .PageSetup.CenterHorizontally = True
        .PageSetup.CenterVertically = True
        .PageSetup.Zoom = False
        .PageSetup.FitToPagesWide = 1
        .PageSetup.FitToPagesTall = 1
        .PrintOut
    End With
     
    'Suppression de la page crée
    ActiveWindow.SelectedSheets.Delete
     
    End Sub
    Voilà, j'espère t'avoir aidé!

Discussions similaires

  1. [XL-2003] Ouvrir document word depuis excel avec boite de dialogue
    Par gtkill dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/08/2011, 17h50
  2. [XL-2003] Effacer des signets dans un document word depuis excel
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/03/2010, 21h20
  3. Inserer des numeros pages dans un doc Word depuis Excel en VBA
    Par bguichardaz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/01/2010, 17h45
  4. Imprimer un document word depuis Excel
    Par vash641 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/05/2009, 09h53
  5. Mise en page d'un document Word sous VBA/Word
    Par cupidette92 dans le forum VBA Word
    Réponses: 15
    Dernier message: 20/02/2008, 18h48

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