recherche une cellule et l'afficher en commentaire

thyuki

XLDnaute Nouveau
Bonjour le forum,


J'ai un nouveau problème,

j'ai deux feuille (demandes et planning)
dans demandes j'ai des numéro de dossiers de la forme IN 111111 avec, deux colonnes plus loin, le descriptif de la demande associé au dossier en question.
Dans mon planning j'ai juste le numéro du dossier écrit dans une cellule.

je voudrais, que lorsque l'on clique sur une cellule contenant un numéro de dossier de la feuille planning, cela créer un commentaire sur la cellule contenant le descriptif du dit dossier qu'on a été rechercher dans l'autre feuille.

n'étant pas très familier avec le Find() je me suis servi de l'aide VB et voila le code que j'arrive a faire:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim valeur As Variant
    Dim Max As Integer
    Dim ValeurCible As Variant
    Dim CelluleTrouvee As Range
        
    valeur = Target.Value
    
    Max = Worksheets("Demandes").Range("A2").End(xlDown).Row

    
    With Worksheets("Demandes").Range(Cells(3, 3), Cells(Max, 3))
    
        Set CelluleTrouvee = .Find(valeur)
    End With
        
    ValeurCible = Cells(CelluleTrouvee.Row, CelluleTrouvee.Column + 2).Value

    Target.Cells(1, 1).AddComment CStr(ValeurCible)

End Sub

Malheureusement ce dernier ne fonctionne pas, 'valeur' n'arrive pas a avoir de valeur ^^

et mon with renvoi une erreur 'erreur défini par l'application ou par l'objet'.


Où me suis-je trompé?? je me prends la tête dessus depuis ce matin, je me tourne vers votre immense savoir
 

CBernardT

XLDnaute Barbatruc
Re : recherche une cellule et l'afficher en commentaire

Bonjour thyuki et le forum,

Il est regrettable que tu n'es pas pris le soin de poster un extrait de ton propre classeur :(

Donc un essai de solution lambda qui sera à adapter. :cool:
 

Pièces jointes

  • RechercheCommentaireV1.xls
    30 KB · Affichages: 51

thyuki

XLDnaute Nouveau
Re : recherche une cellule et l'afficher en commentaire

Oups oui pardon voila le tableau,

oubli de ma part

je le mets ci-joint ma macro est incluse en plus ^^
 

Pièces jointes

  • PLANNING_NVMS.zip
    195.4 KB · Affichages: 18
  • PLANNING_NVMS.zip
    195.4 KB · Affichages: 17
  • PLANNING_NVMS.zip
    195.4 KB · Affichages: 23

CBernardT

XLDnaute Barbatruc
Re : recherche une cellule et l'afficher en commentaire

Re,

La fusion de certaines cellules est délicat à traiter mais pas insumontable.:)
 

Pièces jointes

  • PLANNING_NVMS.zip
    249.7 KB · Affichages: 30
  • PLANNING_NVMS.zip
    249.7 KB · Affichages: 31
  • PLANNING_NVMS.zip
    249.7 KB · Affichages: 33

thyuki

XLDnaute Nouveau
Re : recherche une cellule et l'afficher en commentaire

Bonjour Bernard

merci énormément pour l'aide apportée. Cela m'aide énormément.
Par contre j'aurais quelques petites questions sur le code en lui même.

Pourquoi ne pas avoir utiliser directement la variable Target? (qui si j'ai bien compris, renvoi la cellule sur laquelle on clique)

et je ne comprend pas trop comment fonctionne le 'for' que vous avez codé.

Pouvez-vous m'éclairer sur ces deux points?

merci encore pour votre aide et surtout pour la rapidité de vos réponses !!!!
 

CBernardT

XLDnaute Barbatruc
Re : recherche une cellule et l'afficher en commentaire

Bonjour thyuki et le forum,


Toutes les cellules contenant les références sont fusionnées ou presque. Comme Target.MergeArea ne semble pas fonctionner, j'ai modifié la définition de la plage par ActiveCell.MergeArea qui elle fonctionne.

Valeur = CStr(Ma.Cells(1)) permet de récupérer la valeur qui est dans la cellule 1 de la plage. CStr transforme la valeur en texte.


For i = 1 To UBound(Tablo, 1)
If CStr(Tablo(i, 1)) = Valeur Then
ValeurCible = Tablo(i, 3) ' Mise en variable du descriptif
Exit For ' Sortie de la boucle
End If
Next i

La boucle For permet de passer en revue toutes les références de la colonne 1 du tableau dynamyque Tablo qui contient les colonnes C,D et E de la feuille Demandes.
Quand l'équivalence est trouvée, la variable Valeurcible prend la valeur correspondant de la colonne 3 de Tablo soit la colonne D de la feuille Demandes. Exit for permet de sortir de la boucle aussitôt après.
A noter que CStr(Tablo(i, 1)) transforme la valeur en Texte afin d'avoir la certitude d'être en format identique avec la variable Valeur (La valeur recherchée).
 

Discussions similaires

Statistiques des forums

Discussions
314 626
Messages
2 111 294
Membres
111 093
dernier inscrit
Yvounet