VBA Ouvrir Word

bastou93

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

Je voudrais savoir quel commande utilisé pour ouvrir word sous Excel VBA??

A noter que je ne veux pas voir la fenetre; mais juste ouvrir si cela n'est déjà fait word (rond bleu en dessous).

Merci d'avance car je n'ai pas trouver comment faire (première macro sous mac :zen:)

Bastien
 
Bonjour Aliboron,

Une petite question si par contre Word est déja lancé avec un fichier d'ouvert, comment cela réagi? (je n'ai pas de mac sous la main)

Merci pour ton aide

Ps: tu as une aide officiel spécial mac? comme on trouve sous windows dans l'aide?

Cdt,

Bastien
 
si par contre Word est déja lancé avec un fichier d'ouvert, comment cela réagit-il ?
Cette instruction active Word. En gros lui donne le focus. Pour cela, ça l'ouvre d'abord s'il est fermé, ça se contente de l'appeler s'il est déjà ouvert.


tu as une aide officiel spécial mac ? comme on trouve sous windows dans l'aide ?
Ah ça, c'est vrai que l'aide VBA manque cruellement dans Excel 2011. C'est une des raisons pour lesquelles je garde toujours Excel 2004 bien au chaud. Même s'il y a quelques changements dans la nouvelle version de VBA, une grande partie des indications sont toujours valables et on est souvent bien content de pouvoir s'y référer… ;)
 
Ok nickel merci je vais pouvoir faire cela pour pallier à mon problème! :up:

Concernant l'aide, je vais voir si je peux me procurer uniquement la documentation :) merci pour l'info
 
Bonjour,

J'ai de nouveau une question par rapport à l'ouverture que tu m'as conseiller:

Comment effectuer la fin de mon code proprement sous MAC?

Bloc de code:
MyAppID = Shell("Disque Dur:Applications:Microsoft Office 2011:Microsoft Word.app:Contents:MacOS:Microsoft Word", vbHide)  
AppActivate MyAppID

// Ouverture tu fichier
documents.open filename:="Disque Dur:Users:Toi:Desktop:Ton document.doc", readonly:=True

// JE VOUDRAIS MODIFIER UN BOOKMARKS est bien cela?
Documents.Bookmarks("date").Range.Text = Format(Now, "dd-mm-yyyy")

// SAUVEGARDER LE DOCUMENT
???

//FERMER WORD
???

Merci beaucoup je suis vraiment perdu sous mac...
 
je suis vraiment perdu sous mac...

Je ne vois pas en quoi, vu que dans les cas qui te préoccupent, le code serait strictement identique à celui qui fonctionnerait sur PC, si on fait exception de la seule formulation différente des chemins de fichiers (des "/" à la place des "\", et des noms de volumes à la place des "C:") :mouais:
 
.../... si on fait exception de la seule formulation différente des chemins de fichiers (des "/" à la place des "\", et des noms de volumes à la place des "C:") :mouais:
Attention, en VBA sur Mac les séparateurs sont toujours les deux points : et pas le slash /
 
Bonjour,

Alors la pas du tout dans mon cas, j'utilisais déjà le path separator donc cela n'a rien changer à ce niveau la, par contre toutes mes communications Excel Word me renvoi des erreur ActiveX comme quoi un composant activeX ne peut créer d'objet alors que sous W7 aucun soucis.

Donc j'essaie en vain de mettre a jour mon code mais la partie Excel Word ou j'ouvre word à partir d'excel... bug enormément.

Pour info, voici mon code qui fonctionne nickel sous windows:

Bloc de code:
Set Wd = New Word.Application

Set Doc = Wd.Documents.Open(ProjetPath & Application.PathSeparator & "_sys" & Application.PathSeparator & "Quotation_Type.doc")

Doc.Bookmarks("date").Range.Text = Format(Now, "dd-mm-yyyy")
Doc.Bookmarks("client").Range.Text = CollectClient("client")
Doc.Bookmarks("societe").Range.Text = CollectClient("societe")
Doc.Bookmarks("mail").Range.Text = CollectClient("mail")
Doc.Bookmarks("tel").Range.Text = CollectClient("tel")
Doc.Bookmarks("fax").Range.Text = CollectClient("fax")
Doc.Bookmarks("comment").Range.Text = CollectClient("comment")

suff = Suffixe(CollectClient("ref") & "-" & Format(Now, "dd-mm-yyyy"))
Doc.Bookmarks("ref").Range.Text = CollectClient("ref") & "-" & Format(Now, "dd-mm-yyyy") & "-" & Format(suff, "#00")

Doc.Bookmarks("detail").Select
Wd.Selection.Paste


Doc.SaveAs Filename:=ProjetPath & Application.PathSeparator & "Quotation" & Application.PathSeparator & CollectClient("ref") & "-" & Format(Now, "dd-mm-yyyy") & "-" & Format(suff, "#00") & ".doc"
Wd.Quit

Set Doc = Nothing
Set Wd = Nothing
Et de ce code je n'ai toujours pas trouver un moyen de le faire sous mac sans problème du style Word étant déjà ouvert sur le MAC (rond bleu en dessous) alors ERREUR... etc

Je pense tester avec au début de mon code mais je trouve cela bizarre d'ensuite instancié une appli word... etc
Bloc de code:
MyAppID = Shell("Disque Dur:Applications:Microsoft Office 2011:Microsoft Word.app:Contents:MacOS:Microsoft Word", vbHide)  
AppActivate MyAppID
Merci pour ton aide,

Bastien
 
Dernière édition:
.../... toutes mes communications Excel Word me renvoient des erreurs ActiveX comme quoi un composant activeX ne peut créer d'objet alors que sous W7 aucun soucis.
Oui, mais ça c'est normal, les composants ActiveX n'existent que sous Windows, ça ne peut rien donner sur une version Mac d'Office.

Je ne suis pas en mesure de faire des essais pour le moment, je verrai si je peux m'y coller plus tard ce soir...
 
Déjà, si tu nous disais à quelle ligne ça plante, ça pourrait nous orienter.

Un truc à savoir : sur Mac, pas possible d'instancier une application, une seule instance par exécutable, Mac OS ne permet pas plus (par contre, dans cette unique instance, tu peux ouvrir autant de documents que tu le veux … et que la mémoire de la machine le permet avant qu'elle se mette à ramer grave).
 
Pour info, voici mon code qui fonctionne nickel sous windows:
Il doit manquer des choses, ou je n'ai pas tout suivi : en collant ton code à l'intérieur d'une procédure "Sub Test()" dans un module Excel 2010 (sous Windows, donc), ça ne démarre pas. Avec un message d'erreur "Erreur de compilation : Type défini par l'utilisateur non défini".

Donc pour le moment (pas trop le temps de creuser dans l'immédiat) ça reste planté là...
 
Dernière édition:
Petit complément vite fait.

Pour faire tout ça, personnellement, je ferais plutôt avec un bout d'AppleScript, quelque chose comme ça :

Bloc de code:
Sub test()

MonScript = "tell application ""Microsoft Word""" & vbCr _
    & "open file name ""Disque Dur:Utilisateurs:toi:Desktop:Ton Document.doc"" with read only" & vbCr _
    & "set theDoc to active document" & vbCr _
    & "set content of text object of bookmark ""DateJour"" to date" & vbCr _
    & "save as theDoc file name ""Nouveau Doc.doc"" file format format document97" & vbCr _
    & "Quit" & vbCr & "end tell"

Temp = MacScript(MonScript)
End Sub

J'ai pas trop le temps de tester en détail, ça semble marcher "à peu près", il faut probablement affiner un peu les choses (côté AppleScript")...