Menu

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

Messages postés
396
Date d'inscription
vendredi 22 septembre 2006
Statut
Membre
Dernière intervention
8 septembre 2014
- - Dernière réponse :  nesrine - 14 mai 2015 à 09:24
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
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
22748
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 juin 2019
5499
68
Merci
ouvre le fichier joint et regarde l'exemple dans la cellule B1
eric

Dire « Merci » 68

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

CCM 42419 internautes nous ont dit merci ce mois-ci

desperateman
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?
10
Merci
Si ca marche avec concatener je viens de tester :
=CONCATENER(A2 & ";"; B2 & ";"; C2)
desperateman
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
22748
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 juin 2019
5499
2
Merci
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
dilok
Messages postés
246
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
26 décembre 2010
98 -
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
22748
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 juin 2019
5499
2
Merci
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
desperateman
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
1
Merci
=concatener(A1 & ";";A2 & ";";A3 & ";";A4 & ";";A5 & ";";A6 & ";";A7 & ";";A8 & ";";....etc et a la fin )
VOila
desperateman
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
347
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
12 mars 2012
27
1
Merci
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.
0
Merci
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.
desperateman
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
0
Merci
oui sauf pour les numéros de cellules tu peux les entrer dans la formule en les selectionnant avec la souris !
desperateman
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
390
0
Merci
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
desperateman
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
246
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
26 décembre 2010
98
0
Merci
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
22748
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 juin 2019
5499
0
Merci
ok, super :-)
n'oublie pas de mettre en résolu stp. Merci
eric
asque c'est possible de automatise svp, genre : CONCATENER(A2:A10000&";")
eriiic
Messages postés
22748
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 juin 2019
5499 -
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%,
eriiic
Messages postés
22748
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 juin 2019
5499 -
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