Résultat d'une recherchev dans un commentaire en automatique

Hypokhampe

XLDnaute Nouveau
Bonjour,

J'ai beau retourner le problème dans tous les sens je ne parviens pas à faire ce que je veux sur Excel...

Comment puis-je avec VBA faire apparaitre le résultat d'une rechercheV dans un commentaire ?

Je souhaiterais faire apparaitre le commentaire automatiquement dans la cellule en fonction du nom dans cette cellule par rapport à une table contenant des adresses.

Merci d'avance pour votre aide.

Hyp
 

Hypokhampe

XLDnaute Nouveau
Re : Résultat d'une recherchev dans un commentaire en automatique

Merci pour la reponse rapide.

En fait je souhaite que le résultat de ton calcul, au lieu d'apparaitre dans les cellules de l'onglet A, apparaisse dans un commentaire lorsque je tape le nom du client dans la cellule de l'onglet A.

Par exemple, si je tape "AAA" dans l'onglet A, les coordonnées de "AAA" dans l'onglet B apparaissent dans un commentaire dans l'onglet A.

Je crois que seule une macro évennementielle peut m'aider.

Merci d'avance pour votre aide.
 

ROGER2327

XLDnaute Barbatruc
Re : Résultat d'une recherchev dans un commentaire en automatique

Re...
Un essai dans le classeur joint, avec une procédure événementielle dans le module de feuille de la feuille A :
Code:
[COLOR="DarkSlateGray"]Private Sub Worksheet_Change(ByVal Target As Range)
Dim oCel As Range, i As Long, s As String
   If Not Intersect(Target.Cells(1, 1), Columns(5)) Is Nothing Then
      With Target
         .ClearComments
         For Each oCel In Sheets("B").Cells(1, 1).Offset(1, 0).Resize(Sheets("B").Cells(Sheets("B").Rows.Count, 1).End(xlUp).Row - 1, 1).Cells
            If .Cells(1, 1).Value = oCel.Value Then
               For i = 1 To 10
                  s = s & oCel.Offset(0, i).Value & vbLf
               Next i
               s = Left$(s, Len(s) - 1)
               .AddComment
               .Comment.Text Text:=s
               .Comment.Shape.Height = 120
               Exit For
            End If
         Next oCel
      End With
   End If
End Sub[/COLOR]
ROGER2327
 

Pièces jointes

  • hkpx3fwYtv_Classeur3.zip
    8.6 KB · Affichages: 35

job75

XLDnaute Barbatruc
Re : Résultat d'une recherchev dans un commentaire en automatique

Re, salut Roger :)

Un message de saisie (menu Données-Validation) ne serait-il pas mieux adapté ?

Voir fichier ci-joint.

Edit : une boucle pour le remplissage c'est mieux.

A+
 

Pièces jointes

  • Message de saisie.xls
    32.5 KB · Affichages: 63
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Résultat d'une recherchev dans un commentaire en automatique

Bonjour job75
Un message de saisie (menu Données-Validation) ne serait-il pas mieux adapté ?
Je ne sais pas. Hypokhampe semble souhaiter un commentaire.
Mais abondance de biens ne nuit pas ! (Quoi que...) On lui propose deux solutions : à lui de nous dire ce qu'il préfère.​
Bonne soirée !
ROGER2327
 

Hypokhampe

XLDnaute Nouveau
Re : Résultat d'une recherchev dans un commentaire en automatique

Je suis partagé entre les deux solutions qui m'apportent pleine satisfaction !

