Résolu Création d'un document Word à partir d'Excel VBA

Merci @zeltron54 !
Je ne comprends pas pourquoi j'ai une erreur lorsque je veux mettre en gras une partie de mon texte.. T1 se mets bien en gras mais ensuite VBA me rend une erreur et la suite du texte ne s'écrit pas.. Pourtant la compilation se fait correctement dans l'éditeur de scripts...
 
Bonsoir,
je pense que tu ne te repositionne pas à al fin du texte et que tu ne désactives pas le mode gras..
Je te mets un exemple qui :
-Ecrit "bonjour " puis va à la ligne
-Active le mode gras (qui met donc bonjour en gras)
-Se repositionne
-Désactive le mode gras
- puis écrit la ligne suivante en mode normal, "Première ligne", va à la ligne
-Se repositionne
-écrit une 2ieme ligne, va à la ligne
-active la font Times, ce qui met cette 2ieme ligne en font Times.

Analyse bien ce code ....

Bloc de code:
tell application "Microsoft Word"
    
    create new document
    
    set myRange to create range active document start 0 end 0
    
    set content of myRange to "Bonjour," & return
    
    set myRange to change end of range myRange by a story item extend type by selecting --se positionne à la fin du dernier texte écrit
    set bold of font object of myRange to true
    set myRange to change end of range myRange by a story item
    
    set myRange to change end of range myRange by a story item extend type by selecting
    set bold of font object of myRange to false
    
    set content of myRange to "Première ligne de texte." & return
    set myRange to change end of range myRange by a story item
    
    set content of myRange to "je suis la 2ieme ligne" & return
    
    set myRange to change end of range myRange by a story item extend type by selecting --va formater le dernier texte ecrit avec font times et italic
    set name of font object of myRange to "Times"
    
end tell
 
  • J’aime
Réactions: BasileD
Bonsoir,
je pense que tu ne te repositionne pas à al fin du texte et que tu ne désactives pas le mode gras..
Je te mets un exemple qui :
-Ecrit "bonjour " puis va à la ligne
-Active le mode gras (qui met donc bonjour en gras)
-Se repositionne
-Désactive le mode gras
- puis écrit la ligne suivante en mode normal, "Première ligne", va à la ligne
-Se repositionne
-écrit une 2ieme ligne, va à la ligne
-active la font Times, ce qui met cette 2ieme ligne en font Times.

Analyse bien ce code ....

Bloc de code:
tell application "Microsoft Word"
   
    create new document
   
    set myRange to create range active document start 0 end 0
   
    set content of myRange to "Bonjour," & return
   
    set myRange to change end of range myRange by a story item extend type by selecting --se positionne à la fin du dernier texte écrit
    set bold of font object of myRange to true
    set myRange to change end of range myRange by a story item
   
    set myRange to change end of range myRange by a story item extend type by selecting
    set bold of font object of myRange to false
   
    set content of myRange to "Première ligne de texte." & return
    set myRange to change end of range myRange by a story item
   
    set content of myRange to "je suis la 2ieme ligne" & return
   
    set myRange to change end of range myRange by a story item extend type by selecting --va formater le dernier texte ecrit avec font times et italic
    set name of font object of myRange to "Times"
   
end tell

En effet, le problème venait de là ! C'est super tout marche comme je le voulais je suis très content !

Je vous remercie infiniment pour toute l'aide que vous m'avez apporté ! bonne continuation !
 
Content pour toi