Les Allergies
Alimentaires
Posez votre question Signaler

EXCEL: Concaténer une plage de cellules [Résolu]

BertyBoy 8Messages postés 21 août 2008Date d'inscription - Dernière réponse le 29 mai 2012 à 13:42
Bonjour,
Je souhaite réaliser un traitement sur un plage de cellules excel sans réaliser de macros...
Ce que je veux:
1- Faire une recherche sur une plage de cellules excel pour trouver les cellules contenant les informations qui m'interressent et récupérer ces cellules (ou plutot les informationsdes cellules).
2- Concaténer tous les résultats de la recherche précedente séparés d'un espace dans une cellule résultat.
Je n'arrive même pas à concaténer une plage de cellules, la fonction ne semble pas marcher sur une plage et je ne trouve rien dans les forums sur ce sujet...
HELP!
Merci d'avance,
B.
Lire la suite 

EXCEL: Concaténer une plage de cellules »

19 réponses
Réponse
+17
moins plus
en vba tu pourrais faire ainsi :
Dans un module coller une fonction personnalisée :
Function ConcatPlage(plage As Range, contenant As String, séparateur As String) As String
    Dim rep As String, c As Range
    For Each c In plage
        If InStr(c.Value, contenant) > 0 Then
            rep = rep & c.Value & séparateur
        End If
    Next c
    ConcatPlage = Left(rep, Len(rep) - Len(séparateur))
End Function

Dans une feuille 'inserer / fonction / personnalisée' et choisir ConcatPlage.
Cette fonction attend 3 paramètres :
- plage : la plage à balayer (la désigner à la souris)
- contenant : la chaine devant être contenue dans chaque cellule de plage pour être dans la concaténation.
- séparateur : la chaine séparant chaque cellule concaténée (1 ou plusieurs caractères)

Fait sommairement avec les éléments que tu as donné, nécessite peut-être des adaptations pour ton cas précis.
exemple :
http://www.cijoint.fr/cjlink.php?file=cj200808/cijryw0Xms.xls

eric
Oriane - 29 mai 2012 à 09:45
Je ne sais pas si ça peut mais les cellules que je souhaite concatener se trouvent dans la même colonne.
eriiic- 29 mai 2012 à 11:59
Bonjour,

Concatène les cellules non vide d'un plage horizontale ou verticale:

Function ConcatPlageCelNonVides(plage As Range, Optional séparateur As String = ", ") As String 
    Dim rep As String, c As Range 
    For Each c In plage 
        If c.Value <> "" Then 
            rep = rep & c.Value & séparateur 
        End If 
    Next c 
    ConcatPlageCelNonVides = Left(rep, Len(rep) - Len(séparateur)) 
End Function 

Si la chaine de séparation n'est pas indiquée, par défaut elle est définie par ", ".

Syntaxes :
plage verticale :
=ConcatPlageCelNonVides(A2:A13)
plage horizontale en imposant le séparateur " - "
=ConcatPlageCelNonVides(C2:N2;" - ")

eric
Oriane - 29 mai 2012 à 13:42
Merci beaucoup Eric, la fonction marche parfaitement. C'est ce qu'il me fallait ! :)
Excellente journée à toi
Ajouter un commentaire
Réponse
+8
moins plus
tu peux peut être bidouiller comme cela:

pour concatener les cellules A1à A10:
En B1 tu met =A1
En B2= B1&A2
Et apres tu tires ta formule sur tte la colonne B ca devrait concatener toute ta colonne A

J'espère que c'est clair, il doit y avoir une meilleure solution mais pour l'instant je sèche
Ainhoa - 24 févr. 2011 à 19:39
c'est LA meilleure solution!! Merci beaucoup!
Ajouter un commentaire
Réponse
+3
moins plus
Salut!

Merci pour ta réponse.
En fait, je veux rechercher une liste de caractères sur une plage de cellules et garder les résultats.

exemple:
Je veux chercher dans la plage de cellules A1:A100 toutes les cellules contenant du texte commençant par "R" et garder tous les résultats. La deuxième partie consiste à afficher les résultats séparés par des espaces dans une seule cellule résultante.

En ce qui concerne la fonction "concatener", ça ne marche pas si tu insères une ligne entre la cellule A1 et la cellule A3...Il ne prendra pas en compte les 4 lignes pour la concaténation. Or j'ai besoin d'insérer des lignes pour insérer des noms.
La fonction que je veux mettre en place me permet d'afficher une solution récapitulative.

Merci d'avance pour ta réponse,
Cdlt,
Bertrand
Ajouter un commentaire
Réponse
+2
moins plus
Bonjour,

Je n'ai pas tout à fait saisi ton histoire de recherche mais pour ce qui est de concatener une plage de cellules avec des espaces entre les chaînes de caractères, tu peux essayer: =CONCATENER(" '";A1;" ";A2;" ";A3;" ") (pour plage de cellules A1:A3

J'espère que ça t'aidera,
Bon courage
edokt - 2 nov. 2010 à 09:20
Concaténer plage ça ne marche pas
Ajouter un commentaire
Réponse
+2
moins plus
Bonjour,

Et comment je peux faire en VBA?

Merci d'avance pour ta réponse,
B.
Ajouter un commentaire
Réponse
+1
moins plus
MERCI à vous deux! je vais essayer de mettre tout ça en application..!
Je vous tiens au courant!
++
B.
Ajouter un commentaire
Réponse
+1
moins plus
Par contre j'ai un pb d'adsl chez moi et je risque d'avoir des difficulté pour me connecter jusqu'à jeudi soir...
eric
Ajouter un commentaire
Réponse
+1
moins plus
Moi j'ai fait comme suit
Col A | Col B
Txt1 | =A
Txt2 | =CONCATENER(A2;B1) Résultat "Txt1Txt2"
Txt3 | =CONCATENER(A3;B2) Résultat "Txt1Txt2Txt3"
etc...

RB
Soria - 8 mai 2012 à 06:01
La méthode de klrblz est la meilleure, merci !
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

possible uniquement en vba...
eric
Ajouter un commentaire
Ce document intitulé « EXCEL: Concaténer une plage de cellules » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?