VBA Enregistrer en PDF et quitter totalement WORD

bastou93

Membre confirmé
3 Janvier 2012
10
0
Bonjour a tous,

Je converti une macro Windows sous un mac version 2011 :D
Bon après avoir presque du tout modifier :eek: me voila confronter à mes 2 derniers problèmes que j'ai trainé le plus possible mais pas réussi.

1)Enregistrer word PDF

Existe t il sous mac un parametre de "SaveAs" par exemple ou autre comme la sauvegarde au format PDF est d'origine? Ou comment procéder pour enregistrer en PDF à partir de word?

2)Erreur ActiveX lors d'une création d'objet WORD si word et déjà lancé

Bloc de code:
Dim Wd As Object
Dim Doc As Object

Set Wd = New Word.Application
Set Doc = Wd.Documents.Open(MONCHEMIN)
with Doc
.Bookmarks("date").Range.Text = "TOTO"
end with
Alors ce code NIKEL si Word est pas ouvert (petit rond bleu en dessous :siffle: oui je débute sous mac) cependant si il y a ce fameux rond bleu j'obtiens l'erreur suivante:

Le composant ActiveX ne peut créer l'objet
Donc 2 solutions, soit (ce qui est fort possible) j'ai louper un truc et donc je l'utilise mal et il ya un problème de déclaration ou autre.
Soit il me faudrait le code pour fermer TOTALEMENT word (plus de rond bleu :hein:).

Et en bonus, je ne trouve pas l'aide VBA sur le mac, je trouve uniquement l'aide WORD ou EXCEL général mais pas la spécial VBA pour mac... :rose:

Merci a tous,

Bastien
 
Pas trop le temps de regarder en détail, d'autant que tu ne donnes qu'un petit bout de ta boucle et que les création d'instances de Word ne sont pas trop un concept utilisable dans les versions Mac.

Pour la création de PDF, le plus simple est de lancer depuis ta macro une boucle AppleScript, du genre :
Bloc de code:
tell application "Microsoft Word"
	set newname to (("Toto") as string) & ".pdf"
	save as active document file name newname file format "format pdf"
end tell
 
Merci Aliboron pour ta réponse :) pour le pdf :up:

Pour la parti word, c'est la seul parti qui concerne le problème, enfaite je n'utilise peut etre pas comme il faut pour mon objectif:

Je veux ouvrir un fichier WORD modèle qui comporte 5 signets et remplir chaque signet avec des variable STRING sauvegarder dans un autre repertoire et fermer SANS sauvegarder le modèle pour le réutiliser plus tard.:zen:

Merci d'avance

Bastien
 
Pour ouvrir un document, tu devrais plutôt utiliser une syntaxe du type :

Bloc de code:
documents.open filename:="Disque Dur:Users:Toi:Desktop:Ton document.doc", readonly:=True
Pour quitter Word, tu peux tout simplement ajouter une ligne avec l'instruction Quit dans l'AppleScript.
 
Merci Aliboron, je vais tester tout cela dès que j'ai de nouveau le mac sous la main :)

Je te ferai un retour :up:

Bonne journée,

Bastien
 
Bonjour,

Désolès pour la réponse tardive mais je n'ai pas eu de mac depuis alors après un essai, j'ai pas mal galéré je ne comprends pas trop la facon dont on travail avec word sous excel depuis un mac...

Voici les points flous:

Bloc de code:
documents.open filename:="Disque Dur:Users:Toi:Desktop:Ton document.doc", readonly:=True
Avec ce code, est ce que cela demande une ouverture de word? Ou alors cela ouvre un fichier word comme un double clique sur le fichier donc ouvre word si besoin ou ouvre uniquement le fichier si word déjà lancé.

Comment ensuite travailler avec le fichier? uniquement avec Word.ActiveDocument?

En gros je veux:

1) ouvrir un fichier word
2) remplir plusieurs signet
3) coller un tableau (pré copié auparavant)
4) fermer UNIQUEMENT le fichier précédemment ouvert et non word complet

Si quelqu'un aurait un exemple ou des axes je suis preneur :zen:

Actuellement:
Bloc de code:
Set Wd = New Word.Application

Set Doc = Wd.Documents.Open(file)

Doc.Bookmarks("toto").Range.Text = "blabla"

Doc.close

Cependant si word est ouvert (rond bleu) il faut que je fasse:
Bloc de code:
Set Wd = Word.Application

Pas compris pourquoi...

Merci d'avance

Bastien