Pb avec une macro d'enregistrement

pat01200

XLDnaute Occasionnel
Bonjour le forum,

j'ai créé un fichier Excel destiné à différents utilisateurs et qui fonctionnera donc sur différents ordinateurs et c'est là que tout foire? En effet, j'ai souhaité générer une sauvegarde automatique du fichier sur le bureau. Sur mon ordi, cela donne ça:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Accueil").Select
Range("C2").Select
Application.DisplayAlerts = False

ActiveWorkbook.SaveCopyAs "C:\Documents and Settings\a\Bureau\" & ActiveCell.Text & "_du_" & Format(Now, "dd-mm-yyyy") & ".xls"

MsgBox (" Une Sauvegarde a été enregistrée sur le bureau de votre ordinateur," & vbCr _
& " sous la forme Sauvegarde_Tabord_RNE_du_Date " & vbCr & vbCr _
& " Pour la rendre utilisable en cas de besoin, " & vbCr _
& " et ne pas sucharger le bureau de votre PC, " & vbCr _
& " transférez-la et stockez-la par exemple sur une clé USB. " & vbCr & vbCr _
& " Si vous estimez qu'elle vous est inutile, " & vbCr _
& " il suffit simplement de supprimer ce fichier...")

End Sub


Le problème, c'est que si sur mon ordi l'emplacement du bureau est "a", ce nom change en fonction de chaque ordinateur. Y a-t-il une astuce pour résoudre ce problème ?

Merci d'avance à celui(celle) qui aurait au moins une piste...!
 

Pierrot93

XLDnaute Barbatruc
Re : Pb avec une macro d'enregistrement

Bonjour Pat

pour obtenir le chemin du bureau, essaye le code de MichelXLD:), ci-dessous :

Code:
Dim chemin As String
chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop")

bon après midi
@+
 

pat01200

XLDnaute Occasionnel
Re : Pb avec une macro d'enregistrement

J'ai oublié de dire que j'ai le même problème avec une autre macro qui ouvre la fenêtre de "Mes Documents"...
En effet, le code
ChDir "C:\Documents and Settings\a\Mes documents"
Classeur = Application.GetOpenFilename("Classeurs Excel,*.csv")

ne marche que sur mon ordi, toujours à cause du fameux "a" !!!
 

pat01200

XLDnaute Occasionnel
Re : Pb avec une macro d'enregistrement

J'ai essayé le code de MichelXLD fourni par Pierrot (Merci !!!) mais... si la sauvegarde s'effectue normalement, sur n'importe quel ordinateur, par contre elle s'enregistre dans "Mes documents" et non pas sur le bureau comme je le souhaitais ! Quelqu'un aurait-il un bout de code semblable, mais pour un enregistrement sur le bureau ?
 

Pierrot93

XLDnaute Barbatruc
Re : Pb avec une macro d'enregistrement

Bonjour,
comprends pas trop, chez moi le code ci-dessous enregistre bien une copie du classeur actif sur le bureau.....

Code:
Dim chemin As String
chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop")
ActiveWorkbook.SaveCopyAs chemin & "\sauvNomFichier.xls"

bonne journée
@+
 

camarchepas

XLDnaute Barbatruc
Re : Pb avec une macro d'enregistrement

Bonjour Pierrot, Pat ainsi que tous les lecteurs passant par là,

Pierrot chez moi aussi ça marche, également au bureau , donc un problème d'intégration du code certainement et c'est vrai que sans fichier pour ce rendre compte ...
 

pat01200

XLDnaute Occasionnel
Re : Pb avec une macro d'enregistrement

Après de multiples bidouillages, je peux vous confirmer que c'est bien le code qui était en cause, sans doute parce que le nom du fichier de sauvegarde était généré par la valeur d'une cellule de mon fichier EXCEL. J'ai finalement réussi avec ça :
Dim chemin As String
chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop")
ActiveWorkbook.SaveCopyAs chemin & "\" & ActiveCell.Text & "_du_" & Format(Now, "dd-mm-yyyy") & ".xls"

Merci pour votre aide
 

Discussions similaires

Statistiques des forums

Discussions
314 647
Messages
2 111 530
Membres
111 190
dernier inscrit
clmtj