Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : adresse de mon bureau

4 réponses
Avatar
Jac
Bonjour à tous,

afin de pouvoir enregistrer un fichier sur le bureau, comment puis-je faire
pour trouver l'adresse du bureau de l'utilisateur actuel ?

Merci d'avance.

Jac

4 réponses

Avatar
Patrick
Bonjour,

Tu peux utiliser la bibliothèque "Windows Script Host Object Model" comme
ceci :

Public Const gFOLDER_DESKTOP As String = "Desktop"
Public Const gFOLDER_MYDOC As String = "MyDocuments"

'FolderName est une des valeurs ci-dessus
Function Special_Folder(ByVal FolderName As String) As String
Dim wsShell As WshShell
'
Set wsShell = New WshShell
Special_Folder = wsShell.SpecialFolders(FolderName) & ""
'
Set wsShell = Nothing
End Function

--
Patrick


"Jac" wrote:

Bonjour à tous,

afin de pouvoir enregistrer un fichier sur le bureau, comment puis-je faire
pour trouver l'adresse du bureau de l'utilisateur actuel ?

Merci d'avance.

Jac





Avatar
MichDenis
Bureau = Environ("USERPROFILE") & "Bureau"



"Jac" a écrit dans le message de news: %
Bonjour à tous,

afin de pouvoir enregistrer un fichier sur le bureau, comment puis-je faire
pour trouver l'adresse du bureau de l'utilisateur actuel ?

Merci d'avance.

Jac
Avatar
Jac
Bonjour MichDenis,

j'obtiens un résultat qui correspond au bureau "théorique" de mon PC,
"c:Documents and SettingsPCBureau"
Or mon vrai bureau est dans "f:_Bureau_" tel que défini comme cible
dans les propriétés de "Mes documents".

Pourquoi dans le f et pas dans le c, comme d'habitude ?
Parce qu'en général, une sauvegarde sur un réseau ne s'occupe pas
du c des pc, et sur une machine hors réseau, quand il faut faire le tour
de tous les petits morceaux à sauvegarder, on finit toujours par oublier
dans l'urgence, quelque chose comme le bureau, mes documents, les
polices, les contacts de messagerie, ... quand ce n'est pas la messagerie
entière...

D'où ma crainte de ne pas être sûr d'enregistrer par macro le fichier
au bon endroit, sur des machines qui ne m'ont pas été présentées...


"MichDenis" a écrit dans le message de news:
u33iM%

Bureau = Environ("USERPROFILE") & "Bureau"

"Jac" a écrit dans le message de news:
%
Bonjour à tous,

afin de pouvoir enregistrer un fichier sur le bureau, comment puis-je
faire
pour trouver l'adresse du bureau de l'utilisateur actuel ?

Merci d'avance.

Jac


Avatar
MichDenis
Ce qui suit te donne toutes les caractéristiques d'un compte réseau.
Comme je ne suis pas en réseau, il m'est difficile de tester ....!
à toi de le faire en utilisant seulement les caractéristiques désirées

'------------------------------
Sub test()
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "rootcimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkLoginProfile")
For Each objItem In colItems
dtmWMIDate = objItem.AccountExpires
strReturn = WMIDateStringToDate(dtmWMIDate)
MsgBox "Account Expires: " & strReturn
MsgBox "Authorization Flags: " & objItem.AuthorizationFlags
MsgBox "Bad Password Count: " & objItem.BadPasswordCount
MsgBox "Caption: " & objItem.Caption
MsgBox "CodePage: " & objItem.CodePage
MsgBox "Comment: " & objItem.Comment
MsgBox "Country Code: " & objItem.CountryCode
MsgBox "Description: " & objItem.Description
MsgBox "Flags: " & objItem.Flags
MsgBox "Full Name: " & objItem.FullName
MsgBox "Home Directory: " & objItem.HomeDirectory
MsgBox "Home Directory Drive: " & objItem.HomeDirectoryDrive
dtmWMIDate = objItem.LastLogoff
strReturn = WMIDateStringToDate(dtmWMIDate)
MsgBox "Last Logoff: " & strReturn
dtmWMIDate = objItem.LastLogon
strReturn = WMIDateStringToDate(dtmWMIDate)
MsgBox "Last Logon: " & strReturn
MsgBox "Logon Hours: " & objItem.LogonHours
MsgBox "Logon Server: " & objItem.LogonServer
MsgBox "Maximum Storage: " & objItem.MaximumStorage
MsgBox "Name: " & objItem.Name
MsgBox "Number Of Logons: " & objItem.NumberOfLogons
MsgBox "Password Age: " & objItem.PasswordAge
dtmWMIDate = objItem.PasswordExpires
strReturn = WMIDateStringToDate(dtmWMIDate)
MsgBox "Password Expires: " & strReturn
MsgBox "Primary Group ID: " & objItem.PrimaryGroupId
MsgBox "Privileges: " & objItem.Privileges
MsgBox "Profile: " & objItem.Profile
MsgBox "Script Path: " & objItem.ScriptPath
MsgBox "Setting ID: " & objItem.SettingID
MsgBox "Units Per Week: " & objItem.UnitsPerWeek
MsgBox "User Comment: " & objItem.UserComment
MsgBox "User Id: " & objItem.UserId
MsgBox "User Type: " & objItem.UserType
MsgBox "Workstations: " & objItem.Workstations

Next
End Sub
'------------------------------
Function WMIDateStringToDate(dtmWMIDate)
If Not IsNull(dtmWMIDate) Then
WMIDateStringToDate = CDate(Mid(dtmWMIDate, 5, 2) & "/" & _
Mid(dtmWMIDate, 7, 2) & "/" & Left(dtmWMIDate, 4) _
& " " & Mid(dtmWMIDate, 9, 2) & ":" & _
Mid(dtmWMIDate, 11, 2) & ":" & Mid(dtmWMIDate, _
13, 2))
End If
End Function
'------------------------------





"Jac" a écrit dans le message de news:
Bonjour MichDenis,

j'obtiens un résultat qui correspond au bureau "théorique" de mon PC,
"c:Documents and SettingsPCBureau"
Or mon vrai bureau est dans "f:_Bureau_" tel que défini comme cible
dans les propriétés de "Mes documents".

Pourquoi dans le f et pas dans le c, comme d'habitude ?
Parce qu'en général, une sauvegarde sur un réseau ne s'occupe pas
du c des pc, et sur une machine hors réseau, quand il faut faire le tour
de tous les petits morceaux à sauvegarder, on finit toujours par oublier
dans l'urgence, quelque chose comme le bureau, mes documents, les
polices, les contacts de messagerie, ... quand ce n'est pas la messagerie
entière...

D'où ma crainte de ne pas être sûr d'enregistrer par macro le fichier
au bon endroit, sur des machines qui ne m'ont pas été présentées...


"MichDenis" a écrit dans le message de news:
u33iM%

Bureau = Environ("USERPROFILE") & "Bureau"

"Jac" a écrit dans le message de news:
%
Bonjour à tous,

afin de pouvoir enregistrer un fichier sur le bureau, comment puis-je
faire
pour trouver l'adresse du bureau de l'utilisateur actuel ?

Merci d'avance.

Jac