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 :

Copie commentaire présent sur liste déroulante vers une autre feuille


Sujet :

Macros et VBA Excel

  1. #21
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    merci de compliquer

    Il n'y aura pas de copié collé ou autre.
    La cellule de N ne sera pas effacé non plus

    Bon pour revenir au test si il y a un commentaire ou pas...
    Je rame..
    Je me doute bien qu'il me faut faire une boucle mais les tests que je fais ne sont pas concluent.

    J'en suis (entre autre) la mais ça le fait pas
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
     
    If Target.Column = 14 And Target.Count = 1 Then
        Set c = Worksheets("List").Range("L3:L30").Find(Target, LookIn:=xlValues, LookAt:=xlWhole)
        ' If Not c Is Nothing Then MsgBox c.Comment.Text
     
        If c Is Nothing Then
     MsgBox " pas de commentaire sur la cellule"
        Else
     
         If Not c Is Nothing Then Target.Offset(, 1).Value = c.Comment.Text
     
    End If
    End If
    End Sub
    je cherche je cherche

  2. #22
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Bon...

    je pense que je tiens ta demande
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
     
    If Target.Column = 14 And Target.Count = 1 Then
        Set c = Worksheets("List").Range("L3:L30").Find(Target, LookIn:=xlValues, LookAt:=xlWhole)
        ' If Not c Is Nothing Then MsgBox c.Comment.Text
        ' If Not c Is Nothing Then Target.Offset(, 1).Value = c.Comment.Text
     If c.Comment Is Nothing Then
           MsgBox "Pas de commentaire"
        Else
           If Not c Is Nothing Then Target.Offset(, 1).Value = c.Comment.Text
        End If
     
    End If
     
    End Sub
    Maintenant faut mettre le commentaire en commentaire et plus dans la colonne d'à côté

  3. #23
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Regarde l'aide sur la méthode AddComment de l'objet Range

    PS. attention aux tests inutiles
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  4. #24
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    j'étais sur la bonne voie..

    J'avais un probleme de "mise en forme" de ma ligne de commande
    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 c As Range
     
    If Target.Column = 14 And Target.Count = 1 Then
        Set c = Worksheets("List").Range("L3:L30").Find(Target, LookIn:=xlValues, LookAt:=xlWhole)
        ' If Not c Is Nothing Then MsgBox c.Comment.Text
        ' If Not c Is Nothing Then Target.Offset(, 1).Value = c.Comment.Text
     If c.Comment Is Nothing Then
           MsgBox "Pas de commentaire"
        Else
           If Not c Is Nothing Then Target.Offset(, 0).AddComment c.Comment.Text
     
        End If
     
    End If
     
    End Sub

  5. #25
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu tâtonnes.

    1. Le test de la ligne 11 n'a pas lieu d'être. en tout cas comme tu l'as fais

    2. Target.offset(,0) c'est target. Comme si tu écrivais: Avance de 0 pas.

    3. On ne peut pas ajouter un commentaire dans une cellule qui en contient déjà un.

    4. Regarde cette proposition: On supprime éventuellement le commentaire s'il existe dans la cellule Target

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
     
    If Target.Column = 14 And Target.Count = 1 Then
        If Not Target.Comment Is Nothing Then Target.Comment.Delete
        If Target <> "" Then
            Set c = Worksheets("List").Range("L3:L30").Find(Target, LookIn:=xlValues, LookAt:=xlWhole)
            If Not c Is Nothing Then
                If Not c.Comment Is Nothing Then Target.AddComment c.Comment.Text
            End If
        End If
    End If
    End Sub
    5. Enfin, il te faudra raisonner d'abord puis coder.

    6. Je te donne une colle: Commente chaque ligne de ce code proposé pour savoir si tu as bien compris. J'attends en contre partie ta réponse
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #26
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Oui je te confirme... je tâtonne je ne connais pas du tout VBA donc je ne peux que tâtonner :p

    Pour ton point 2 : ok je ne savais pas
    Pour ton point 3 : ma cellule à l'origine n'a pas de commentaire (puisque le commentaire est dans la liste déroulante) , donc je le rajoute. Me serais je trompé quelque part ?
    Pour ton point 4 : ça me plait bien.. plus esthétique et plus fonctionnel
    Pour ton point 5 : oui tout à fait
    Pour ton point 6 : La tu es dur avec moi :p (j'ai du mal à l'exprimer logiquement)

    Je l'analyse et je te fais une réponse

    En tout cas un grand merci pour ton aide.
    Il va falloir que je me mette un peu au VBA car la logique est un peu particulière

    Amicalement

  7. #27
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Petit_Jedi Voir le message
    Pour ton point 6 : La tu es dur avec moi :p (j'ai du mal à l'exprimer logiquement)
    Commenter un code est une nécessité, même pour ceux qui ont de l'expérience.
    Quand on doit reprendre un code deux ans après pour le modifier ou l'adapter à un autre usage, on est bien content d'avoir mis des commentaires pour se guider soi-même.
    Et je ne parle même pas du cas où le code doit être repris par la suite par un collègue...

    Les commentaires dans un code, ce n'est pas de de l’esthétique mais du fonctionnel; ce n'est pas de la bienveillance mais du pragmatisme.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #28
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pour ton point 3 : ma cellule à l'origine n'a pas de commentaire (puisque le commentaire est dans la liste déroulante) , donc je le rajoute. Me serais je trompé quelque part ?
    Initialement oui

    Mais si tu as choisi une valeur X, tu auras le commentaire correspondant. Tout à coup l'utilisateur se rend compte qu'il fait une erreur lors du choix de la valeur X. Quand il veut corriger le X par Y, le commentaire correspondant à X est déjà là et celui de Y ne peut pas être ajouté sur un déjà existant.
    2 issues: Soit supprimer l'ancien et ajouter le nouveau, soit ajouter un nouveau si la cellule n'a pas de commentaire ou modifier si elle en a.

    Pour ton point 6 : La tu es dur avec moi :p (j'ai du mal à l'exprimer logiquement)
    Je suis déçu
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #29
    Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Mercatog... j'ai pas dis que je n'allais pas le faire
    Je vais le faire pour toi (et pour moi) pour que tu vois quand même que ce n'est pas juste du copié collé et que j'ai essayé d'apprendre de e que tu me montrais et me faisais faire

Discussions similaires

  1. Réponses: 16
    Dernier message: 23/06/2016, 16h17
  2. Réponses: 1
    Dernier message: 22/04/2014, 16h32
  3. [XL-2007] Liste déroulante d'une autre feuille
    Par itwgreg dans le forum Excel
    Réponses: 5
    Dernier message: 31/07/2013, 11h48
  4. Réponses: 3
    Dernier message: 24/11/2008, 14h09
  5. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45

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