Commentaires dynamiques

olhey

XLDnaute Occasionnel
Bonjour,

Voilà mon but: j'ai un tableau avec différents objets dans des cellules qui on chacun un commentaire, tous les commenaitres contiennent le même type d'informations(un code et un nom), jaimerais que les commentaires se "remplissent" tout seul à la manière de:
objet1>>fait une rechrchev(objet1)dans ma feuil2 où toutes les infos sont stockées>>affiche le contenu des deux cellules suivantes dans son commentaire.

Mais voyez plustôt avec le fichier

Merci de votre aide!!
 

Pièces jointes

  • comment condi.xls
    26 KB · Affichages: 73

mromain

XLDnaute Barbatruc
Re : Commentaires dynamiques

bonjour olhey,

je te propose ce code :
Code:
Dim curCell As Range, cellFind As Range
For Each curCell In ThisWorkbook.Sheets("Feuil1").Range("$C$10:$H$16")
    On Error Resume Next
    curCell.Comment.Delete
    On Error GoTo 0
    If curCell.Text <> vbNullString Then
        Set cellFind = ThisWorkbook.Sheets("Feuil2").Range("B:B").Find(curCell.Value, , , xlWhole)
        If Not cellFind Is Nothing Then
            curCell.AddComment ("code: " & cellFind.Offset(0, 1).Text & vbNewLine & "nom: " & cellFind.Offset(0, 2).Text)
        End If
    End If
Next curCell

a+
 

olhey

XLDnaute Occasionnel
Re : Commentaires dynamiques

bonjour je viens de tester le code, lié à un bouton.

je crois que mromain mérite un standing ovation :)c'est nickel.
je vais faire necore deux trois tests pour voir si tout est okay.
a+

EDIT: juste une question pour ma culture :D :

Code:
. Find(curCell.Value[COLOR="Red"], , , xlWhole[/COLOR])

qu'est ce: xlwhole et que peut on mettre entre les , , ,?

EDIT2: j'en profite pour poser 2 petites questions:
1 comment faire pour que le saut à la ligne ne soit pas représenté par un petit carré
2 est ce qu'à la création du commentaire on peut spécifier sa taille(taille du rectangle jaune)?
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Commentaires dynamiques

Bonjour,

-Maj auto à la saisie
-Maj auto si modif Base

Code:
Private Sub Worksheet_Activate()
  maj
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
  maj
End Sub

Sub maj()
  For Each c In [c10:h16]
   If c <> "" Then
    Set p = Application.Index([Base], , 1).Find(what:=c, lookat:=xlWhole)
    If Not p Is Nothing Then
       temp = p.Offset(0, 1) & vbLf & p.Offset(0, 2)
       If c.Comment Is Nothing Then c.AddComment
       c.Comment.Text Text:=temp
       c.Comment.Shape.TextFrame.AutoSize = True
     End If
   End If
  Next c
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • commentaireDynamique3.xls
    33 KB · Affichages: 75
  • commentaireDynamique3.xls
    33 KB · Affichages: 79
  • commentaireDynamique3.xls
    33 KB · Affichages: 76
Dernière édition:

olhey

XLDnaute Occasionnel
Re : Commentaires dynamiques

ouah la classe!

pour paufiner mon projet,j'aimerais que lorsque je clique sur une case de ma feuil1(si il ya qqch dedans), il recherche dans la feuil2 l'objet et me redirige dessus. Vous me direz que j'ai juste besoin de liens hypertexte, mais le problème c'est si j'utilise des filtres dans la feuil2, le liens faisant référence à une celulle, bein patatra...
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Commentaires dynamiques

Sur double-click

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect([c10:h16], Target) Is Nothing And Target <> "" Then
    Set p = Application.Index([Base], , 1).Find(what:=Target, lookat:=xlWhole)
    If Not p Is Nothing Then
      Application.Goto p
    End If
  End If
  Cancel = True
End Sub

Visu dans shape


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([C10:H16], Target) Is Nothing And Target.Count = 1 Then
    Set p = Application.Index([Base], , 1).Find(what:=Target, lookat:=xlWhole)
    If Not p Is Nothing Then
      ActiveSheet.Shapes("monShape").Visible = True
      [s2] = Target
      Shapes("monshape").Left = Target.Offset(, 1).Left + 5
      Shapes("monshape").Top = Target.Top
    Else
      ActiveSheet.Shapes("monShape").Visible = False
    End If
  End If
End Sub


JB
 

Pièces jointes

  • commentaireDynamique3.xls
    36 KB · Affichages: 52
  • commentaireDynamique3.xls
    36 KB · Affichages: 52
  • commentaireDynamique3.xls
    36 KB · Affichages: 55
  • VisualisationFicheShape.xls
    34.5 KB · Affichages: 74
Dernière édition:

olhey

XLDnaute Occasionnel
Re : Commentaires dynamiques

re

ça se corse un peu dans mon projet final:

[s2] = Target

jaimerais que le "target" soit sur une autre feuil(feuil2), car ma feuil1 est déjà destinée à qqch d'autre,mais c'est bein mon tableau "source", donc target devrai être sur la même page que BASE...

MErci de votre aide précieuse
 

Discussions similaires

Réponses
33
Affichages
2 K

Statistiques des forums

Discussions
312 571
Messages
2 089 809
Membres
104 278
dernier inscrit
LENZY