AJOUTER COMMENTAIRE VIA MACRO EN IMPORTANT DONNEES SUR UNE AUTRE FEUILLE (résolu)

moutchec

XLDnaute Occasionnel
bonjour à tous.
je cherche une macro pour ajouter un commentaire affiché dans la cellule active en effaçant au passage tout autre commentaire de la feuille.
exemple sur la feuille 1 si la cellule active est A2 = alors deux lignes dans un petit cadre en commentaire pour aller chercher sur la feuille 2 les données A1 et SOL qui correspondent au contenu de A2 de la feuille 1
 

Pièces jointes

  • Classeur1.xlsx
    11.5 KB · Affichages: 50

moutchec

XLDnaute Occasionnel
bonjour @Hieu ,
j'ai ajouté ton code VBA sur le fichier joint mais il renvoie le message d'erreur = variable non définie. si tu as un peu de temps, jette y un œil s'il te plait et dis moi pourquoi dans ce fichier ci il y a problème alors que dans celui du fil de la discussion ça marche.
salutations.
Moutchec.
 

Pièces jointes

  • Copie de Dudesson- recherche par position- v2b.xlsm
    29.3 KB · Affichages: 32

Hieu

XLDnaute Impliqué
En rajoutant cette petite ligne,
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim wf, f, test, t1, t2 ' celle-ci

Set wf = WorksheetFunction
Set f = Sheets("feuil1")
On Error Resume Next
 test = wf.Match(Target, f.Range("C4:C1000"), 0)
 Range("B4:AN63").ClearComments
If IsEmpty(Target) Or IsEmpty(test) Then Exit Sub
If Not Intersect(Target, Range("B4:AN63")) Is Nothing Then
 t1 = wf.Index(f.Range("B4:B1000"), wf.Match(Target, f.Range("C4:C1000"), 0))
 t2 = "Quantité : " & wf.Index(f.Range("H4:H1000"), wf.Match(Target, f.Range("C4:C1000"), 0))
 Target.AddComment
 Target.Comment.Visible = True
 Target.Comment.Shape.TextFrame.AutoSize = True
 Target.Comment.Text Text:=t1 & Chr(10) & t2
End If
End Sub
 

moutchec

XLDnaute Occasionnel
re-bonjour @Hieu ,

une
En rajoutant cette petite ligne,
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim wf, f, test, t1, t2 ' celle-ci

Set wf = WorksheetFunction
Set f = Sheets("feuil1")
On Error Resume Next
test = wf.Match(Target, f.Range("C4:C1000"), 0)
Range("B4:AN63").ClearComments
If IsEmpty(Target) Or IsEmpty(test) Then Exit Sub
If Not Intersect(Target, Range("B4:AN63")) Is Nothing Then
t1 = wf.Index(f.Range("B4:B1000"), wf.Match(Target, f.Range("C4:C1000"), 0))
t2 = "Quantité : " & wf.Index(f.Range("H4:H1000"), wf.Match(Target, f.Range("C4:C1000"), 0))
Target.AddComment
Target.Comment.Visible = True
Target.Comment.Shape.TextFrame.AutoSize = True
Target.Comment.Text Text:=t1 & Chr(10) & t2
End If
End Sub
re-bonjour @Hieu,
une dernière demande.
est-il possible de changer la formule du T2 pour que la quantité devienne l'addition des quantités en colonne H de toutes les lignes du lot en colonne C.
en fait, un lot peut être à deux emplacements donc est renseigné sur deux lignes et une quantité par emplacement. ce qui serait intéressant, c'est d'avoir la quantité totale du lot dans le commentaire et non la quantité d'une partie qui n'est de toute façon que de la première ligne du lot et ce même si la cellule active concerne le deuxième emplacement.
sincères salutations.
Moutchec.
 

Hieu

XLDnaute Impliqué
Avec le fichier excel ??

J'ai rien en colonne h, et/ou en colonne c ?
Ou je ne regarde pas le bon fichier ??

De tête, je ferai ainsi:
VB:
 t2 = "Quantité : " & wf.SumProduct(f.Range("H4:H1000") * (Target = f.Range("C4:C1000")))
 

moutchec

XLDnaute Occasionnel
bonsoir,
je viens de tester mais ça ne fonctionne pas.
voici le fichier complété avec des données, dans l'exemple, le commentaire lorsque la cellule active de la feuille 2 est Michel devrait afficher 2 cad la somme en colonne H des deux lignes ou apparait le nom de Michel en colonne C.
bonne soirée.
merci.
Moutchec.
 

Pièces jointes

  • classeur 1.xlsm
    32.2 KB · Affichages: 25

Discussions similaires

Statistiques des forums

Discussions
312 362
Messages
2 087 635
Membres
103 618
dernier inscrit
Eraser