Voyez le fichier .xlsm joint et cette fonction VBA, à placer impérativement dans un module standard :
VB:
Function ConcatLike(r As Range) As String
For Each r In r
If r <> "" Then ConcatLike = ConcatLike & " OR LIKE '" & r & "'"
Next
ConcatLike = Mid(ConcatLike, 5) 'supprime le 1er " OR "
End Function
Un peu léger comme explication.
Voulez-vous une formule excel, une fonction personnalisée en VBA?
Où se trouvent les données A.1, A.2 etc , dans des cellules? sont-ce des variables?
LIKE est en VBA un opérateur qui permet de comparer 2 chaînes de caractères, or vous dites qu'il s'agit déjà d'une chaîne de caractère.
Pour avoir une réponse correcte et adaptée à votre demande, il serait souhaitable de bien clarifier votre demande.
Merci beaucoup pour ton retour.
J'ai mis dans ton fichier le résultat souhaité.
Est-ce suffisamment clair désormais ?
En gros, je saisi des valeurs dans la colonne A et je reçois une chaîne de caractères qui met le mot "LIKE" avant la première valeur et le mot "NOT LIKE" avant les valeurs qui restent.
Un peu léger comme explication.
Voulez-vous une formule excel, une fonction personnalisée en VBA?
Où se trouvent les données A.1, A.2 etc , dans des cellules? sont-ce des variables?
LIKE est en VBA un opérateur qui permet de comparer 2 chaînes de caractères, or vous dites qu'il s'agit déjà d'une chaîne de caractère.
Pour avoir une réponse correcte et adaptée à votre demande, il serait souhaitable de bien clarifier votre demande.
Voyez le fichier .xlsm joint et cette fonction VBA, à placer impérativement dans un module standard :
VB:
Function ConcatLike(r As Range) As String
For Each r In r
If r <> "" Then ConcatLike = ConcatLike & " OR LIKE '" & r & "'"
Next
ConcatLike = Mid(ConcatLike, 5) 'supprime le 1er " OR "
End Function
Bien sûr, vous avez entièrement raison, mais comme Mes3oud92 ne distille ses informations qu'au compte-gouttes, j'ai adapté ma réponse à la question posée.
@Rouge, peut-être que c'est parce que j'ai du mal à m'exprimer en Français, Navré! @job75, effectivement, le nombre de lignes/cellules peut varier et donc ne serait pas toujours égal à 4.
Voyez le fichier .xlsm joint et cette fonction VBA, à placer impérativement dans un module standard :
VB:
Function ConcatLike(r As Range) As String
For Each r In r
If r <> "" Then ConcatLike = ConcatLike & " OR LIKE '" & r & "'"
Next
ConcatLike = Mid(ConcatLike, 5) 'supprime le 1er " OR "
End Function
Ton fichier répond exactement à mon besoin, merci beaucoup!
Par contre, qu'est-ce que tu entends stp par "à placer impérativement dans un module standard" ?
Car j'ai tenté de rajouter des valeurs mais elles n'ont pas été prises en compte lors de la concaténation..
Par contre, qu'est-ce que tu entends stp par "à placer impérativement dans un module standard" ?
Car j'ai tenté de rajouter des valeurs mais elles n'ont pas été prises en compte lors de la concaténation..