Excel rechV valeur+commentaire

Résolu
titi42 -  
jean-pierre34 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Lorsque je fais une formule rechercheV, je récupère le contenu de la cellule sans son commentaire.
Existe-il une formule/matrice (je ne sais pas faire les matrices) me permettant de récupérer la cellule avec son commentaire?
J'utilise Excel 2007.
Merci pour votre aide.
A voir également:

18 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir novicelive,

Tiens, j'avais oublié que j'avais fait ça moi... Ca fait plaisir de voir que ça interesse encore du monde :-)

Voici une nouvelle version complétée et qui marche donc qu'il y ait ou non un commentaire sur la cellule source.

Fonction personnalisée copiant la valeur d'une cellule et son commentaire :
CopierAvecCommentaire.xls
N'est pas récupéré : la mise en forme du commentaire (police, taille et attributs police, couleurs,...).

eric
1
JF24
 
merci eric, je suis moi aussi à la recherche d'une formule pour copier une cellule avec le commentaire, et ta formule fonctionne bien mais comme le dit "novicelive" (Un petit hic quand même quand la cellule source n'a plus de commentaires l'ancien est toujours présent et n'est pas effacé dans la cellule destination.)
Est ce que tu aurais une solution????
novicelive dit qu'il faut rajouter ".ClearComments" au code après la seconde ligne l'instruction, mais ".ClearComments" y est déjà et celà n'efface pas l'ancien commentaire.

merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Recherchev() ne te ramène que le contenu de la cellule effectivement.
Un copier/coller ou couper/coller t'emmene le commentaire mais aucune formule (à ma connaissance) ne te permet de le faire.
Il faut une macro en vba

eric
0
titi42
 
Slt ERIC,
Merci pour ta réponse.
Saurais-tu me donner la marche à suivre pour effectuer cette macro ?
Merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Je t'ai fait une fonction personnalisée qui demande en paramètre une référence de cellule et qui retourne la valeur de la cellule et ajoute le commentaire.
Les dimensions du commentaire sont celles du commentaire source, ainsi que sa 'visibilité'. Si tu préféfères qu'il soit toujours masqué par défaut tu peux remplacer la ligne concernée par Range(AdrAppelFn).Comment.Visible = false
Bien sûr il va falloir revoir le fonctionnement de ta formule de façon à récupérer la référence de la cellule recherchée au lieu de son contenu. Donc utiliser des combinaisons equiv() et index() à la place de recherchev()
Function CopierAvecCommentaire(Source As Range)
    Application.Volatile
    AdrAppelFn = Range(Parent.Caller.Address(RowAbsolute:=False, columnAbsolute:=False))
    Range(AdrAppelFn).ClearComments
    Range(AdrAppelFn).AddComment
    Range(AdrAppelFn).Comment.Text Text:=Source.Comment.Text
    Range(AdrAppelFn).Comment.Shape.Height = Source.Comment.Shape.Height
    Range(AdrAppelFn).Comment.Shape.Width = Source.Comment.Shape.Width
    Range(AdrAppelFn).Comment.Visible = Source.Comment.Visible
    CopierAvecCommentaire = Source.Value
End Function

Cette fonction est à coller dans un module et non dans la feuille.
Si le commentaire source est modifié il faut qu'il y ait un recalcul de la feuille pour que la copie soit mise à jour. Soit une cellule qui est modifiée, soit faire F9 pour forcer.
A ta disposition si tu as besoin de plus d'explication
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titi42
 
Salut,
Bon ça fait un moment que j'essaie mais je n'arrive pas à mettre ta solution en place...

Je vais essayer d'être synthétique :

1/ Copier/coller la "Function" dans le module c'est OK (c'est dans MS Virtual Basic n'est-ce pas?)

2/ Pour ce qui est des autres aspects "masquage" et recalcul", c'est OK aussi

3/ Je bloque quand tu dis "Bien sûr il va falloir revoir le fonctionnement de ta formule de façon à récupérer la référence de la cellule recherchée au lieu de son contenu. Donc utiliser des combinaisons equiv() et index() à la place de recherchev()".
En fait je ne vois pas exactement ce qu'il faut faire et je ne connais pas du tout les fonctions index et equiv...

>> Pourrais tu me donner un exemple de la formule finale qu'il faut taper si je souhaite avoir le résultat que je recherche en A1 par ex?

Encore merci pour ton aide !!
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

Effectivement j'ai des difficultés à la mettre en oeuvre aussi. Je ne récupère pas la cellule d'appel de la fonction alors que ça réagissait bien lors des tests...
Je cherche pourquoi ce soir ou demain et je te recontacte
eric
0
novicelive Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

L'intéret na pas de limite de temps, les bonnes choses ne se perdent jamais.

Merci de cette réponse rapide, je me suis empressé de tester.
Un petit hic quand même quand la cellule source n'a plus de commentaires l'ancien est toujours présent et n'est pas effacé dans la cellule destination.

Il faut rajouter au code après la seconde ligne l'instruction ".ClearComments" pour effacer les précédants commentaires.

Cordialement
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
J'y avais songé mais je me suis dit justement l'inverse, si on a un commentaire dans la cellule de destination est-ce interessant de le perdre car il n'y en a pas dans la cellule source.
Je vais laisser mûrir pour l'instant, ou peut-être une variable optionnelle....
Tu as pu adapter à tes besoins c'est l'essentiel.
eric
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour JF24,

