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 :

Définir via VBA Excel la police d'un Signet dans un Docx


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 58
    Points : 40
    Points
    40
    Par défaut Définir via VBA Excel la police d'un Signet dans un Docx
    Bonjour à tous ou Bonsoir suivant l'heure,

    Je commande via un USF Excel la rédaction dans un document Word.
    Dans ce dernier, j'ai créé manuellement des onglets (ADD1, ADD2, Et c...)

    Je parviens bien à écrire, mais l'ordre relatif à la police n'est pas appliqué.

    Voici la partie du code vba concernée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With DOCUMENT_TYPE
    SON_NOM = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1)
    .Bookmarks("ADD" & 1).Range.Text = "Madame et Monsieur " & SON_NOM
    .Bookmarks("ADD" & 1).Range.Bold = True
    .Bookmarks("ADD" & 1).Range.Font.Size = 8
    .Bookmarks("ADD" & 2).Range.Text = "Ligne 1 d'adrese  de " & SON_NOM
    ' Et c....
    End With
    D'autant que dans le doc Word, je n'ai pas trouvé la possibilité de prédéfinir la police des onglets.
    Sauf de le faire sur toute la ligne, mais cela ne convient pas trop aux besoins.

    Merci par avance de bien vouloir m'aiguiller, car je ne comprends pas

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tu dois modifier les paramètres relatifs à la mise en forme du texte avant d'appliquer le texte.
    Si tu le fais après, seul le texte ajouté par la suite aura les bons paramètres.
    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 du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Merci Heureux-oli d’avoir regardé et pris la peine de me répondre,

    Je vais rectifier le tir, et je te tiens au courant, dans tous les cas.

    A noter que je n’ai pas été avisé de ta réponse par mail. Ceci expliquant mon retard.

    Je n'avais pas vu l'option dans Abonnement.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Désolé Heureux-oli

    J’ai rectifié ainsi, mais cela n’a aucun effet.

    (A noter que la petite taille et le gras seraient bien remarquables)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Bookmarks("ADD" & 1).Range.Bold = True
    .Bookmarks("ADD" & 1).Range.Font.Size = 8
    .Bookmarks("ADD" & 1).Range.Text = "Madame et Monsieur " & SON_NOM
    Ne t’aurais-je pas bien compris ?

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Il faut que ton signet ne soit pas un point d'insertion, mais il doit contenir quelque chose pour que ça fonctionne.
    Un espace suffit.
    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 du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Bonsoir Heureux-oli , ou Bonjour suivant l’heure, et à ceux qui passeront par là.

    A nouveau Merci pour ton aide, mais il doit y avoir une particularité qui coince, ou je alors suis sot.

    Comme le résultat n’est pas là, je joins un Dossier permettant de faire un test.
    http://www.cjoint.com/c/FFvmTunCp4J

    Ou voir en PJ

    Le Classeur, la Matrice (Document avec entête) et le Document type devront être dans un même répertoire.
    IMPORTANT : Surtout, ne pas enregistrer pas la modification de la Matrice lors des essais.

    1) Je ne parviens donc pas à commander la police de caractère dans les signets.
    (Je pourrais évidemment le faire manuellement, mais cela ne convient pas totalement aux besoins de l’utilisatrice (Ma fille)

    2) De la même façon, mes tentatives de venir coller le contenu du doc TEXTE_TYPE dans le signet « ADD6 » prévu à cet effet ont échoué.

    Cependant, il m’est impératif d’avancer très vite dans ce projet.
    Elle monte son cabinet de Family Office, et n’a pas encore les moyens d’embaucher une secrétaire.

    Merci par avance à qui saura me donner un coup de main via un exemple de procédure,
    car pour ce qui est de liens Web, j’en ai une caisse (Mais pour l’instant, des usines à gaz inexploitables et surtout à côté de la plaque)

    Heureux-oli je compte notamment sur toi, mon seul interlocuteur jusqu’à présent.

    Yves
    Fichiers attachés Fichiers attachés

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 959
    Points : 9 300
    Points
    9 300
    Par défaut
    hello,
    comme l'expliquait Heureux-oli :
    Il faut que ton signet ne soit pas un point d'insertion, mais il doit contenir quelque chose pour que ça fonctionne.
    Un espace suffit.
    Il faut que tu remplaces tous tes signets vides par des signets avec quelque chose dedans (par exemple le nom de tes signets) :
    - Tu écris le nom du signet là il doit être, tu le sélectionnes , et tu fais insertion signet. Voilà ce que cela doit donner :
    Nom : WordSignets1.png
