Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2007, 17h11   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Par défaut Fermer un fichier excel depuis word

Bonjour,

Je demande de nouveau votre aide pour un petit pb que j'ai résolu mais qui via un code pourrait je pense me faciliter la tache.

J'ouvre un doc word (CB.doc) depuis un fichier excel (lot.xls), je voudrais quele fichier excel se ferme une fois que j'ouvre le word. J'ai essayé le code suivant :
Code :
1
2
Workbooks("Lot.xls").Activate
Workbooks("Lot.xls").Close False
Mais il plante en me disant "Erreur de compilation Sub ou Function non définie"

Est ce que qq1 peut m'aider ?

Merci
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 12h13   #2
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Je comprends pourquoi je n'y arrive pas !!!

Personne n'a la solution ?

Bon tant pis pour moi

A bientôt

Nini the loose
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 12h28   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Désolé pour toi, mais je l'ai fait dans l'autre sens.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
Sub testClose()
Dim xlApp As New Excel.Application
Dim xlBook As Workbook
 
xlApp.Workbooks.Add
xlApp.Visible = True
 
Word.Application.Quit
 
 
End Sub
De Word, j'ouvre Excel, et je ferme Word.

J'avais Word ouvert.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 14h18   #4
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
Dommage pour moi

J'ai essayé de faire ce code et il n'a pas fonctionné en me mettant une erreur de compilation : type défini par l'utilisateur non défini en surlignant "xlBook As Workbook" issu de :
Code :
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
Private Sub Document_Open()
 
' Macro enregistrée le 02/07/2007 par Nicolas BAUDRY
'
 
Dim fichier As String
Dim xlBook As Workbook
 
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
            .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
        End With
        .Execute Pause:=False
    End With
 
 
 
Workbooks("Famille_Nicolas.xls").Activate
Workbooks("Famille_Nicolas.xls").Close False
 
Documents("CB_Famille_Nicolas.doc").Activate
Documents("CB_Famille_Nicolas.doc").Close False
 
End Sub
Si qq1 peut m'aider ?
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 14h27   #5
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Tu dois ajouter les références aux programmes que tu appelles.
Dans ton cas, c'est Excel si tu part de Word et Word, si tu pars d'Excel.

Comme ces références ne sont pas activées, le logiciel considère que c'est un type de données utilisateur.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 14h58   #6
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76

A vrai dire je ne comprends pas ce que tu me dis?

Citation:
Tu dois ajouter les références aux programmes que tu appelles.
Dans ton cas, c'est Excel si tu part de Word et Word, si tu pars d'Excel.
Moi je pars d'un fichier excel qui ouvre un word qui à l'ouverture lance un publipostage. Donc mon word appelle rien excepté un fichier excel qui est lié au publipostable mais je souhaitererai fermé un autre fichier excel qui n'a pas été appelé depuis word.

liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 15h29   #7
Membre régulier
 
Inscription : janvier 2003
Messages : 376
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 376
Points : 76
Points : 76
C bon j'ai réussi via une bidouille !!!
Comme d'habitude

Voici le code que j'ai mis dans le fichier excel qui lance le word.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Sub OuvrirCBdoc()
 
    Dim Demword As String
    paramètre = "\\Serveur-caill\Documents\temporaire\Nicolas\Recherche_BA\Famille\CB_famille_Nicolas.doc" 'Pour tous les utilisateurs
 
    n = "WINWORD.EXE " + paramètre
    Demword = Shell(n, 3)  '3 pour maximized (plein écran)
    QuitterOnTime
End Sub
 
 
Sub QuitterOnTime() 'La fermeture d'Excel aura lieu exactement dans... 5s
     Application.OnTime Now + TimeValue("00:00:10"), "FermerExcel"
End Sub
 
 
Sub FermerExcel() '5 secondes plus tard... la macro est exécutée
    'ActiveWorkbook.Close true 'le cas échéant on enregistre le fichier avant de quitter
    'DoEvents             '         "
    Workbooks("Famille_Nicolas.xls").Activate
    Workbooks("Famille_Nicolas.xls").Close False
 
End Sub
Et voilà le tour est joué !
Comme quoi une bonne recherche dans les archives permet toujours de trouver la solution car je me suis inspiré de ce post :
http://www.developpez.net/forums/sho...d.php?t=298410

Merci pour ton aide "Heureux-oli" car cela m'a permis d'approfondir mes recherches et ma récflexion sur mon pb.

A bientôt
liop49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h47.


 
 
 
 
Partenaires

Hébergement Web