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 :

VBA-E modification de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr;

    avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    est-ce que je peux gérer la modif de la cellule quand j'ajoute un commentaire à la cellule ?

    CDT

    précisions:

    je cherche à copier la cellule d'une colonne dés qu'on ajoute un commentaire à cette cellule.

    Bjr,

    Est-il possible de créer un évènement qui réagisse à l'ajout d'un commentaire à une cellule (s'il n'existe pas déjà) ?

    Cdt

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    L'événement n'existe pas en tant que tel. Par contre tu peux utiliser l'événement SelectionChange de la feuille de calculs pour mémoriser d'abord, comparer ensuite, ce qui se trouve dans le commentaire de la cellule. Mais ce n'est qu'un bricolage.
    Consiste à déclarer une variable en public dans la feuille de code de la feuille de calculs puis
    dans l'événement SelectionChange,
    - à vérifier l'adresse de la cellule
    - à vérifier la présence d'un commentaire
    Si le commentaire existe,
    - à vérifier si la variable contient le même texte que précédemment.
    - et si oui ou si non (c'est toi qui vois) faire ce que tu as à faire
    Un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public msg as string
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        if target.count > 1 then exit sub
        if msg <> range("B3").comment.text then
            'ton code pour faire tes petites affaires
            msg = range("B3").comment.text
            msgbox msg 'pour tester
        end if
    End Sub
    Bonne soirée

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Tu peux éventuellement détourner le click sur les barres d'outils, dans le module ThisWorkbook:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim WithEvents WatchForComment As CommentEvent
     
    Private Sub WatchForComment_CommentAdded(Target As Range)
        MsgBox "Nouveau commentaire dans la cellule:" & Target.Address
    End Sub
     
    Private Sub Workbook_Open()
        Set WatchForComment = New CommentEvent
    End Sub
    Dans un module de classe nommé CommentEvent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Dim WithEvents AddButton1 As CommandBarButton
    Dim WithEvents AddButton2 As CommandBarButton
     
    Event CommentAdded(Target As Range)
     
    Private Sub Class_Initialize()
        With Application.CommandBars
            Set AddButton1 = .FindControl(, 1589) 'Les barres d'outils
            Set AddButton2 = .FindControl(, 2031) 'Le menu contextuel
        End With
    End Sub
     
    Private Sub AddButton1_Click(ByVal Ctrl As Office.CommandBarButton, _
                                    CancelDefault As Boolean)
        AddComment
        CancelDefault = True
    End Sub
     
    Private Sub AddButton2_Click(ByVal Ctrl As Office.CommandBarButton, _
                                    CancelDefault As Boolean)
        AddComment
        CancelDefault = True
    End Sub
     
    Private Sub AddComment()
        Dim CommentText As String
        CommentText = InputBox("Insérer un commentaire")
        If Not CommentText = vbNullString Then
            With ActiveCell
                .AddComment
                .Comment.Text CommentText
            End With
            RaiseEvent CommentAdded(ActiveCell)
        End If
    End Sub
    Compatible avec Excel 2000 à 2003.

    Cordialement,

    Tirex28/

  4. #4
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr,

    Merci à tous les deux.Je vais tester.

    Pour Tirex, mon but est de déclencher du code au moment du rajout commentaire cellule (comme un byval).
    Cdt

    Ousk, le if ne suffit pas il sort une erreur 91 s'il n'y a pas de commentaire au départ (ce qui peut arriver).Faut peut-etre rajouter on error ?

  5. #5
    Membre confirmé Avatar de bernard38
    Inscrit en
    Février 2006
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 158
    Par défaut
    Bjr,

    J'ai testé mais ce n'est pas réellement ce que je cherche:
    Je veux déclencher une action au moment ou j'ajoute un commentaire ou si j'en supprime un quel que soit son contenu.

    Cdt

Discussions similaires

  1. VBA -Détection de modification de cellule
    Par gwen.s dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/04/2010, 09h22
  2. [VBA-Excel] modification automatique de la couleur des cellules
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2008, 15h30
  3. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48
  4. [VBA-E] Fusion de cellule
    Par Nicos77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2004, 13h24
  5. [VBA] Les propriétés de cellule dans Excel
    Par Kylen dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 05/07/2004, 23h02

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