J'avoue quand même que je penche plus pour la solution de Roger qui m'apporte la solution avec commentaire (question d'esthétique et de pratique).

Je remercie chacun en tout cas s'etre penché sur mon cas, ce forum est vraiment génial pour cela, et j'y reviens toujours de bon coeur.

Sans vouloir abuser de vos connaissances : est-il possible dans votre fichier ROGER d'avoir un Autosize du commentaire et une petite mise en forme dans celui-ci du style nom de l'entreprise client et nom du contact en rouge et en gras ou orange, et tout le reste du commentaire en gras ?

Un petit plus pour la lisibilité, car je ne serai pas seul à utiliser le fichier une fois terminé, autant qu'il soit facile à lire.

Encore un grand merci en tout cas.

J
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Résultat d'une recherchev dans un commentaire en automatique

Bonjour,

Voir PJ

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 5 And Target.Count = 1 Then
      Dim pos(1 To 11)
      Target.ClearComments
      p = Application.Match(Target, Application.Index([clients], , 1), 0)
      If Not IsError(p) Then
        pos(1) = 1
        For i = 2 To 11
          tmp = tmp & [clients].Cells(p, i) & vbLf
          pos(i) = pos(i - 1) + Len([clients].Cells(p, i)) + 1
        Next i
        Target.AddComment Text:=tmp
        Target.Comment.Shape.TextFrame.AutoSize = True
        With Target.Comment.Shape.TextFrame.Characters(Start:=pos(7), Length:=Len([clients].Cells(p, 8)) + 1).Font
         .Name = "Verdana"
         .Size = 8
         .Bold = True
         .ColorIndex = 3
        End With
      End If
  End If
End Sub

Maj si BD modifiée:

Private Sub Worksheet_Activate()
  Dim pos(1 To 11)
  For Each c In Range("e2:e" & [e65000].End(xlUp).Row)
      c.ClearComments
      p = Application.Match(c, Application.Index([clients], , 1), 0)
      If Not IsError(p) Then
        pos(1) = 1
        tmp = ""
        For i = 2 To 11
          tmp = tmp & [clients].Cells(p, i) & vbLf
          pos(i) = pos(i - 1) + Len([clients].Cells(p, i)) + 1
        Next i
        c.AddComment Text:=tmp
        c.Comment.Shape.TextFrame.AutoSize = True
        With c.Comment.Shape.TextFrame.Characters(Start:=pos(7), Length:=Len([clients].Cells(p, 8)) + 1).Font
         .Name = "Verdana"
         .Size = 8
         .Bold = True
         .ColorIndex = 3
        End With
      End If
  Next
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • RecherchevComment.xls
    39 KB · Affichages: 78
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Résultat d'une recherchev dans un commentaire en automatique

Affichage dans un Shape

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Column = 5 And Target.Count = 1 Then
   p = Application.Match(Target, Application.Index([clients], , 1), 0)
   If Not IsError(p) Then
    For i = 1 To 11
     Cells(i + 1, 16) = [clients].Cells(p, i)
    Next i
    Shapes("monshape").Left = Target.Offset(, 1).Left + 5
    Shapes("monshape").Top = Target.Top
   End If
 End If
End Sub

JB
 

Pièces jointes

  • RecherchevShape.xls
    38 KB · Affichages: 75

job75

XLDnaute Barbatruc
Re : Résultat d'une recherchev dans un commentaire en automatique

Bonjour JB,

Ah oui JB, nettement mieux, c'est sûrement beaucoup moins gourmand en Ko.

Je suggère juste un petit ajout pour le cas où un client n'est pas sélectionné :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 [COLOR="Red"]Shapes("monshape").Visible = False[/COLOR]
 If Target.Column = 5 And Target.Count = 1 Then
   p = Application.Match(Target, Application.Index([clients], , 1), 0)
   If Not IsError(p) Then
    For i = 1 To 11
     Cells(i + 1, 16) = [clients].Cells(p, i)
    Next i
    Shapes("monshape").Left = Target.Offset(, 1).Left + 5
    Shapes("monshape").Top = Target.Top
    [COLOR="Red"]Shapes("monshape").Visible = True[/COLOR]
   End If
 End If
End Sub

A+
 

Hypokhampe

XLDnaute Nouveau
Re : Résultat d'une recherchev dans un commentaire en automatique

Monsieur Boisgontier,

C'est un immense honneur que d'être aidé par un un maître d'Excel tel que vous ! Je vais sur votre site au moins 3 fois par jour pour consulter votre prose VBistique, qui est une réelle source d'inspiration pour le développement de mes fichiers ! Vous êtes sans doute celui qui m'a poussé à développer mes connaissances sur Excel et à me former au langage VBA.

J'ai testé votre solution qui bien évidemment et comme à l'accoutumée m'apporte pleine et entière satisfaction !

Si Excel était une religion, vous en seriez sans doute le Dieu. Loin de vouloir jouer les flatteurs, ce sont de sincères remerciements que je vous envoie.

Merci aux XLDnautes également et à ce super forum ;-) !

J
 

Discussions similaires

Statistiques des forums

Discussions
312 238
Messages
2 086 492
Membres
103 234
dernier inscrit
matteo75654548