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: mettre en forme texte avant écriture dans word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par défaut vba: mettre en forme texte avant écriture dans word


    Bonjour,
    novice en vba (depuis hier), voici ma question et son contexte.
    je veux générer un rapport Word à partir d’un tableau excel, et ne parviens pas à mettre en forme le texte qui sera dans le fichier word.

    Le tableau est du type
    A B C
    blabla 224 aaa38
    blibli 236 bbb37

    La sortie attendue est sous word :
    (page1)
    A
    Blabla
    B
    224
    C
    Aaa38
    (page2)
    A
    Blibli
    B
    236
    C
    Bbb37
    Mon souci est la mise en forme des ‘A’, ‘B’ et ‘C’. Comment faire pour que ceux-ci soient en gras + bleu + centré ?

    ci-dessous mon code actuel (qui nécessite d’ailleurs peut-être un peu d’optimisation).
    --
    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 TestEcrireTemplate()
     
     
    Dim MonWord As Object
        Set MonWord = CreateObject("Word.Application")
        ' Création d'un nouveau document :
        MonWord.Documents.Add
        ' Ecriture du texte dans ce nouveau document :
        Dim nLine As Integer
        Dim nColumn As Integer
        Dim strValueTitle As String
        Dim strValueSpecificProject As String
        Dim nMaxLine As Integer
        Dim nMaxColumn As Integer
     
        'A MODIFIER PAR UN COUNT
        nMaxLine = 3
        nMaxColumn = 4
     
        For nLine = 2 To nMaxLine
            For nColumn = 1 To nMaxColumn
            'read the value from the cell
            strValueTitle = Cells(1, nColumn)
     
            'Format the value
            'write the value to the document
            MonWord.Selection.TypeText Text:=strValueTitle
     
            ' ICI : MISE EN FORME QUI NE FONCTIONNE PAS
            'With Text
            '    .Font.Bold = True
            'End With
     
            'move to the next line
            MonWord.Selection.TypeParagraph
     
     
            'read the value from the cell
            strValueSpecificProject = Cells(nLine, nColumn)
            'write the value to the document
            MonWord.Selection.TypeText Text:=strValueSpecificProject
            'move to the next line
            MonWord.Selection.TypeParagraph
     
            Next nColumn
     
        'move to next page
        MonWord.Selection.InsertBreak
     
        Next nLine
     
        ' Sauvegarde de ce document ainsi créé :
        MonWord.ActiveDocument.SaveAs "~\test.doc"
        ' Fermeture de ce document :
        MonWord.ActiveDocument.Close
        Set MonWord = Nothing
     
    End Sub
    --

    Merci de votre aide !
    Pierre


  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Créer un style dans Word et l'appliquer (ou bien utiliser un style déjà défini) : on ne formate plus au marteau et au burin, on utilise les styles faits pour cela...

    Dans ton cas ce semble être un titre donc utilise le style Titre 1, éventuellement adapté au préalable au look voulu...

    Le VBA c'est bien mais connaître les possibilité et règles d'utilisation des logiciels est un préalable pour bien automatiser...

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par défaut
    Bonjour,

    merci d'avoir pris le temps de répondre, mais appliquer un style ne répond à mon besoin.
    Ce document excel est partagé entre plusieurs collègues.
    Je souhaite donc que chacun puisse générer un document word dès qu'il le souhaite à parti des informations de ce fichier excel.

    L’utilisation de vba dans mon cas va bien plus loin que cet aspect de format, et ma question partagée sur ce forum ne porte que sur un extrait d'un projet plus complet.

    Bien cordialement

    Pierre

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Re

    et qu'est-ce qui empêche le VBA de paramétrer le style du document ? Ton descriptif ne contredit en rien mes explications...

    Le style de paragraphe appartient au document pas au poste de travail...

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Et puis la propriété Text d'un objet selection ne correspond pas un objet. Donc, on applique pas de mise en forme au texte, mais à la sélection. Donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     ' ICI : MISE EN FORME QUI NE FONCTIONNE PAS
            'With Text
            '    .Font.Bold = True
            'End With

    ne marchera jamais


    Mais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With selection.font
     
    ---
     
    end with
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With selection.style
    ---
    end with
    Cela devrait mieux passer


    Selection.style

    Selection.font


    Font


    Style

    P.S. Quand l'IntelliSense reste endormie, ou qu'elle ne donne pas le mot-clef attendu; c'est généralement signe qu'il y a quelque chose qui cloche.

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2018
    Messages : 3
    Par défaut
    Bonjour,
    merci d'avoir pris le temps de me répondre.
    Je suis arrivé à bout de mon code, notamment grâce à la lecture de ce tuto
    http://tatiak.canalblog.com/archives.../35132611.html
    Pierre

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/02/2014, 11h15
  2. Réponses: 3
    Dernier message: 07/04/2011, 09h06
  3. Mettre une Form en avant-plan et la "bloquer"
    Par Nadiya dans le forum Windows Forms
    Réponses: 10
    Dernier message: 24/10/2008, 21h35
  4. Formater texte avant insertion dans une BDD
    Par cflo91 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/04/2008, 09h12
  5. [VBA-W] copier du texte d'excel dans word
    Par perophron dans le forum VBA Word
    Réponses: 25
    Dernier message: 06/06/2007, 12h09

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