XL 2013 [RESOLU] Concaténer dans Excel !

M92_

XLDnaute Junior
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 Impliqué
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
 

M92_

XLDnaute Junior
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: 6

M92_

XLDnaute Junior
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: 5

M92_

XLDnaute Junior
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

Réponses
6
Affichages
613
Réponses
5
Affichages
385

Statistiques des forums

Discussions
315 095
Messages
2 116 170
Membres
112 676
dernier inscrit
little_b