Affichages : 862
Taille : 7,7 Ko

    Pour insérer le texte de l'autre document word, tu l'ouvres , tu sélectionnes tout,tu copies dans le presse-papier, tu le fermes. Tu le colleras à l'endroit du signet correspondant dans ton document principal.
    Voici le code qui correspond :
    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
    Private Sub CommandButton1_Click()
    Dim APPLICATION_WORD As Word.Application
    Dim DOCUMENT_TYPE As Word.Document
    Dim DOCUMENT_TEXT_TYPE As Word.Document
    Dim SIGNET As Variant
    Dim oData   As New DataObject 'object to use the clipboard
     
    Set APPLICATION_WORD = CreateObject("word.application") 'Ouverture d'une session Word
    Set DOCUMENT_TEXT_TYPE = APPLICATION_WORD.Documents.Open(ThisWorkbook.Path & "\\TEXTE_TYPE.docx") 'Ouvre le Word "TEXTE_TYPE"
    'on sélectionne tout
    DOCUMENT_TEXT_TYPE.Range.Select
    'on copie dans le presse-papier
    DOCUMENT_TEXT_TYPE.Range.Copy
    'on ferme le document
    DOCUMENT_TEXT_TYPE.Close
    Set DOCUMENT_TYPE = APPLICATION_WORD.Documents.Open(ThisWorkbook.Path & "\\MATRICE.docx") 'Ouvre le Word "MATRICE"
    APPLICATION_WORD.Visible = True
    With DOCUMENT_TYPE 'On transfère les éléments saisis dans les TextBoxes.
    .Bookmarks("ADD" & 1).Range.Text = Me.TextBox1.Value ' Civilité et Nom
    .Bookmarks("ADD" & 2).Range.Text = Me.TextBox2.Value ' Rue
    '  modifier la police
    .Bookmarks("ADD" & 3).Range.Bold = True
    .Bookmarks("ADD" & 3).Range.Font.Size = 8
    .Bookmarks("ADD" & 3).Range.Text = Me.TextBox3.Value ' Quartier/Zone
    .Bookmarks("ADD" & 4).Range.Text = Me.TextBox4.Value ' Lieu-dit
    .Bookmarks("ADD" & 5).Range.Text = Me.TextBox5.Value ' CP + Ville
    'on copie le contenu du presse-papier dans le signet ADD6
    .Bookmarks("ADD" & 6).Range.Paste
    'il faut sauvegarder le fichier maintenant
    'ici
     
    End With
    'on vide le presse-papier
    oData.SetText Text:=Empty 'Clear
    oData.PutInClipboard 'take in the clipboard to empty it
    End Sub
    Ne pas oublier de sauvegarder le fichier (j'ai enlevé le Application.quit)

    Voici ce que cela donne :
    Nom : WordSignets2.png
Affichages : 909
Taille : 21,7 Ko

    En pièce jointe l'ensemble des fichiers si tu n'y arrives pas.

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Bonjour, ou Bonsoir suivant l’heure ou le fuseau horaire (Cf. heure de la réponse de jurassic pork )

    Comment te dire Merci, tant tu m’enlèves une grosse grosse épine du pied ?
    Cela correspond parfaitement à ma recherche, et de plus avec une explication des plus claires.
    11 pages, 244 lignes en un clin d’œil ! C’est dire le gain de temps énorme.

    Ayant été très actif sur un autre Forum axé sur le Vba Excel par plus de 2000 aides, j’ai souvent poussé les demandeurs à travailler de leur côté en ne donnant pas une solution toute cuite.
    Je suis certain que c’est aussi ta philosophie, mais tu as compris mon désarroi issu de l’urgence et de mon incompétence dans ce domaine spécifique.

    Pardon d’être bavard, mais je dois aussi ajouter qu’enseignant par ailleurs en Master 2, je vais pouvoir lui ajouter dans mon application,
    la préparation de ses cours par incorporation de textes de loi (En italique, of course), ou de notes diverses récurrentes.

    Ceci dit pour démontrer combien ton aide aura été précieuse.

    Je te remercie vivement, en rêvant de pouvoir, un jour, te renvoyer l’ascenseur.

    Yves

    P.S. J’ai déjà trouvé comment ajouter un entête de page par insertion d’un jpeg du répertoire, mais je ne l’ai pas fait pour la Matrice en raison de son résultat "filigrane" dont le fade est inacceptable.
    Cela pourra cependant être satisfaisant pour les bas de page.
    Pour les pages 2 et suivantes, les entêtes seront un autre jpeg simplifié, mais les bas de page seront toujours les mêmes.
    Au diable la honte, je ferai encore appel à votre gentillesse si j'échoue

Discussions similaires

  1. Propriété "From" à l'envoi d'email via VBA Excel
    Par chemineelining dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 24/02/2017, 15h51
  2. [E-07] Renseigner un calendrier Outlook via VBA Excel 2007
    Par rpointt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/11/2008, 22h28
  3. connexion a un site internet sur IE via VBA excel
    Par deubelte dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/07/2008, 12h16
  4. programmer une tâche via VBA/Excel
    Par simstef dans le forum Excel
    Réponses: 5
    Dernier message: 07/08/2007, 15h53
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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