Si tu veux que la suppression d'un commentaire suive dans la cellule ayant la fonction personnalisée inverse les lignes if... et celle avec le .clearcomments pour obtenir :
    Range(AdrAppelFn).ClearComments
    If Not Source.Comment Is Nothing Then


Ensuite, comme la fonction est volatile, n'importe quel saisie dans une cellule ou même un suppr dans une cellule vide forcera la mise à jour de tous les commentaires.

eric
0
JF24
 
Merci beaucoup eriic ça fonctionne!, si un jour, tu as une solution pour une actualisation automatique, fait moi signe!

merci encore

JF
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
hummmm, n'espère pas trop ;-)
Si c'était toujours les même cellules en cause ça pourrait être fait en macro mais tu perds la souplesse d'une fonction personnalisée.
Et en restant fonction personnalisée ça nécessiterait une gestion beaucoup trop lourde en vba pour que ce soit interessant (plusieurs heures de boulot pour éviter un suppr ou une simple saisie qui remet tout à jour...)
0
JF24
 
ok, de toute façon, ça me suffit largement!

merci beaucoup

JF
0
JF24
 
As tu remarqué Eriiic, que quand on fait F9 (actualisé), les commentaires se copie sur les autres feuilles (feuil2, feuil3 ect...)
est ce que tu aurais une solution?

merci

JF24
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

C'est vicieux ça.... Non je n'avais pas remarqué.
Voici un correctif :
CopierAvecCommentaire.xls

eric
0
JF24
 
Re bonsoir Eriiic

ça marche, mais le problème maintenant, si je fais cette formule sur la feuil1:

=CopierAvecCommentaire(Feuil2!C6) ça ne marche pas

Désolé

Aurais tu une solution?

Merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
essaie encore...
CopierAvecCommentaire.xls
0
JF24
 
Bonjour,
Merci beaucoup Eriiic ça marche!

merci
JF24
0
JF24
 
Bonjour, Eriic,
Désolé, j'ai encore un petit souci.
La formule fonctionne parfaitement, mais les commentaires des autres feuilles disparaisses ex...

sur la feuil1 exemple: cellule A17 je mets 12 avec un commentaire
sur la feuil2: je mets dans une cellule exemple C1 =CopierAvecCommentaire(A17) cela fonctionne parfaitement, mais le problème c'est que sur la feuil3, si en C1 j'ai déjà un commentaire ou que j'en rajoute un, il disparait ainsi que sur la feuil4 ect....

Aurais tu un solution?

merci encore

JF
0
JF24
 
J'ai oublié de te dire que j'ai rajouté :Range(AdrAppelFn).ClearComments
dessous:AdrAppelFn = Parent.Caller.Address()
pour que le commentaire disparaisse, quand la cellule original n'a plus de commentaire.

merci

JF24
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Pas sûr du résultat mais teste avec cette version modifiée :
CopierAvecCommentaire.xls

eric
0
JF24
 
Merci beaucoup Eriic, ça marche!

JF24
0
FiCuS
 
Bonjour, Merci bien pour vos réponses, ça m'a beaucoup aidé. Cependant, j'ai un petit problème pour aller récupérer une info dans une autre feuille.

Avec cette commande, je récupère bien ce que je j'ai en W9 de 3ème feuille:

=CopierAvecCommentaire(Sheet3!W9)

Comment faire pour remplacer le "9" par des coordonnés sur la feuille 1?
Ça doit être un truc du style:

=CopierAvecCommentaire(Sheet3!W(Sheet1!E14))

Voyez vous ce que je veut dire?
Merci d'avance pour vos réponses.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Avec 9 en A1 :
=CopierAvecCommentaire(indirect("Sheet3!W" & A1))
devrait marcher.
eric
0
FiCuS
 
Merci bien, c'est nickel!
Bonne journée.
0
jean-pierre34 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Je relance le sujet car les liens sont inactifs et je ne suis par un pro d'Excel.

Pour ma part je désire que le commentaire (voir la mise en forme) de la cellule source feuille 2 apparaisse dans ma cellule en rechercheV de la feuille 1

Merci d'avance.

Jean-Pierre
0
jean-pierre34 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci Eric mais le lien est toujours inactif.
Pour ma part toutes mes cellules de la base de donnée "feuille 2, 3 Etc" sont avec commentaire
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

Voici un fichier exemple
http://www.cijoint.fr/cj200802/cij9647554393600.xls

Cependant il reste un pb auquel je n'avais pas pensé c'est si la cellule à copier n'a pas de commentaire.
Pour l'instant je butte sur un pb à-priori simple : comment détecter qu'une cellule n'a pas de commentaire... :-s
Si toutes tes cellules en ont un tu peux y aller.

eric
-1
Aline
 
Eric il te suffit de tester :

If Not CelluleMonProduit.Offset(0, i).Comment Is Nothing Then ...

Aline
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275 > Aline
 
Bonsoir aline,

Testé et approuvé ;-)
Merci
eric
0
novicelive Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour,
J'ai suivi ce post avec interet il semble correspondre à ce que je souhaite réaliser mais effectivement en l'absence de commentaire comment avez vous résolue ce PB?
Avez vous le petit bou de code complémentaire peut être?
Celui ci copie t il le contenu de la cellule sans le commentaire, ou ce commentaire est supposé absent de la cellule source.
Cordialement
0