Re bonjour,
Cette fois ci je reviens vers vous avec un vrai problème :
J'explique la situation.
J'ai une feuille avec en colonne A une liste de diplôme, colonne B leur programme et colonne C des mots clés correspondants.
J'ai déjà eu l'occasion de recevoir de l'aide pour concaténer la liste des diplomes concernés, en fonction d'une recherche qui alimentait une cellule en colonne D ( si le mot "rech" était trouvé en colonne A, B, ou C, une valeur s'affichait ).
Mai tenant, par souci de propreté dans le fichier, je souhaiterai que tout soit fait en VB, et à l'aide d'un formulaire pour que le fichier n'ait pas des colonnes supplémentaires qui entravent une lecture propre.
En gros dans une Msgbox s'affiche le résultat de la recherche : la liste des diplômes qui ont le mot clé quelque part ( nom, programme, mot clé )
le formulaire fonctionne sous plusieurs aspects, il ne me reste que la concaténation des noms de diplômes en fonction de la recherche d'un mot clé.
Voici le code que j'ai essayé de bricoler.
' rechercher les diplômes correspondants
Private Sub cmdbtrech_Click()
If Trim(Me.motcle) = "" Then
MsgBox "Veuillez saisir un mot clé"
Exit Sub
End If
With Me.listdiplome
.MultiLine = True
.Value = CONCAT_SI("A2:C200", Me.motcle, "A2:C200")
End With
End Sub
Function CONCAT_SI(R1 As Range, Rech As String, R2 As Range) As String
Dim CL As Range
Dim CHN As String
Dim Pris As String
For Each CL In R1
If InStr(CL, "me.motcle") <> 0 Then
If InStr(1, Pris, "," & Cells(CL.Row, R2.Column).Address) = 0 Then
CHN = CHN & vbLf & Cells(CL.Row, R2.Column).Value
Pris = Pris & "," & Cells(CL.Row, R2.Column).Address
End If
End If
Next
CONCAT_SI = Mid(CHN, 2) 'Trim(CHN)
End Function
il m'écrit qu'il y a une incompatibilité de type en me surlignant Private Sub cmdbtrech_Click().
si quelqu'un a une idée.
en vous remerciant.