IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment changer la couleur d'une cellule lorsqu'elle a été modifiée [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut Comment changer la couleur d'une cellule lorsqu'elle a été modifiée
    Bonjour à tous,

    J'ai un fichier destiné à être utilisé par plusieurs utilisateurs. La gestion des droit d'accès est gérée via un userform.

    Je souhaiterais que la couleur de fond des cellules modifiées par un utilisateur change pour être facilement identifiable lorsqu'un autre utilisateur ouvrira le fichier.
    Je ne sais pas si cela est possible...

    Quelqu'un a-t-il une solution ?

    Nota : une solution encore plus efficace serait d'avoir un onglet dans lequel les modifications apportées sur chaque cellule sont listées avec le nom de l'utilisateur avec la date et l'heure... mais j'en demande peut-être un peu trop!
    Dans un premier temps, la solution avec changement de la couleur de fond des cellules me conviendrait parfaitement!

    Merci pour votre aide...

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En utilisant par exemple la procédure événementielle Workbook_SheetChange
    A placer dans l'objet ThisWorkbook du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     ' Placer le code ici"
     MsgBox "Vous avez modifié la cellule " & Target & " de la feuille " & Sh.Name
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut
    Bonjour

    Merci pour l'info, je vois à quel endroit je devrai placer le code.

    Mais je souhaiterai en fait que lorsqu'une cellule est modifiée (dans la feuill1 par exemple), la couleur de fond de cette cellule change... en passant au rouge par exemple. Je voudrais que cela s'applique à l'ensemble des cellules de la feuille : dès qu'on modifie le contenu d'une des cellules de la Feuill1, le fond de la cellule modifiée devient rouge...

    C'est pour écrire ce code que je sèche...

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu utilises l'enregistreur de macro, qui doit être un réflexe lorsqu'on cherche du code, il va te donner ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro1()
    ' Macro1 Macro
    ' Macro enregistrée le 28/01/2011 par Corona
        With Selection.Interior
            .ColorIndex = 3
            .Pattern = xlSolid
        End With
    End Sub
    Selection représente la cellule où l'on se trouve donc dans le programme que tu veux créer la cellule que l'utilisateur à modifié.
    Tu vas donc placer dans la procédure événementielle ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     ' Placer le code ici"
     With Target.Interior
     .ColorIndex = 3
     .Pattern = xlSolid
     End With
    End Sub
    Target étant dans cette procédure la cellule qui a été modifiée, il suffit de remplacer Selection par [B]Target/B].
    CQFD
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut
    Merci pour ces explications et les lignes de codes qui vont avec !
    ça marche nickel !

    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment changer la couleur d'une cellule lorsqu'elle a été modifiée
    Par julbul dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/03/2011, 09h49
  2. comment faire changer la couleur d'une cellule
    Par eddycool dans le forum Excel
    Réponses: 8
    Dernier message: 03/11/2009, 19h08
  3. Réponses: 4
    Dernier message: 01/10/2005, 11h03
  4. Réponses: 7
    Dernier message: 28/06/2005, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo