colorier les cellules d'un claseur partagé en fonction de l'user qui a fait une modif

rugbyman

XLDnaute Nouveau
Bonjour à tous,

Je viens vous soumettre un probleme que je n'arrive pas à résoudre, et qui plus est, je ne sais pas comment l'attaquer !

J'ai un fichier excel qui est partagé, dans lequel plusieurs utilisateur modifient les cellules.

au lieu de suivre les modifications a l'écran, je souhaiterais réaliser une macro qui colorierait les cellules en fonction de l'utilisateur qui l'a modifiée en dernier.

voici le code que j'ai commencé à écrire, mais qui ne fonctionne pas.

Value = Application.UserName
If Value = SERGE Then
Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0

If Value = False Then
Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
.PatternTintAndShade = 0

de plus, il faudrait dans ma macro pouvoir sélectionner le document à contrôler.

si quelqu'un a une petite idée de la façon dont je pourrait m'y prendre, ca serait très gentil !

Bonne fin de journée à tous et merçi d'avoir pris le temps de me lire.

rugbyman.
 

Papou-net

XLDnaute Barbatruc
Re : colorier les cellules d'un claseur partagé en fonction de l'user qui a fait une

Bonsoir rugbyman,

Plusieurs erreurs ou omissions dans ton code, mais avant tout, un conseil :

Évites de nommer une variable avec un mot réservé par VBA Je te conseille de remplacer "Value" par "Nom", par exemple.

Voici donc comment j'écrirais ta macro :

Code:
Sub TaMacro()
Dim Nom As String
Nom = Application.UserName
If Nom = "SERGE" Then
  With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 65535
    .TintAndShade = 0
    .PatternTintAndShade = 0
  End With
End If
End Sub

Tu peux recopier la condition If...Then pour chaque utilisateur potentiel.

Par contre, je ne vois pas ce que tu veux faire avec la condition If Value = False Then car tu ne peux attribuer une valeur booléenne à la variable Value qui est du type chaîne par défaut dans affectation.

Je ne vois pas ce que tu veux dire par :

de plus, il faudrait dans ma macro pouvoir sélectionner le document à contrôler.

Espérant avoir réussi à t'aider.

Cordialement.
 

rugbyman

XLDnaute Nouveau
Re : colorier les cellules d'un claseur partagé en fonction de l'user qui a fait une

Bonsoir papou-net.

Je te remercie pour ta réponse. C'est vrai que mon vba est un peu rouillé, car pas pratiqué depuis plusieurs années.

Pour la condition if value = false, je voulais définir un fond transparent.

De plus, il faudrait que dans ma macro, je renseigne le chemin d'accès à mon fichier (ex : \\portable1\C\stats\test.xlsx

voilà.

je te remercie pour ton aide.

Cordialment,

Rugbyman
 

Papou-net

XLDnaute Barbatruc
Re : colorier les cellules d'un claseur partagé en fonction de l'user qui a fait une

RE rugbyman,

J'ai repris ta macro dans sa totalité. Je pense que ton code initial est le résultat de l'enregistrement d'une macro ? Si c'est le cas, il y a moyen de faire beaucoup plus court :

Code:
Sub TaMacro()
Select Case Application.UserName
  Case Is = "SERGE"
    Selection.Interior.ColorIndex = 4 ' Vert
  Case Is = "JEAN"
    Selection.Interior.ColorIndex = 6 ' Jaune
  Case Is = "ANTOINE"
    Selection.Interior.ColorIndex = 8 ' Bleu
  Case Else
    Selection.Interior.ColorIndex = xlAutomatic ' Transparent
End Select
End Sub

J'espère que ça répondra à ton besoin.

Je n'ai toujours pas compris le deuxième point : qu'entends-tu par "renseigner le chemin d'accès" ? Tu veux que la macro agisse sur le fichier de ta macro ou sur le fichier correspondant à ce chemin ? Ca reste très flou dans mon esprit.

A bientôt.

Cordialement.
 

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro