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 13/02/2008, 08h35   #1
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut sauvegarde word depuis excel

Bonjour j effectue une sauvegarde d un fichier word depuis excel 2003:

pour ceci j utilise deux lignes de code:

Code :
1
2
3
appword.ChangeFileOpenDirectory "D:\My Documents\" & Create_project
 
        appword.ActiveDocument.SaveAs Filename:="big and small label.doc"
Mais j ai un bug, je pense que la synthaxe n ' est pas bonne

Une idee?

merci
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 09h21   #2
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
Ce n'est pas dans ces deux lignes que tu as un bug, ces deux lignes sont bonnes.

Es-tu certains de ta variable Create_project c'est la seule source de problème que je pourrais voir.
__________________
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 13/02/2008, 09h30   #3
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

oui je suis sur car create a project est ceci:
Code :
1
2
3
4
5
6
T1 = UserForm1.Textbox1 & "_"
    T2 = UserForm1.TextBox2 & "_"
    T3 = UserForm1.TextBox3 & "\"
    New_PROJECT = T1 + T2 + T3
    C1 = UserForm1.combobox1 & "\"
    Create_project = "D:\My Documents\" & C1 + New_PROJECT
et pour etre sur que mon directory est bon je fais:
Code :
MsgBox "D:\My Documents\" & Create_project
le hic c est que je vois pas d ou vient le bug et il plante sur :
Code :
 appword.ChangeFileOpenDirectory "D:\My Documents\" & Create_project
est ce qu il faut que je mette appword, ou appword.activedocument ou encore juste activedocument?
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 09h50   #4
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
Essaie l'opérateur de concaténation et pas des plus (+)

Code :
New_PROJECT = T1 & T2 & T3
Et en plus
Code :
Create_project = "D:\My Documents\" & C1 + New_PROJECT
et
Code :
appword.ChangeFileOpenDirectory "D:\My Documents\" & Create_project
Tu as deux fois D:\My Documents\
__________________
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 13/02/2008, 10h11   #5
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

ok pour le create project j ai fais la modif et c est vrai que sa devait pas arranger les choses:

apres modif:

Code :
1
2
3
4
5
6
7
8
T1 = UserForm1.Textbox1 & "_"
    T2 = UserForm1.TextBox2 & "_"
    T3 = UserForm1.TextBox3 & "\"
    C1 = UserForm1.combobox1 & "\"
    New_project = C1 & T1 & T2 & T3
 
appword.ChangeFileOpenDirectory "D:\My Documents\" & New_project
        appword.SaveAs Filename:="big and small label.doc"
Mais il bug tjrs au meme endroit!
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 10h15   #6
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
C'est ta chaîne qui n'est pas conforme.

Fais un debug.print ou un msgBox sur
Code :
"D:\My Documents\" & New_project
Je pense que c'est de là que vient ton souci.
__________________
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 13/02/2008, 10h20   #7
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

je viens de reessayer et j ai placer un MSGBOX pour verifier le directory et c est bon.
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 10h23   #8
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

si sa peux aider voici le SUB:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Sub Button_OK_Click()
 
    T1 = UserForm1.Textbox1 & "_"
    T2 = UserForm1.TextBox2 & "_"
    T3 = UserForm1.TextBox3 & "\"
    C1 = UserForm1.combobox1 & "\"
    New_project = C1 & T1 & T2 & T3
 
    Dim appword As Object
    Set appword = New Word.Application
    Application.DisplayAlerts = True
    appword.ShowMe
    appword.Visible = True
    appword.Documents.Open Filename:="D:\My Documents\structure\Label\big and small label.doc"
 
    If CheckBox1 Or CheckBox2 Or CheckBox3 Or CheckBox4 Then
        ActiveDocument.Bookmarks("Project_Number1").Range.Text = UserForm1.Textbox1.Value
        ActiveDocument.Bookmarks("Customer_Name1").Range.Text = UserForm1.TextBox2.Value
        ActiveDocument.Bookmarks("Project_Name1").Range.Text = UserForm1.TextBox3.Value
    End If
 
.
.
.
.
msg = " Do you have finished to create labels? "
    ans = MsgBox(msg, vbYesNo)
