Bonjour,
Et en bricolant la fonction Environ ?
Petit code pour r�cup�rer toutes les valeurs de la fonction Environ
(� faire sur une feuille vierge !)
Col. A : N� de param�tre pass�
Col. B : Nom de variable d'environnement
Col. C : Valeur de variable d'environnement
Sub Variables_Environnement()
'----------------------------------------------------------------------------------------
' Proc�dure de r�cup�ration des variables d'environnement
'----------------------------------------------------------------------------------------
Dim Compteur As Integer, sEnv As String
Dim Pos As Integer
Compteur = 1
Do
sEnv = Environ(Compteur)
If Len(sEnv) = 0 Then Exit Do
Pos = InStr(sEnv, "=")
Cells(Compteur, 1) = Compteur
Cells(Compteur, 2) = Left(sEnv, Pos - 1)
Cells(Compteur, 3) = Right(sEnv, Len(sEnv) - Pos)
Compteur = Compteur + 1
Loop
End Sub
Dans ton cas, �a donnerait un truc du genre (si je ne me trompe, j'te
fais �a � l'arrache)
' 1 Je r�cup�re le disk (bon en g�n�ral c'est C: ... mais si t'as une
connection CITRIX, TS ou autre je sais pas comment �a r�agit ... faut
tester (� mon avis sauvegard� sur le bureau de la session et non pas sur
sur le bureau du poste de travail) !
DeskTop_Drive = Right(Environ(11), Len(Environ(11)) - InStr(Environ(11),
"="))
' 2 Le dossier user
DeskTop_HomePath = Right(Environ(12), Len(Environ(12)) -
InStr(Environ(12), "="))
' 3 Suffit de concat�ner et de rajouter la variable Bureau
Path_DeskTop = DeskTop_Drive & DeskTop_HomePath & "DeskTop"
Bon l� j'ai d�compos� pour la compr�hension mais tu peux �videmment
ajuster ...
Path_DeskTop = Right(Environ(11), Len(Environ(11)) - InStr(Environ(11),
"=")) & Right(Environ(12), Len(Environ(12)) - InStr(Environ(12), "=")) &
"DeskTop"
... mais moins lisible si ton code doit �tre support� !
Bonne chance et � toi de voir
Armel
PS : Test� Office 2002-2003-2007-2010 et �a marche (enfin chez moi)
Le 05/07/2012 08:03, Gloops a �crit :
> thomasm a �crit, le 04/07/2012 16:03 :
>> Le code donnant le chemin d'acc�s marche � la perfection cependant
>> comment faire
>> pour l'int�grer � la ligne de code pour enregistrer la feuille excel
>> sur ce
>> bureau (pour que cela fonctionne quelque soit la session sur laquelle
>> est ouvert
>> le fichier excel ?)
>
>> MsgBox Obj.SpecialFolders("Desktop")
>>
>> 'enregistrement du fichier sur le bureau
>>
>> ActiveWorkbook.SaveAs Filename:= _
>> Obj & "\Nouveau dossier\Classeur1.xlsx", FileFormat:= _
>> xlOpenXMLWorkbook, CreateBackup:=False
>> ActiveWindow.Close
>
> Bonjour,
>
> Si le chemin qui est affich� est satisfaisant, �a veut dire que c'est �a
> qu'il faut utiliser comme chemin pour la sauvegarde.
>
> Dim strRep As String
>
> strRep = Obj.SpecialFolders("Desktop")
>
> ActiveWorkbook.SaveAs FileName:=strRep & _
> "\Nouveau Dossier\Classeur1.xlsx"
>
> A noter que :
> - au d�marrage Windows charge tout ce qui est sur le bureau, on risque
> donc d'am�liorer le temps de d�marrage en sauvegardant plut�t le
> classeur dans un sous-r�pertoire de "Mes Documents", et en cr�ant un
> raccourci sur le bureau
> - il peut y avoir plus significatif comme noms que "Nouveau dossier" et
> "Classeur1" (pour dans six mois ...), je dis �a parce que �a s'est vu,
> au premier degr�, de garder ces noms
> - Excel propose des bo�tes de dialogue dont GetSaveAsFilename
> - si on a envie de pinailler sur les ressources charg�es on peut
> sugg�rer de creuser la piste des API
>
http://allapi.mentalis.org/apilist/SHBrowseForFolder.shtml
>
>