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

Modifier le nom utilisateur dans les options à l'ouverture d'Exc el

14 réponses
Avatar
Esox38
Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro
--
Esox38

10 réponses

1 2
Avatar
Michel Pierron
Bonsoir Esox38;
Oui, c'est possible avec VBA ou avec VBS, mais le plus simple est de changer
les options Utilisateur dans Word; la base de registre sera modifiée en
conséquence et Excel utilisera les nouvelles valeurs.

MP

"Esox38" a écrit dans le message de news:

Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de
l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro
--
Esox38


Avatar
Esox38
Bonsoir,

Le problème n'est pas d'ouvrir Word en premier. Un script doit se lancer à
chaque nouvelle ouverture de session de XP qui reprend le login de la
personne qui ouvre la session. Vu que mon login ne correspond pas à mon nom
et que à l'ouverture soit de Excel ou de Word etc... de plus Office ne
reprend que la première lettre de mon nom pour les intiiales.

Cela ne me convient pas et personnellement à la fin de la journée quand on
quitte la session plusieur fois cela devient pénible de saisir à nouveau le
nom utilisateur et les initiales.

Voila pourquoi un script en VBA ou VB qui à l'ouverture change le nom et les
initiales de l'utilisateur dans les options serait bien pratique.

Merci
--
Esox38



Bonsoir Esox38;
Oui, c'est possible avec VBA ou avec VBS, mais le plus simple est de changer
les options Utilisateur dans Word; la base de registre sera modifiée en
conséquence et Excel utilisera les nouvelles valeurs.

MP

"Esox38" a écrit dans le message de news:

Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de
l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro
--
Esox38







Avatar
Michel Pierron
Bonjour Esox38;
A partir du moment où à chaque ouverture de session, un script modifie les
clés de registre (nom et initiales) de l'utilisateur d'Office en substituant
le nom de login et l'initiale correspondante, pour être tranquille, il eut
fallut que le nom de login corresponde au nom de l'utilisateur (par exemple,
jdurand pour Jacques Durand, ce qui donne Nom: Durand et initiales: JD).
Comme ce n'est pas le cas, que tu lances un script pour modifier ces valeurs
ou que tu les modifies dans les options d'Excel ou de Word, la pénibité sera
même pire puisqu'il te faudra lancer le script et saisir les infos voulues à
chaque ouverture de session. Dans un tel cas, pourquoi ne pas demander à
l'initiateur du script qui modifie les clés de registre lors de l'ouverture
de session de ne pas les modifier, mais simplement de les effacer; en
l'absence de ces clés lors de l'ouverture d'une application Office,
l'application demandera automatiquement la saisie du nom et des initiales.
Maintenant, il faut que tu précises davantage ton souhait. Si tu souhaites
un remplacement automatique à l'ouverture d'Excel, je ne vois qu'une
solution:
Lancement d'Excel au moyen d'un raccourci sur ton bureau, lequel raccourci
lance préalablement un script de vérification personnalisé contenant tes
données en dur (Nom et initiales pour éviter d'avoir à les saisir à chaque
fois) et qui modifie les clés de registre avec tes données personnelles en
cas de non concordance avant d'ouvrir Excel. Bien évidemment, il te sera
nécessaire de passer par cette étape à la première utilisation d'Excel si tu
veux que ces modifications soient prises en compte lorsque tu ouvres un
fichier Excel au travers de l'explorateur.
Si c'est ce que tu souhaites, réponds moi en bal perso car il te faut 2
scripts; celui décrit précédemment plus le script d'installation du
raccourci; sinon, pour un script de modification non personnalisé, recopie
les lignes suivantes dans le bloc-notes et enregistre le sous le nom que tu
veux avec l'extension .vbs.

' Check Excel.Application existence
If IsNull(RegRead("HKCRExcel.Application")) Then
MsgBox "Excel.Application object not found on this computer !", 48
WScript.Quit
End If

' Check Excel version
Dim xlKey
xlKey = Mid(RegRead("HKCRExcel.ApplicationCurVer"), 19)
' Check Office UserInfo
Const Cle1 = "SoftwareMicrosoftOffice"
Const Cle2 = ".0CommonUserInfo"
xlKey = Cle1 & xlKey & Cle2
Dim sReg, v, u, i, N, T
sReg = RegRead("HKCU" & xlKey & "UserName")
If IsNull(sReg) Then
MsgBox "Office Application not found on this computer !", 48
WScript.Quit
End If

' Actual Office UserName
For Each v In sReg
If v > 0 Then u = u & Chr(v)
Next