If ans = vbYes Then
    MsgBox "D:\My Documents\" & New_project
        Unload UserForm3
        Unload UserForm2
        Unload UserForm1
        appword.ChangeFileOpenDirectory "D:\My Documents\" & New_project
        appword.SaveAs Filename:="big and small label.doc"
    End If
 
    If ans = vbNo Then
        appword.ChangeFileOpenDirectory "D:\My Documents\" & Create_project
        appword.SaveAs Filename:="big and small label.doc"
        appword.Quit
    End If
End Sub
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 10h23   #9
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
Peux-tu me donner les lignes où tu déclares Word.
__________________
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 13/02/2008, 10h24   #10
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

je t ai devance , regarde au dessus.
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 10h44   #11
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
La bibliothèque Word doit être déclarée dans ton projet.

Tu as encore un mix de New_Project et Create_Project.

Quel est le message d'erreur ?
__________________
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 13/02/2008, 10h50   #12
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
j ai declarer word dans tools> reference il faut que je le fasse ds mon sub aussi?

regarde la piece jointe:
Pièce jointe 25517
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 11h09   #13
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


Le répertoire n'existe pas sur ton dique dur.

Il faut le créer.

Mais ce n'est pas tout, tu dois active la gestion d'erreur en plus. Si le répertoire existe, tu lève une erreur 75.

Code :
1
2
3
4
5
6
7
8
9
On Error resume Next
 
MkDir .....
 
If Err.Number = 75 Then
   ....
Else
   MsgBox "Erreur inconnue " & err.number
End if
tu peux aussi te contenter de On Error Resume Next, sans la gérer, mais dans ce cas, si tu lève une autre erreur, tu ne le sauras pas.
__________________
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 13/02/2008, 11h15   #14
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

ce sub que je t ai montrer est dans un userform3 sous excel mais ds le Userform1 je fais le Mkdir donc le dossier existe bien a l avance...

l'erreur ne vient pas de la!

comment fais tu pour declarer word ds le sub?
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 11h29   #15
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
Ta méthode n'est pas celle que j'utilise, mais la tienne fonctionne.

C'est au niveau du path que tu rencontre ton problème, c'est le message renvoyé, que tu as mis dans ta copie d'écran.

Pour déclarer Word,

Code :
Dim wApp as New Word.application

Ou encore

Code :
1
2
Dim wApp as Word.application
Set wApp = GetObject(,"Word.Application")
ou encore si tu ne déclares pas la bibliothèque

Code :
1
2
Dim wApp as Object
Set wApp = GetObject("WordApplication")
Dans ce cas on se retrouve avec du LateBinding.
__________________
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 13/02/2008, 11h40   #16
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

ok donc j ai tjrs le meme prob et je ne sais pas pk.

J ai fais un Mais rien ne se passe et je dirai normal puisqu il plante sur
se save as....
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 12h03   #17
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
J'ai utilisés une copie de ton code, qui de toute façon est correct et chez moi tout passe.

Essaie sans variables et de mettre le tout en dur pour la sauvegarde, par exemple
Code :
C:\temp\tom\MonFichier.doc
En ayant pris le soin de créer le répertoire avant.
__________________
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 13/02/2008, 12h12   #18
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

sa fonctionne depuis chez toi quand tu l execute depuis excel?

je ne comprend pas j ai essayer sous C:\ sous D:\ qui est une autre partition de mon Disc dur sans utiliser new project c est a dire :

La je bloc....
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2008, 12h16   #19
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
Oui, lancé depuis Excel ou dans Word, les lignes sont bonnes, le seul hic est le chemin que tu donnes.
__________________
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 13/02/2008, 12h17   #20
Membre éclairé
 
Avatar de tomy7
 
Étudiant
Inscription : janvier 2008
Messages : 540
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 540
Points : 355
Points : 355
Par défaut re

je vais essayer apres manger de placer ce code sous word:
Code :
1
2
3
4
5
6
7
msg = " Do you have finished to create labels? "
    ans = MsgBox(msg, vbYesNo)
 
    If ans = vbYes Then
        MsgBox "D:\My Documents\" & New_project
        ActiveDocument.ChangeFileOpenDirectory "D:\My Documents\" & New_project
        ActiveDocument.SaveAs Filename:="big and small label.doc"
__________________
tom

"Barbar : The rest of the warrior"

Into the wild....
tomy7 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 18h57.


 
 
 
 
Partenaires

Hébergement Web