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 :

Ajout commentaire cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut Ajout commentaire cellule
    bonjour,

    je voudrais ajouter un commentaire dans une cellule. J'ai commencé par quelques tests. Mais... rien !!!
    Un grand merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
     
    Dim x As Variant
    x = Range("a1").Value
    Range("a2").ClearComments
    Range("a2").AddComment x
     
    End Sub

  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 138
    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 138
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et comme ceci, cela ne va pas mieux ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("a2").AddComment "x"
    Attention tout de même qu'il s'agit de la cellule A2 de la feuille active
    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 éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    cela fonctionne mais cela affiche x et moi je voudrais afficher le valeur qui se trouve dans la cellule A1

  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 138
    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 138
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Chez moi, cela fonctionne parfaitement mais si tu souhaites que cela se mette à jour lorsque l'on modifie la valeur de A1, il faut utiliser la procédure événementielle Worksheet_Change

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$A$1" Then
         With Range("a2")
         .ClearComments
         .AddComment Target.Value
         End With
      End If
    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

  5. #5
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    cela bloque à la ligne 5
    il me dit erreur 1004 / erreur définie par l'application ou par l'objet

  6. #6
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    en fait si dans A1 il y a du texte cela fonctionne mais s'il y a "1234" par exemple cela coince

  7. #7
    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 138
    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 138
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
      Dim V As String
      If Target.Address = "$A$1" Then
         With Range("a2")
         .ClearComments
          If IsNumeric(Target.Value) Then V = Str(Target.Value) Else V = Target.Value
         .AddComment V
         End With
      End If
    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

  8. #8
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    super merci
    je continue mes recherches car je voudrais que le resultat dans le commentaire soit le résultat d'une recherche (index/equiv) de la valeur dans A1

  9. #9
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    C'est peut être du bricolage mais pourquoi ne pas réaliser cette formule en A2 (par exemple) ?

    Ceci afin de faire apparaître le résultat de A2 en commentaire, plutôt que A1.

  10. #10
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
      Dim V As String
      If Target.Address = "$B$2" Then
         With Range("B2")
         .ClearComments
          If IsNumeric(Target.Value) Then V = Str(Target.Value) Else V = Target.Value
         .AddComment V
         End With
      End If
    End Sub

  11. #11
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Je vais essayer de vous expliquer ce que je voudrais faire, peut être pourriez vous m'aider.
    J'ai plusieurs feuilles qui ont la même configuration (1feuille/mois). Dans les cellules F15àF40 on indique un code (C, B,...)
    dans une feuille unique, dans les cellules A3àB23 j'ai la signification des codes (ce tableau ne peut être modifié) en col A => le texte et en col B ==> le code (B, C,....)

    Je voudrais indiquer en commentaire le résultat de la recherche et si possible avoir un code unique pour tous le classeur

    suis je clair ? J'espère :-)

  12. #12
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    A ma connaissance je vois 3 solutions :

    - WorksheetFunction : VLOOKUP en déplaçant la colonne B (Celle avec les codes B, C ...) en colonne A pour pouvoir effectuer une recherche

    - Boucle : Vu q'il n'y a pas beaucoup de données, j'aurais fait 2 boucles. La première sur les codes dans la feuille des données mensuelles. La seconde imbriquée dans la première, sur la correspondance Codes-Texte (avec un if pour pouvoir récupérer le texte correspondant au code)

    - Scripting Dictionnary : Très rapide mais là je ne saurais t'éclairer sur ce sujet
    Si ça t'intéresse, tu peux suivre le lien ci-dessous
    http://boisgontierjacques.free.fr/pa...ctionnaire.htm

    En espérant t'avoir donner des pistes,

  13. #13
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    quelque chose comme cela :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim V As String
    Dim a As Integer
     
    For a = 15 To 40 'num ligne dans la feuille
     
      If Target.Address = ("F" & a) Then
         With Range("F" & a)
         .ClearComments
          If IsNumeric(Target.Value) Then V = Str(Target.Value) Else V = Target.Value
         .AddComment V
         End With
      End If
    Next
     
    End Sub

  14. #14
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Oui mais avec ça tu ne vas récupérer que le code et non pas sa signification

    Essaye avec ça :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
      Dim V As String
      Dim a as integer
      Dim b as integer
     
    For a = 15 To 40
     
      If Target.Address =("F" & a)  Then
     
         With Range("F" & a)
     
         .ClearComments
     
            for b = 3 to 23
     
               if target.value=worksheets(2).cells(b,2) then
     
                  V=worksheets(2).cells(b,1).value
                  .AddComment V
                  end sub
     
               end if
     
            next b
     
         End With
     
      End If
     
    next a
    End Sub
    Je crains tout même que ton fichier soit ralenti avec ça ...

    Edit : Evidemment je ne l'ai pas précisé mais réaffecte le worksheets(2) au nom de ta feuille

  15. #15
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    marche pas !!

  16. #16
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Citation Envoyé par rossemma Voir le message
    marche pas !!
    Ok mais qu'est ce qu'il se passe ?

    Une erreur se produit ?
    Rien ne se passe ?

  17. #17
    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 138
    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 138
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    @Trystan441
    Le test logique de la ligne de code ci-dessous ne renverra jamais True car la propriété Address sans autres arguments renvoie une référence absolue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Address =("F" & a)  Then
    @rossemma
    marche pas !!
    Cela ne veux strictement rien dire. Un minimum d'explication sur ce qui ne fonctionne pas ne serait pas superflu
    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

  18. #18
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Le test logique de la ligne de code ci-dessous ne renverra jamais True car la propriété Address sans autres arguments renvoie une référence absolue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Address =("F" & a)  Then
    Ceci explique cela !
    Du coup je suis perdu, comment tester que la cellule appartient bien à la zone désirée ?

  19. #19
    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 138
    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 138
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Du coup je suis perdu, comment tester que la cellule appartient bien à la zone désirée ?
    Si tu places ton curseur de souris sur la propriété Address et que tu cliques sur la touche de fonction F1 tu auras une aide sur la syntaxe de celle-ci avec des exemples

    Extrait des premières lignes de l'aide
    Range.Address, propriété
    Cette propriété renvoie une valeur de type String qui représente la référence de la plage dans le langage de la macro.
    Syntaxe
    expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
    Donc deux petits exemples
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debug.Print Feuil1.Range("A2").Address                     ' Renvoie $A$2
    Debug.Print Feuil1.Range("A2").Address(RowAbsolute:=False) ' Renvoie $A2
    [EDIT]
    Si le code doit fonctionner sur n'importe quelle ligne de la colonne F et pas des autres colonnes, le test doit se faire sur le numéro de colonne

    Exemple d'un code qui n'affichera l'adresse de la cellule sélectionnée que si la sélection est faite sur une cellule de la colonne F uniquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Target.Column = 6 Then
         MsgBox "Vous avez sélectionné la cellule " & Target.Address
      End If
    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

  20. #20
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    je continue mes recherches et vient un problème. comment retranscrire cette formule en vba?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI($F15<>"";INDEX(Divers!$A$3:$B$23;EQUIV($F15;Divers!$B$3:$B$23;0);1);"")
    Merci beaucoup

Discussions similaires

  1. [XL-2003] Adapter la largeur du commentaire ajouté à une cellule
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/04/2011, 11h20
  2. Recherche logiciel ajout commentaires sur pdf
    Par keiserjo dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 19/11/2009, 21h58
  3. ajouter une cellul dans stringGrid
    Par nessing dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/07/2007, 01h19
  4. [WEB I] Ajouter Commentaire(s) dans un document
    Par Malala dans le forum Webi
    Réponses: 3
    Dernier message: 27/06/2007, 16h09
  5. Ajouter une cellule à une selection
    Par madislak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2006, 09h09

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