' Actual Office UserInitials
sReg = RegRead("HKCU" & xlKey & "UserInitials")
For Each v In sReg
If v > 0 Then i = i & Chr(v)
Next

' New Office User name and User initials
N = Trim(InputBox("Entrez nouveau nom d'utilisateur:", "Office User info",
u))
If N = "" Or N = u Then WScript.Quit
T = Trim(InputBox("Entrez vos initiales:", "Office User info", i))
If MsgBox("Remplacer " & u & " (" & i & ")" & vbLf & Space(11) & "par " & N
_
& " (" & T & ")", 32 + 4 + 256, "Change User") = vbNo Then WScript.Quit

' Update User infos
Dim k, D, Wsh, wReg
Set Wsh = CreateObject("wscript.shell")
Wsh.RegDelete "HKCU" & xlKey & "UserName"
Wsh.RegDelete "HKCU" & xlKey & "UserInitials"
Set Wsh = Nothing
Set wReg = GetObject("winmgmts:.rootdefault:StdRegProv")

' Update UserName
ReDim D(Len(N) * 2 + 1)
For i = 1 To Len(N)
D(k) = Asc(Mid(N, i, 1))
k = k + 1: D(k) = 0: k = k + 1
Next
D(k) = 0: D(k + 1) = 0
wReg.SetBinaryValue &H80000001, xlKey, "UserName", D

' Update UserInitials
k = 0
ReDim D(Len(T) * 2 + 1)
For i = 1 To Len(T)
D(k) = Asc(Mid(T, i, 1))
k = k + 1: D(k) = 0: k = k + 1
Next
D(k) = 0: D(k + 1) = 0
wReg.SetBinaryValue &H80000001, xlKey, "UserInitials", D
Set wReg = Nothing

'--------------------------------
Function RegRead(ByVal RegPath)
On Error Resume Next
RegRead = CreateObject("wscript.shell").RegRead(RegPath)
If Err Then
Err.Clear
RegRead = Null
End If
On Error GoTo 0
End Function


Perso, que le nom d'utilisateur ne soit pas le mien ou que les initiales
diffèrent des miennes m'importe peu.
MP


"Esox38" a écrit dans le message de news:

Bonsoir,

Le problème n'est pas d'ouvrir Word en premier. Un script doit se lancer à
chaque nouvelle ouverture de session de XP qui reprend le login de la
personne qui ouvre la session. Vu que mon login ne correspond pas à mon
nom
et que à l'ouverture soit de Excel ou de Word etc... de plus Office ne
reprend que la première lettre de mon nom pour les intiiales.

Cela ne me convient pas et personnellement à la fin de la journée quand on
quitte la session plusieur fois cela devient pénible de saisir à nouveau
le
nom utilisateur et les initiales.

Voila pourquoi un script en VBA ou VB qui à l'ouverture change le nom et
les
initiales de l'utilisateur dans les options serait bien pratique.

Merci
--
Esox38



Bonsoir Esox38;
Oui, c'est possible avec VBA ou avec VBS, mais le plus simple est de
changer
les options Utilisateur dans Word; la base de registre sera modifiée en
conséquence et Excel utilisera les nouvelles valeurs.

MP

"Esox38" a écrit dans le message de
news:

Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de
l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et
mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro
--
Esox38









Avatar
Esox38
Bonsoir Michel,

Je te remercie pour ta réponse, qui n'est pas aussi simple que je le pensais.
Je vais tester ton script.

@+
--
Esox38



Bonjour Esox38;
A partir du moment où à chaque ouverture de session, un script modifie les
clés de registre (nom et initiales) de l'utilisateur d'Office en substituant
le nom de login et l'initiale correspondante, pour être tranquille, il eut
fallut que le nom de login corresponde au nom de l'utilisateur (par exemple,
jdurand pour Jacques Durand, ce qui donne Nom: Durand et initiales: JD).
Comme ce n'est pas le cas, que tu lances un script pour modifier ces valeurs
ou que tu les modifies dans les options d'Excel ou de Word, la pénibité sera
même pire puisqu'il te faudra lancer le script et saisir les infos voulues à
chaque ouverture de session. Dans un tel cas, pourquoi ne pas demander à
l'initiateur du script qui modifie les clés de registre lors de l'ouverture
de session de ne pas les modifier, mais simplement de les effacer; en
l'absence de ces clés lors de l'ouverture d'une application Office,
l'application demandera automatiquement la saisie du nom et des initiales.
Maintenant, il faut que tu précises davantage ton souhait. Si tu souhaites
un remplacement automatique à l'ouverture d'Excel, je ne vois qu'une
solution:
Lancement d'Excel au moyen d'un raccourci sur ton bureau, lequel raccourci
lance préalablement un script de vérification personnalisé contenant tes
données en dur (Nom et initiales pour éviter d'avoir à les saisir à chaque
fois) et qui modifie les clés de registre avec tes données personnelles en
cas de non concordance avant d'ouvrir Excel. Bien évidemment, il te sera
nécessaire de passer par cette étape à la première utilisation d'Excel si tu
veux que ces modifications soient prises en compte lorsque tu ouvres un
fichier Excel au travers de l'explorateur.
Si c'est ce que tu souhaites, réponds moi en bal perso car il te faut 2
scripts; celui décrit précédemment plus le script d'installation du
raccourci; sinon, pour un script de modification non personnalisé, recopie
les lignes suivantes dans le bloc-notes et enregistre le sous le nom que tu
veux avec l'extension .vbs.

