Signaler

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

Posez votre question BertyBoy 8Messages postés jeudi 21 août 2008Date d'inscription 26 août 2008 Dernière intervention - Dernière réponse le 9 mars 2017 à 09:31 par alex76
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.
Afficher la suite 
Utile
+48
plus moins
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
Cette réponse vous a-t-elle aidé ?  
jflb- 26 août 2014 à 09:49
c'est une bidouille qui marche!
laubergeduchat- 27 oct. 2014 à 15:40
Génial . Mercissssssssssssssssssssssssssssssssssssss
mikee- 1 mars 2015 à 13:04
J'adore vous être trop fort
Nani- 9 juil. 2015 à 13:42
It's awesome !
alex76- 9 mars 2017 à 09:31
Merci simple mais efficace !!!
Répondre
Utile
+20
plus moins
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
eriiic 20445Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 28 avril 2017 Dernière intervention - 30 janv. 2017 à 12:09
Bonjour,

@touroul
Cependant ne fonctionne pas au delà de 37000 lignes à traiter, curieux ...
Rien de curieux la taille maximale d'une chaine sur excel étant de 32767 caractères.
eric
Répondre
Oriane- 29 mai 2012 à 13:42
Merci beaucoup Eric, la fonction marche parfaitement. C'est ce qu'il me fallait ! :)
Excellente journée à toi
Youyou- 7 juin 2012 à 11:35
Bonjour,
Je suis désolée de poster ici, j'ai essayé de reproduire votre fonction mais cela ne fonctionne pas... excel continue de me dire #NOM?
J'ai fait un poste aujourd'hui (Excel: concatener des cellules) mais la seule réponse que j'ai eu n'était pas très constructive, peut-être est-ce que vous pouvez m'aider?
Par avance merci!
amel- 25 janv. 2017 à 13:09
Bonjour,
svp je voudrais comprendre à quoi sert la ligne
ConcatPlageCelNonVides = Left(rep, Len(rep) - Len(séparateur))  

dans votre fonction.

merci d'avance
Répondre
eriiic 20445Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 28 avril 2017 Dernière intervention - 25 janv. 2017 à 13:20
Bonjour,

élimine le séparateur inutile du début de chaine
eric
Répondre
Utile
+3
plus moins
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
Utile
+3
plus moins
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
Utile
+2
plus moins
Bonjour,

Et comment je peux faire en VBA?

Merci d'avance pour ta réponse,
B.
Utile
+1
plus moins
MERCI à vous deux! je vais essayer de mettre tout ça en application..!
Je vous tiens au courant!
++
B.
Sof2015 7Messages postés lundi 2 février 2015Date d'inscription 9 juillet 2016 Dernière intervention - 10 sept. 2015 à 16:31
Justement BertyBoy je suis dans le même état d'esprit : je cherche à concaténer dans une cellule "C2" le résultat d'une recherche dans la plage (B2:B300) selon nom de code dans une plage (A2:A300), nb : le code est genre "A", "B", "C", etc. et les éléments/articles cherchés de type "A21", "A23", "B20", "C21" répartis chacun dans la plage(B2:B300)...
Cela serait sympa de ta part ou d'eriic, de m'aider sur cette colle, je l'ai besoin pour faire un exposé pour mon prof
eriiic 20445Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 28 avril 2017 Dernière intervention - 10 sept. 2015 à 17:31
Bonjour,

On dit bonjour sof2015 quand on rentre quelque part.
Tu devrais démarrer une nouvelle question en ajoutant un fichier de travail avec tes explications et le résultat attendu (cjoint.com et coller le lien fourni dans ton post).
Là tu es sur un truc de 2008 que personne ne lit...
eric
Sof2015 7Messages postés lundi 2 février 2015Date d'inscription 9 juillet 2016 Dernière intervention - 9 juil. 2016 à 07:37
Salut eriic et BertyBoy

Désolé j'ai été absent en déplacement à l'étranger pour le taf.

Justement concernant la concaténation :

y a t-il une fonction ou celle-ci se mettra à rechercher les codes identiques genre (CL002) dans la plage de cellule de la colonne "A" et les références de ces codes en colonne "B", sachant que la recherche sur les références doivent être regroupées dans une cellule distincte "C3", avec en option : un délimiteur ("-" ou "/") au choix + possibilité de transposer la formule.

Merci de votre précieuse aide à l'avance ... En tout les cas, je suis ravi de voir que vous êtes en forme ... Donnez-moi de vos nouvelles.

@+
Répondre
Utile
+1
plus moins
Par contre j'ai un pb d'adsl chez moi et je risque d'avoir des difficulté pour me connecter jusqu'à jeudi soir...
eric
Utile
+1
plus moins
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 !
Utile
+0
plus moins
Bonjour,

possible uniquement en vba...
eric
Utile
+0
plus moins
Salut tout le monde

Ce que je vais demander va paraitre asser compliqué mais se serait géniale de trouver une réponse sachant que ça fait des jours que j'en cherche une en vain ..

J'ai une colonne A possédant des cellules certaines avec des caractères d'autres avec des nombres et d'autres vides.Et de l'autre coté j'ai une colonne B possédant des cellules avec des caracteres et d'autres vides.En fait les cellules de la colonne B contenaient des phrases qui ses sont découpés et certains mots ont été renvoyé dans les cellules de la colonne A.Je voudrais créér une macro qui recherche dans la colonne A les cellules contenants les caractères renvoyés (les bout de phrases découpée) et qui les recopie dans la colonne B dans les cellules visées (pour que les phrases se reforment).Comme les celulles contenant des nombre et les cellules vides ne m'interessent pas je voudrais que la macro ne les prenne pas en compte et continue sa recherche (dans la colonne A) tant qu'elle ne tombe pas sur une cellule contenant des caractères.

Je ne sais pas si je me suis bien exprimés mais si quelqun est asser compétent dans ce domaine sa serait gentil de me proposer une réponse et surtout ça m'aiderait beaucouup ^^
eriiic 20445Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 28 avril 2017 Dernière intervention - 5 sept. 2013 à 18:51
Bonjour,

démarre ta propre question si tu veux des réponses.
Et joint un fichier de travail avec tous les cas de figure et le résultat attendu.
A déposer sur cjoint.com et coller ici le lien fourni.
eric
Utile
+0
plus moins
Bonjour,

J'ai viens de posté mon fichier comme demandé.Le lien est :http://cjoint.com/?CIgjYwaN3hI

Cordialement
eriiic 20445Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 28 avril 2017 Dernière intervention - 6 sept. 2013 à 10:34
Bonjour,

tu es sur un vieux fil qui date de 5 ans.
J'ai dit : démarre une nouvelle question
eric
dilly213 24Messages postés mercredi 4 septembre 2013Date d'inscription 11 octobre 2013 Dernière intervention - 6 sept. 2013 à 10:55
C'est fait ;)
dilly213 24Messages postés mercredi 4 septembre 2013Date d'inscription 11 octobre 2013 Dernière intervention - 6 sept. 2013 à 15:04
je suis dans la discussion macro/fonction on a pas mal avancé mais il reste quelques petits problèmes..

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !