XL 2010 Nom utilisateur dans fichier partage

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.

Capture EXCEL.PNG

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
 

thebenoit59

XLDnaute Accro
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.
 

janakka

XLDnaute Nouveau
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.
 

thebenoit59

XLDnaute Accro
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.
 

janakka

XLDnaute Nouveau
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
Bonjour Janakka.

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

Merci à toi

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.
 

Pièces jointes

  • Avancement.xls
    38 KB · Affichages: 52
Dernière édition:

thebenoit59

XLDnaute Accro
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
 

janakka

XLDnaute Nouveau
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
 

thebenoit59

XLDnaute Accro
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
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 333
Membres
103 819
dernier inscrit
vinz_kid