Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Nom utilisateur dans fichier partage

  • Initiateur de la discussion Initiateur de la discussion janakka
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

janakka

XLDnaute Nouveau
Bonjour à tous,

Voilà dans ma société on a un fichier excel partagé avec d'autres collègues.
Je voudrai savoir s'il est possible d'avoir le nom de l'utilisateur qui à modifier certaine cellule.



Par exemple je voudrai que sur la cellule D2 apparaisse le nom de l'utilisateur qui à modifier les cellules B2 et C2 etc.

Est il également possible si l’utilisateur porte le nom de "TOTOVICH" que la cellule fasse apparaitre le nom "TOTO".


Merci pour votre aide
 
Re : Nom utilisateur dans fichier partage

Bonjour Janakka.
Oui il est possible d'ajouter le nom.
Pour modifier l'utilisateur Totovich et Toto, tout dépend des conditions de modification des noms. Si on ne doit garder que les quatre premiers caractères, c'est facile.
 
Re : Nom utilisateur dans fichier partage

Bonjour thebenoit59
Merci pour ta réponse.
Pourrais tu me dire comment faire stp.
Pour le nom je souhaiterai un trigramme ex utilisateur Dupont Michel doit donné DM1 par exemple.

Merci encore une fois

Bonjour Janakka.
Oui il est possible d'ajouter le nom.
Pour modifier l'utilisateur Totovich et Toto, tout dépend des conditions de modification des noms. Si on ne doit garder que les quatre premiers caractères, c'est facile.
 
Re : Nom utilisateur dans fichier partage

Bonjour Janakka.

Pour noter le nom d'utilisateur, on utilise la méthode suivante :

Code:
Range("a1").Value = Application.UserName

Un fichier serait intéressant pour adapter à tes besoins.
Pour le trigramme, il faut voir comment sont enregistrés les noms d'utilisateurs, une liste d'exemple serait intéressante.
 
Re : Nom utilisateur dans fichier partage

Bonjour thebenoit59,

ok voici une partie du fichier car celui ci est lourd.

Le nom de l'utilisateur doit apparaitre dans la colonne FNP Util.
Exemple des que la cellule G3 ou H3 ou I3 ou J3 est modifié (contient un X) la cellule K3 doit indiqué le nom de l'utilisateur qui a cocher la ou le groupe de cellules . Il faut savoir que les cellule I3 et J3 sont déterminantes c'est à dirre que si les cellules G3 à H3 ont été cochées par un utilisateurs mais que les cellules I3 ou j3 ont été cochées par un autre c'est le nom de cet utilisateur qui doit apparaitre dans la cellule K3

La même chose doit être appliquée à la partie intitulée CCA

J’espère avoir eté assez explicite



Pour noter le nom d'utilisateur, on utilise la méthode suivante :

Pour les trigramme il s’agit de la première lettre du prénom+les 2 première lettre du Nom
Les utilisateurs sont enregistrés de la manière suivante : Prénom-Nom
Richard-Airray sont trigramme doit être RAI
Sylvain-Bravel son trigramme doit être SBR
Nathalie-Parez son trigramme doit etre NPA
 

Pièces jointes

Dernière édition:
Re : Nom utilisateur dans fichier partage

Bonjour Janakka.
Sans trop réfléchir, on pourrait faire ainsi :

Code:
Dim Ligne As Long, Colonne As Long

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("g3:j71")) Is Nothing Then
Ligne = Target.Row: Colonne = Target.Column
    If Target.Value = "" And WorksheetFunction.CountA(Range(Cells(Ligne, "G"), Cells(Ligne, "J"))) = 0 Then Cells(Ligne, "K").Value = "": Exit Sub
    If UCase(Target.Value) <> "X" Then Exit Sub
    If Colonne = 9 Or Colonne = 10 Then
        Inscription_Nom
    ElseIf (Colonne = 7 Or Colonne = 8) And WorksheetFunction.CountA(Cells(Ligne, "I"), Cells(Ligne, "J")) = 0 Then
        Inscription_Nom
    End If
