Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Chemin d'accès au bureau (VBA)

432 views
Skip to first unread message

thomasm

unread,
Jul 4, 2012, 10:01:49 AM7/4/12
to
Le lundi 13 Avril 2009 à 22:35 par j-pascal :
> Bonsoir,
>
>
> ChDir "C:\Documents and Settings\toto\Bureau"
>
> Si la session "Toto" n'existe pas, la seule chose que je sais faire
> c'est un test qui, le cas échéant, me renverra vers Documents and
>
> Settings (ie).
>
> Y a-t-il un moyen d'accéder au Bureau de la session à partir de
> laquelle on lance la macro, quel que soit le nom de la dite session ?
> (Je pense à l'utilisation de "%")
>
> Merci pour vos lumières,
>
> JP
Bonjour,

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 ?)

Voilà comment j'ai écris le code :

' ObtenirCheminDuBureau()

Dim Obj As Object
Set Obj = CreateObject("WScript.Shell")
MsgBox Obj.SpecialFolders("Desktop")

'enregistrement du fichier sur le bureau

ActiveWorkbook.SaveAs Filename:= _
Obj & "\Nouveau dossier\Classeur1.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close

voilà merci d'avance

thomasm

unread,
Jul 4, 2012, 10:03:47 AM7/4/12
to

Gloops

unread,
Jul 5, 2012, 2:03:00 AM7/5/12
to
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


Armel

unread,
Jul 11, 2012, 1:28:35 PM7/11/12
to
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
>
>


0 new messages