' Check Excel.Application existence
If IsNull(RegRead("HKCRExcel.Application")) Then
MsgBox "Excel.Application object not found on this computer !", 48
WScript.Quit
End If

' Check Excel version
Dim xlKey
xlKey = Mid(RegRead("HKCRExcel.ApplicationCurVer"), 19)
' Check Office UserInfo
Const Cle1 = "SoftwareMicrosoftOffice"
Const Cle2 = ".0CommonUserInfo"
xlKey = Cle1 & xlKey & Cle2
Dim sReg, v, u, i, N, T
sReg = RegRead("HKCU" & xlKey & "UserName")
If IsNull(sReg) Then
MsgBox "Office Application not found on this computer !", 48
WScript.Quit
End If

' Actual Office UserName
For Each v In sReg
If v > 0 Then u = u & Chr(v)
Next

' Actual Office UserInitials
sReg = RegRead("HKCU" & xlKey & "UserInitials")
For Each v In sReg
If v > 0 Then i = i & Chr(v)
Next

' New Office User name and User initials
N = Trim(InputBox("Entrez nouveau nom d'utilisateur:", "Office User info",
u))
If N = "" Or N = u Then WScript.Quit
T = Trim(InputBox("Entrez vos initiales:", "Office User info", i))
If MsgBox("Remplacer " & u & " (" & i & ")" & vbLf & Space(11) & "par " & N
_
& " (" & T & ")", 32 + 4 + 256, "Change User") = vbNo Then WScript.Quit

' Update User infos
Dim k, D, Wsh, wReg
Set Wsh = CreateObject("wscript.shell")
Wsh.RegDelete "HKCU" & xlKey & "UserName"
Wsh.RegDelete "HKCU" & xlKey & "UserInitials"
Set Wsh = Nothing
Set wReg = GetObject("winmgmts:.rootdefault:StdRegProv")

' Update UserName
ReDim D(Len(N) * 2 + 1)
For i = 1 To Len(N)
D(k) = Asc(Mid(N, i, 1))
k = k + 1: D(k) = 0: k = k + 1
Next
D(k) = 0: D(k + 1) = 0
wReg.SetBinaryValue &H80000001, xlKey, "UserName", D

' Update UserInitials
k = 0
ReDim D(Len(T) * 2 + 1)
For i = 1 To Len(T)
D(k) = Asc(Mid(T, i, 1))
k = k + 1: D(k) = 0: k = k + 1
Next
D(k) = 0: D(k + 1) = 0
wReg.SetBinaryValue &H80000001, xlKey, "UserInitials", D
Set wReg = Nothing

'--------------------------------
Function RegRead(ByVal RegPath)
On Error Resume Next
RegRead = CreateObject("wscript.shell").RegRead(RegPath)
If Err Then
Err.Clear
RegRead = Null
End If
On Error GoTo 0
End Function


Perso, que le nom d'utilisateur ne soit pas le mien ou que les initiales
diffèrent des miennes m'importe peu.
MP


"Esox38" a écrit dans le message de news:

Bonsoir,

Le problème n'est pas d'ouvrir Word en premier. Un script doit se lancer à
chaque nouvelle ouverture de session de XP qui reprend le login de la
personne qui ouvre la session. Vu que mon login ne correspond pas à mon
nom
et que à l'ouverture soit de Excel ou de Word etc... de plus Office ne
reprend que la première lettre de mon nom pour les intiiales.

Cela ne me convient pas et personnellement à la fin de la journée quand on
quitte la session plusieur fois cela devient pénible de saisir à nouveau
le
nom utilisateur et les initiales.

Voila pourquoi un script en VBA ou VB qui à l'ouverture change le nom et
les
initiales de l'utilisateur dans les options serait bien pratique.

Merci
--
Esox38



