Excel copier contenu plusieurs cellules .....

Résolu
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   -  
 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

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
ouvre le fichier joint et regarde l'exemple dans la cellule B1
eric
80
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
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?
0
Utilisateur anonyme
 
Si ca marche avec concatener je viens de tester :
=CONCATENER(A2 & ";"; B2 & ";"; C2)
11
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
ok je vais essayer par contre cette formule m oblige à écrire chaue cellule 1 a 1 , pas moyen de faire cliquer glisser?
merci à toi
0
Utilisateur anonyme
 
=concatener(A1 & ";";A2 & ";";A3 & ";";A4 & ";";A5 & ";";A6 & ";";A7 & ";";A8 & ";";....etc et a la fin )
VOila
2
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
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?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
2
dilok Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   141
 
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!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
2
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
ok ça fonctionne mais j ai ramé.
merci à toi ériic
0
Meldja Messages postés 343 Date d'inscription   Statut Membre Dernière intervention   33
 
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.
1
Utilisateur anonyme
 
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.
0
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
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
Utilisateur anonyme
 
ça marche ?
0
Utilisateur anonyme
 
oui sauf pour les numéros de cellules tu peux les entrer dans la formule en les selectionnant avec la souris !
0
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
ok ça marche mais j ai + de 500 cellule à taper, je suis pas couché
mais merci c est déjà ça
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
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
0
desperateman Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   21
 
bonjour, tu peux m expliquer ton histoire de cSV je connais pas? pour le vba c est trop compliqué pour moi
0
dilok Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   141
 
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?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
ok, super :-)
n'oublie pas de mettre en résolu stp. Merci
eric
0
nesrine
 
asque c'est possible de automatise svp, genre : CONCATENER(A2:A10000&";")
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Pas bonjour non plus,

La réponse est dans le début de ce topic.
eric
0
nesrine
 
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%,
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

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