XL 2013 [RESOLU] Concaténer dans Excel !

Mes3oud92

XLDnaute Nouveau
Bonjour Forum Excel,

Je souhaiterais, si possible, savoir comment mettre en place la fonction suivante :

IN :
A.1
A.2
A.3
A.4
...

OUT (souhaité!) :
LIKE 'A.1' OR LIKE 'A.2' OR LIKE 'A.3' OR LIKE 'A.4'

Un petit détail : LIKE et OR LIKE sont des chaînes de caractères.

D'avance, merci de votre aide.

Cordialement,
MES3OUD92.
 
Solution
Bonjour Mes3oud92, Rouge, JHA,

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
Formule en C4 =ConcatLike(A4:A7)

A+

Rouge

XLDnaute Occasionnel
Bonjour,

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.

Cdlt
 

Mes3oud92

XLDnaute Nouveau
Bonjour à tous,

Je t'avoue n'avoir rien compris sur ta demande.
Il serait mieux de mettre un fichier avec le résultat souhaité.

JHA

Bonjour,

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.

Mes3oud92
 

Pièces jointes

  • Classeur Mes3oud92.xlsx
    9.3 KB · Affichages: 5

Mes3oud92

XLDnaute Nouveau
Bonjour,

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.

Cdlt

Bonjour,

Merci beaucoup pour ton retour.
Cf. commentaire ci-dessus pour plus de détails.

Cdt,

Mes3oud92
 

job75

XLDnaute Barbatruc
Bonjour Mes3oud92, Rouge, JHA,

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
Formule en C4 =ConcatLike(A4:A7)

A+
 

Pièces jointes

  • ConcatLike(1).xlsm
    14.7 KB · Affichages: 4

Mes3oud92

XLDnaute Nouveau
Bonjour Mes3oud92, Rouge, JHA,

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
Formule en C4 =ConcatLike(A4:A7)

A+

Bonjour Job75,

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..

Merci encore.

Cdlt,
M92
 
Dernière édition:

job75

XLDnaute Barbatruc
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..

Dans mon fichier allez dans VBA et voyez est placé le code.

Et dans la feuille de calcul, la formule en C4 doit inclure toutes les cellules à concaténer.
 

Discussions similaires

Statistiques des forums

Discussions
283 561
Messages
1 852 627
Membres
151 833
dernier inscrit
Lennri
Haut Bas