Sauvegarde externe???

kllmoon

XLDnaute Occasionnel
Bonjour,

j'ai le code suivant qui fonctionne très bien

Private Sub CommandButton1_Click()
Dim x As Long
x = [COUNTA(B3:B63)+2 ]
Range("A1:F" & x).Select
ActiveWindow.Selection.Copy
Dim AppWord
Set AppWord = CreateObject("Word.Application")
UserName = InputBox("Quel est votre nom d'utilisateur sur cet ordinateur?")
Periode = D1
Shell "winword.exe ""C:\Documents and Settings\" & UserName & "\Bureau\Stats\stats.doc"""""
AppWord.Visible = True
AppWord.Selection.Paste
End Sub

En gros, il ouvre une feuille word et copie le contenu voulu dedans. J'aimerais une fois ceci terminé, sauvegarder automatiquement le document word puis le fermé, je ne sais pas quelle commande utiliser.

Je voudrais sauvegarder sous ""C:\Documents and Settings\" & UserName & "\Bureau\Stats\" & Periode & ".doc" mais comment faire?????
 

tototiti2008

XLDnaute Barbatruc
Re : Sauvegarde externe???

Bonjour,

à tester :

Code:
    Dim x As Long
    x = [COUNTA(B3:B63)+2 ]
    Range("A1:F" & x).Select
    ActiveWindow.Selection.Copy
    Dim AppWord
    Set AppWord = CreateObject("Word.Application")
    'UserName = InputBox("Quel est votre nom d'utilisateur sur cet ordinateur?")
    UserName = Environ("username")
    Periode = D1
    AppWord.Documents.Open FileName:="C:\Documents and Settings\" & UserName & "\Bureau\Stats\stats.doc"""""
    AppWord.Visible = True
    AppWord.Selection.Paste
    AppWord.ActiveDocument.SaveAs FileName:="C:\Documents and Settings\" & UserName & "\Bureau\Stats\" & Periode & ".doc"
    AppWord.ActiveDocument.Close
    AppWord.Quit
    Set AppWord = Nothing
 

kllmoon

XLDnaute Occasionnel
Re : Sauvegarde externe???

Merci de ta réponse rapide,

Le débogueur bloque ici :

AppWord.ActiveDocument.SaveAs Filename:="C:\Documents and Settings\" & UserName & "\Bureau\Stats\" & Periode & ".doc"

Erreur d'exécution 4198, la commande a échouée...
 
Dernière édition:

kllmoon

XLDnaute Occasionnel
Re : Sauvegarde externe???

Ma variable D1 contiens le nom de la période en cours (il y en a 13 en tout), j'ai essayé et ça ne fonctionne pas. si je donne n'importe quel nom entre des " ", ça fonctionne. La formule est donc bonne, c'est sur la variable qui a un problème.
 
Dernière édition:

kllmoon

XLDnaute Occasionnel
Re : Sauvegarde externe???

Bon j'ai réussis à le faire fonctionner, merci pour les pistes de solution toto. Voici le code qui fonctionne

Private Sub CommandButton1_Click()
Dim x As Long
Dim Periode As Long
x = [COUNTA(B3:B63)+2 ]
Periode = ActiveSheet.Range("D3").Value
Range("A1:F" & x).Select
ActiveWindow.Selection.Copy
Dim AppWord
Set AppWord = CreateObject("Word.Application")
UserName = InputBox("Quel est votre nom d'utilisateur sur cet ordinateur?")
Shell "winword.exe ""C:\Documents and Settings\" & UserName & "\Bureau\Stats\stats.doc"""""
AppWord.Visible = True
AppWord.Selection.Paste
AppWord.ActiveDocument.SaveAs "C:\Documents and Settings\" & UserName & "\Bureau\Stats\" & Periode & ".doc"
AppWord.Quit

End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Sauvegarde externe???

Re,

plutôt que de demander le nom d'utilisateur, tu peux le lire (s'il s'agit de celui de Windows) :

UserName = Environ("username")

D'autre part je te conseilles de faire :

AppWord.Documents.Open FileName:="C:\Documents and Settings\" & UserName & "\Bureau\Stats\stats.doc"

plutôt que

Shell "winword.exe ""C:\Documents and Settings\" & UserName & "\Bureau\Stats\stats.doc"""""

Shell risque de te créer une nouvelle instance de Word, alors que le 1er code utilise le Word que tu as créé..
 

Discussions similaires

Statistiques des forums

Discussions
312 682
Messages
2 090 889
Membres
104 689
dernier inscrit
phlentier