Bonsoir Esox38;
Oui, c'est possible avec VBA ou avec VBS, mais le plus simple est de
changer
les options Utilisateur dans Word; la base de registre sera modifiée en
conséquence et Excel utilisera les nouvelles valeurs.

MP

"Esox38" a écrit dans le message de
news:

Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de
l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et
mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro
--
Esox38














Avatar
Ange Ounis
Je te suggère quelques lignes de code dans ton perso.xls :

'============(dans le module ThisWorkbook du perso.xls
Private Sub Workbook_Open()
Dim WdApp
Set WdApp = CreateObject("Word.Application")
With WdApp.Application
.UserName = "Prénom Nom"
.UserInitials = "PN"
End With
WdApp.Quit
Set WdApp = Nothing
End Sub
'====================================================
----------
Ange Ounis
----------

Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro


Avatar
Esox38
Bonjour,

Merci pour ta réponse, si je comprend ton code il créer un document word et
renseigne dans les options le nom utilisateur et les initiales pour toute les
applications Office?


--
Esox38



Je te suggère quelques lignes de code dans ton perso.xls :

'============(dans le module ThisWorkbook du perso.xls
Private Sub Workbook_Open()
Dim WdApp
Set WdApp = CreateObject("Word.Application")
With WdApp.Application
.UserName = "Prénom Nom"
.UserInitials = "PN"
End With
WdApp.Quit
Set WdApp = Nothing
End Sub
'==================================================== >
----------
Ange Ounis
----------

Bonsoir,

Tous les jours quand j'ouvre Excel, je dois changer le nom de l'utilisateur
et les initiales.

Comment faire pour automatiser le changement de mon nom utilisateur et mes
initiales à l'ouverture avec VBA , VBS?

Exist-il une solution?

Merci

Excel2000 XP Pro





Avatar
Ange Ounis
Tout à fait.
(A la nuance près que le code se contente de créer une instance de Word sans y
ajouter de document).
Il faut passer par Word parce que c'est la seule application Office qui permet
de modifier les initiales par VBA (PowerPoint l'autorise par la boite de
dialogue des Options mais pas, à ma connaissance, par VBA).

----------
Ange Ounis
----------

Bonjour,

Merci pour ta réponse, si je comprend ton code il créer un document word et
renseigne dans les options le nom utilisateur et les initiales pour toute les
applications Office?




Avatar
Esox38
je peux mettre le fichier dans XLSTART en macro complémentaire? je n'utilise
pas de perso.xls
--
Esox38



Tout à fait.
(A la nuance près que le code se contente de créer une instance de Word sans y
ajouter de document).
Il faut passer par Word parce que c'est la seule application Office qui permet
de modifier les initiales par VBA (PowerPoint l'autorise par la boite de
dialogue des Options mais pas, à ma connaissance, par VBA).

----------
Ange Ounis
----------

Bonjour,

Merci pour ta réponse, si je comprend ton code il créer un document word et
renseigne dans les options le nom utilisateur et les initiales pour toute les
applications Office?







Avatar
Michel Pierron
Bonjour Esox38;
Si je ne m'abuse, que ce soit en macro complémentaire ou perso.xls dans
xlStart, en procédant ainsi, tous les utilisateurs auront ton nom et tes
initiales et ensuite, c'est eux qui viendront sur le forum demander un
script...

MP

"Esox38" a écrit dans le message de news:

je peux mettre le fichier dans XLSTART en macro complémentaire? je
n'utilise
pas de perso.xls
--
Esox38



Tout à fait.
(A la nuance près que le code se contente de créer une instance de Word
sans y
ajouter de document).
Il faut passer par Word parce que c'est la seule application Office qui
permet
de modifier les initiales par VBA (PowerPoint l'autorise par la boite de
dialogue des Options mais pas, à ma connaissance, par VBA).

----------
Ange Ounis
----------

Bonjour,

Merci pour ta réponse, si je comprend ton code il créer un document
word et
renseigne dans les options le nom utilisateur et les initiales pour
toute les
applications Office?









Avatar
Ange Ounis
Je ne vois pas trop l'intérêt d'une macro complémentaire..
Ça ne représente pas plus de travail (ou de difficulté) d'enregistrer un
classeur avec ces qq lignes de code sous le nom de perso.xls et de le placer
dans ton dossier xlstart.
Je ne pense pas, contrairement à Michel, que la modification du nom
d'utilisateur et des initiales concernera quelqu'un d'autre que toi, à partir du
moment où Excel et le perso.xls sont en local sur ton poste.
Tiens nous au courant :)

----------
Ange Ounis
----------

je peux mettre le fichier dans XLSTART en macro complémentaire? je n'utilise
pas de perso.xls


1 2