End If
End Sub

Private Sub Inscription_Nom()
Dim Utilisateur As String
    If InStr(Application.UserName, "-") = 0 Then
        Utilisateur = Application.UserName
    Else:
        Utilisateur = Left(Application.UserName, 1) & Mid(Application.UserName, InStr(Application.UserName, "-") + 1, 2)
    End If
    Cells(Ligne, "K").Value = Utilisateur
End Sub
 
Re : Nom utilisateur dans fichier partage

Merci thebenoit59,
Ça marche très bien.
Par contre j'ai essayé d'adapter ton code pour la partie CCA mais cela n'a pas fonctionné

Voici mon adaptation. Pourrais tu me dire ce qui ne va pas car je dois avouer que je suis largué

Code:
Dim Ligne As Long, Colonne As Long

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("g3:j71, l3:071")) Is Nothing Then
Ligne = Target.Row: Colonne = Target.Column
    If Target.Value = "" And WorksheetFunction.CountA(Range(Cells(Ligne, "G, L"), Cells(Ligne, "J, O"))) = 0 Then Cells(Ligne, "K, P").Value = "": Exit Sub
    If UCase(Target.Value) <> "X" Then Exit Sub
    If Colonne = 9 Or Colonne = 10 Or Colonne = 14 Or Colonne = 15 Then
        Inscription_Nom
    ElseIf (Colonne = 7 Or Colonne = 8 Or Colonne = 12 Or Colonne = 13) And WorksheetFunction.CountA(Cells(Ligne, "I, N"), Cells(Ligne, "J, O")) = 0 Then
        Inscription_Nom
    End If
End If
End Sub

Private Sub Inscription_Nom()
Dim Utilisateur As String
    If InStr(Application.UserName, "-") = 0 Then
        Utilisateur = Application.UserName
    Else:
        Utilisateur = Left(Application.UserName, 1) & Mid(Application.UserName, InStr(Application.UserName, "-") + 1, 2)
    End If
    Cells(Ligne, "K, P").Value = Utilisateur
End Sub
 
Re : Nom utilisateur dans fichier partage

Sans chercher d'optimisation :

Code:
Dim Ligne As Long, Colonne As Long, Col As Long

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("g3:j71")) Is Nothing Then
Ligne = Target.Row: Colonne = Target.Column: Col = 11
    If Target.Value = "" And WorksheetFunction.CountA(Range(Cells(Ligne, "G"), Cells(Ligne, "J"))) = 0 Then Cells(Ligne, "K").Value = "": Exit Sub
    If UCase(Target.Value) <> "X" Then Exit Sub
    If Colonne = 9 Or Colonne = 10 Then
        Inscription_Nom
    ElseIf (Colonne = 7 Or Colonne = 8) And WorksheetFunction.CountA(Cells(Ligne, "I"), Cells(Ligne, "J")) = 0 Then
        Inscription_Nom
    End If
ElseIf Not Application.Intersect(Target, Range("l3:o71")) Is Nothing Then
Ligne = Target.Row: Colonne = Target.Column: Col = 16
    If Target.Value = "" And WorksheetFunction.CountA(Range(Cells(Ligne, "L"), Cells(Ligne, "O"))) = 0 Then Cells(Ligne, "P").Value = "": Exit Sub
    If UCase(Target.Value) <> "X" Then Exit Sub
    If Colonne = 14 Or Colonne = 15 Then
        Inscription_Nom
    ElseIf (Colonne = 12 Or Colonne = 13) And WorksheetFunction.CountA(Cells(Ligne, "L"), Cells(Ligne, "O")) = 0 Then
        Inscription_Nom
    End If
End If
End Sub

Private Sub Inscription_Nom()
Dim Utilisateur As String
    If InStr(Application.UserName, "-") = 0 Then
        Utilisateur = Application.UserName
    Else:
        Utilisateur = Left(Application.UserName, 1) & Mid(Application.UserName, InStr(Application.UserName, "-") + 1, 2)
    End If
    Cells(Ligne, Col).Value = Utilisateur
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
286
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…