Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

passer de Word à Excel

4 réponses
Avatar
TILLOUX
Bonsoir,

Je suis dans Excel 2003 et j'ai créé un bouton N qui fait ceci :

- Ouvrir Word 2003
- Ouvrir ou créer si besoin le fichier Notes.doc
- Aller dans Word et activer le document Notes (Excel reste ouvert)

Quand je clique sur N, tout va bien. Je me retrouve dans Notes.

Je voudrais faire un bouton dans Word pour :

Enregistrer Notes et le fermer
Repasser dans Excel mais sans fermer Word car j'y retourne souvent.

Le problème est là. J'arrive pas à passer de Word à Excel sans fermer Word
!!

Merci d'avance pour votre aide.

Tilloux.

4 réponses

Avatar
michdenis
Bonjour,

'Déclaration de 2 variables dans le haut du module standard
Public Wd As Object
Dc As document

La procédure suivante, utilise une instance de l'application Word
pour ouvrir le fichier s'il existe ou crée une nouvelle instance de Word
si cette dernière est fermée pour crée ou ouvrir le fichier.

La Variable Dc représente le fichier, tu peux l'utiliser aussi souvent
que tu désires dans autant de procédure que tu veux et le fichier
va demeurer ouvert aussi longtemps que tu ne passeras pas la
ligne de commande : Dc.close ou que tu le fermes manuellement.

'---------------------------------------------
Sub test()

Dim Fichier As String
Fichier = "c:LecheminNotes.doc" 'à définir
On Error Resume Next
Set Wd = GetObject(",Word.Application")
If Err <> 0 Then GoTo 0
Set Wd = CreateObject("Word.Application")
End If
Wd.Visible = True

If Dir(Fichier) <> "" Then
Set Dc = Wd.documents.Open(Fichier)
Else
Set Dc = Wd.documents.Add
Dc.SaveAs Fichier
End If
End Sub
'---------------------------------------------





"TILLOUX" a écrit dans le message de groupe de discussion :

Bonsoir,

Je suis dans Excel 2003 et j'ai créé un bouton N qui fait ceci :

- Ouvrir Word 2003
- Ouvrir ou créer si besoin le fichier Notes.doc
- Aller dans Word et activer le document Notes (Excel reste ouvert)

Quand je clique sur N, tout va bien. Je me retrouve dans Notes.

Je voudrais faire un bouton dans Word pour :

Enregistrer Notes et le fermer
Repasser dans Excel mais sans fermer Word car j'y retourne souvent.

Le problème est là. J'arrive pas à passer de Word à Excel sans fermer Word
!!

Merci d'avance pour votre aide.

Tilloux.
Avatar
michdenis
Pour les 2 variables :
Public Wd As Object
Public Dc As document
Avatar
TILLOUX
Merci pour ta réponse. J'ai utilisé ton code pour ouvrir un doc. Word depuis
Excel et ça marche très bien.

Dans Excel VBA on a l'instruction :
Application.ActivateMicrosoftApp xlmicrosoftWord

je l'ai ajoutée et ça fait passer la main à Word. Je me retrouve dans Word
avec mon doc. ouvert. Tout est ok.

Par contre je ne trouve pas l'équivalent dans VBA Word pour revenir à Excel.

Créer un objet Excel et l'activer ne rend pas la main à excel. Il faut
pratiquement quitter Word (application.quit) pour que Excel revienne actif.
Il y a sûrement une façon de rendre la main à Excel sans fermer Word mais
comment ?

Merci de ton aide.

Tilloux


"michdenis" a écrit dans le message de news:
eC$
Pour les 2 variables :
Public Wd As Object
Public Dc As document





Avatar
michdenis
A ) Application.ActivateMicrosoftApp xlmicrosoftWord
Quand tu es dans Excel, tu as 2 variables que tu peux utiliser
pour activer l'application Word.

Wd.Windows(1).Activate
Dc.Activate

B ) Lorsque tu es dans Word .... Ta question ne dit pas si c'est
pendant l'exécution d'une macro lancée dans Excel ou suite
à une manouvre manuelle qui n'a rien à voir avec une macro.

- Par une macro lancée par Excel, Tu peux simplement ajouter une
variable déclarée comme ceci :
Dans le haut du module dans Excel :
Public Xl As Application
OU
Public Wk As Workbook
Dans ce cas, tu ajoutes une ligne dans dans la procédure :
Set Wk = ThisWorkbook
Si tu veux que la fenêtre soit l'application Excel
Xl.Windows(1).Activate
Si tu veux que le classeur définit devienne la fenêtre active
Wk.Activate

C ) Si à partir d'Excel, tu veux lancer une macro dans le fichier que
tu as ouvert à l'aide de la procédure, utilise la variable Wd
MaMacro = "'" & dc.name & "'!NomMacro"
Wd.Run MaMacro

D ) Si je ne réponds pas à ta question, je t'invite à préciser les
manipulations
que tu veux faire.

Je publie à nouveau la procédure soumise :

Public Wd As Object
Public Dc As Object

'----------------------------------------------------
Sub test()

Dim Fichier As String
Fichier = "c:LecheminNotes.doc" 'à définir
On Error Resume Next
Set Wk = ThisWorkbook

Set Wd = GetObject(",Word.Application")
If Err <> 0 Then Application.GoTo 0
Set Wd = CreateObject("Word.Application")

Wd.Visible = True

If Dir(Fichier) <> "" Then
Set Dc = Wd.documents.Open(Fichier)
Else
Set Dc = Wd.documents.Add
Dc.SaveAs Fichier
End If
End Sub
'----------------------------------------------------





"TILLOUX" a écrit dans le message de groupe de
discussion : #
Merci pour ta réponse. J'ai utilisé ton code pour ouvrir un doc. Word
depuis Excel et ça marche très bien.

Dans Excel VBA on a l'instruction :
Application.ActivateMicrosoftApp xlmicrosoftWord

je l'ai ajoutée et ça fait passer la main à Word. Je me retrouve dans Word
avec mon doc. ouvert. Tout est ok.

Par contre je ne trouve pas l'équivalent dans VBA Word pour revenir à
Excel.

Créer un objet Excel et l'activer ne rend pas la main à excel. Il faut
pratiquement quitter Word (application.quit) pour que Excel revienne
actif. Il y a sûrement une façon de rendre la main à Excel sans fermer
Word mais comment ?

Merci de ton aide.

Tilloux


"michdenis" a écrit dans le message de news:
eC$
Pour les 2 variables :
Public Wd As Object
Public Dc As document