Excel copier contenu plusieurs cellules ..... [Résolu/Fermé]

Signaler
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
-
 nesrine -
Bonjour,
dans un fichier excel, je souhaiterais copier le contenu de plusieurs cellule (du texte) dans une seule et qu'au final tous les mots soient séparés d'un point virgule.
exemple
A1 bonjour
A2 pierre
A3 comment
A4 ça
A5 va
A6?
résultat dans A7 bonjour;pierre;comment;ça;va;?
je pensais y arriver avec la formule concatener mais ça marche pas
si quelqu un connait une solution pas trop complquée.

merci à tous

12 réponses

Messages postés
23488
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 septembre 2020
6 351
ouvre le fichier joint et regarde l'exemple dans la cellule B1
eric
79
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60919 internautes nous ont dit merci ce mois-ci

Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
bonjour eric c est vraiment cette fonction que je cherche mais tout comme mon collègue elle ne fontionne pas non plus chez moi.
peux tu nous expliquer?

Si ca marche avec concatener je viens de tester :
=CONCATENER(A2 & ";"; B2 & ";"; C2)
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
ok je vais essayer par contre cette formule m oblige à écrire chaue cellule 1 a 1 , pas moyen de faire cliquer glisser?
merci à toi
Messages postés
23488
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 septembre 2020
6 351
Bonsoir,

rholalalaaaa.... j'ai pitié de ta nuit.... :-)
Voici une fonction personnalisée
http://www.cijoint.fr/cjlink.php?file=cj200802/cij8110605865231.xls

Dans ta feuille tu fais menu 'inserertion / fonction...', catégorie 'personnalisées'
et tu choisis ConcatPlage()
Tu sélectionnes ta zone concernées puis tu valides.

eric

Function ConcatPlage(plage As Variant) As String
    Dim c As Range
    Dim rep As String
    For Each c In plage
        rep = rep & ";" & c.Value
    Next c
    ConcatPlage = Mid(rep, 2)
End Function
Messages postés
245
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
26 décembre 2010
121
Bonsoir,

j'ai essayer ta fonction, mais excel ne la reconnait pas!

comment faire pour que sa marche?

car elle me paraît intéressante.

merci d'avance, aligato!!!!!!
Messages postés
23488
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 septembre 2020
6 351
Bonjour,

Pour qu'elle fonctionne il faut autoriser excel à exécuter les macros.
Dans excel 2003 (ou moins) menu 'outils / options...', onglet 'sécurité'. En bas à droite bouton 'sécurité des macros...' il faut mettre 'niveau de sécurité moyen'.
Ensuite à l'ouverture du fichier joint cliquer sur 'activer les macros'

Je l'ai légèrement modifiée pour permettre à l'utilisateur de choisir le séparateur.
La syntaxe est maintenant
=ConcatPlage(A1:A6;";") si on désire séparer les mots par un ;
http://www.cijoint.fr/cjlink.php?file=cj200802/cij1536612915345.xls

Enregistrer le classeur sous le nom ConcatPlage.xls par exemple. Il faut qu'il soit ouvert pour pouvoir utiliser la fonction personnalisée dans un autre classeur, ou bien que le code soit recopié dans un module dans l'autre classeur.
Si la fonction est appelée d'un autre classeur il faut ajouter le nom du classeur devant pour l'appeler et ça devient :
=ConcatPlage.xls!ConcatPlage(A1:A6;";")

Pour conserver le résultat sans avoir besoin de la fonction d'origine (cad d'ouvrir toujours le classeur contenant la fonction) il faut copier la cellule puis faire collage spécial en cochant 'valeur'.
J'espère que ça va aller maintenant...
eric


Function ConcatPlage(plage As Variant, separateur As String) As String
    Dim c As Range
    Dim rep As String
    For Each c In plage
        rep = rep & separateur & c.Value
    Next c
    ConcatPlage = Mid(rep, Len(separateur) + 1)
End Function
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
ok ça fonctionne mais j ai ramé.
merci à toi ériic

=concatener(A1 & ";";A2 & ";";A3 & ";";A4 & ";";A5 & ";";A6 & ";";A7 & ";";A8 & ";";....etc et a la fin )
VOila
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
je me suis mal exprimé, j ai compris ce que je dis mettre entre parenthèse, mais je dois l'écrire moi meme?
je suis obligé de taper chaque terme?
Messages postés
343
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
12 mars 2012
28
bonjour,
Pas besoin de la fonction concatener, si tu veux prendre plusieurs valeurs dans une cellule, il faut juste que tu saisisses le singne "=" et que tu sélectionnes chaque cellule à concatener suivi du signe "&" et du texte à ajouter entre guillements :
Exemple :
=A1&";"&A2&&";"A3
Maintenat, si tu veux automatiser cette tâche, il faudrait avoir un exemple concret.

nn pas besoin wuand tu sélectionne la cellule avec la formule tu peux la glisser avec un petit caré noir qui apparait dans le coin en bas a droite de la dite cellule.
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
désolé là j y arrive pas ?
dans A7 de mon exemple je tape quoi? =concatener(???????????????)
désolé je suis novice avec cette formule

ça marche ?

oui sauf pour les numéros de cellules tu peux les entrer dans la formule en les selectionnant avec la souris !
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
ok ça marche mais j ai + de 500 cellule à taper, je suis pas couché
mais merci c est déjà ça
Messages postés
1227
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
433
Bonjour,

Ptit bricolage possible :
mettre les données en colonne puis enregistrer en format CSV, ouvrir le fichier avec le bloc notes, puis faire un copier coller...C'est une idée, y'a plein d'autres façons, si t'as vraiment trop de cellules, on peu imaginer un ptit bout de code vba...

Tom
Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
20
bonjour, tu peux m expliquer ton histoire de cSV je connais pas? pour le vba c est trop compliqué pour moi
Messages postés
245
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
26 décembre 2010
121
Bonsoir, je l'ai fait.

mais elle fonction avec une macro complémentaire.

Faut-il créer cette macro, pour l'utiliser ensuite avec n'importe lequel de mes fichier.

Si oui, comment faire merci d'avance?
Messages postés
23488
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 septembre 2020
6 351
ok, super :-)
n'oublie pas de mettre en résolu stp. Merci
eric
asque c'est possible de automatise svp, genre : CONCATENER(A2:A10000&";")
Messages postés
23488
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 septembre 2020
6 351
Pas bonjour non plus,

La réponse est dans le début de ce topic.
eric
salut eriic, stp j'ai besoin d'aide asque c'est possible d'avoir une formule par ex: si A1 augmente de 100, B1 augmente de 0.025%,
Messages postés
23488
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 septembre 2020
6 351
Bonjour,

ça n'a rien à voir avec le sujet ici.
Démarre ta propre question en cliquant sur 'Créer un nouveau sujet'.
eric
salut, merci pour la réponse ok je vais créer un sujet