Rechercher : dans
Par :

Excel copier contenu plusieurs cellules .....

Dernière réponse le 23 fév 2008 à 11:22:26 desperateman, le 22 fév 2008 à 15:43:40 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « excel copier contenu plusieurs cellules ..... » dans :
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Excel - Effacer le contenu de certaines cellules. VoirProblème Voici mon problème : J'ai 6 cellules comportant des listes déroulantes. Les 6 sont sélectionnées à chaque fois. J'aimerais pouvoir avoir un bouton pour réinitialiser les 6 en même temps c'est à dire qu'elles apparaissent vides (bien sûr...

1

got2be71, le 22 fév 2008 à 15:46:25

Si ca marche avec concatener je viens de tester :
=CONCATENER(A2 & ";"; B2 & ";"; C2)

Répondre à got2be71

2

desperateman, le 22 fév 2008 à 15:56: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

Répondre à desperateman

3

got2be71, le 22 fév 2008 à 15:58:05

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.

Répondre à got2be71

4

desperateman, le 22 fév 2008 à 16:05:33

Désolé là j y arrive pas ?
dans A7 de mon exemple je tape quoi? =concatener(???????????????)
désolé je suis novice avec cette formule

Répondre à desperateman

5

got2be71, le 22 fév 2008 à 16:08:09

=concatener(A1 & ";";A2 & ";";A3 & ";";A4 & ";";A5 & ";";A6 & ";";A7 & ";";A8 & ";";....etc et a la fin )
VOila

Répondre à got2be71

7

desperateman, le 22 fév 2008 à 16:12:55

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?

Répondre à desperateman

6

got2be71, le 22 fév 2008 à 16:13:07

ça marche ?

Répondre à got2be71

8

got2be71, le 22 fév 2008 à 16:15:03

Oui sauf pour les numéros de cellules tu peux les entrer dans la formule en les selectionnant avec la souris !

Répondre à got2be71

9

desperateman, le 22 fév 2008 à 16:21:44

Ok ça marche mais j ai + de 500 cellule à taper, je suis pas couché
mais merci c est déjà ça

Répondre à desperateman

10

tompols, le 22 fév 2008 à 16:28:50

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

Répondre à tompols

11

desperateman, le 22 fév 2008 à 16:32:52

Bonjour, tu peux m expliquer ton histoire de cSV je connais pas? pour le vba c est trop compliqué pour moi

Répondre à desperateman

12

Meldja, le 22 fév 2008 à 18:39: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.

Répondre à Meldja

13

eriiic, le 22 fév 2008 à 21:53:55
  • +1

Bonsoir,

rholalalaaaa.... j'ai pitié de ta nuit.... :-)
Voici une fonction personnalisée
http://www.cijoint.fr/cjlink.php?file=cj200802/cij8110605865­231.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

Répondre à eriiic

14

dilok, le 22 fév 2008 à 23:43:10

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!!!!!! Le peu que je sais, c'est à mon ignorance que je le dois.

Répondre à dilok

15

eriiic, le 22 fév 2008 à 23:55:19
  • +2

Ouvre le fichier joint et regarde l'exemple dans la cellule B1
eric

Répondre à eriiic

17

desperateman, le 23 fév 2008 à 09:33:17

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?

Répondre à desperateman

16

dilok, le 23 fév 2008 à 00:14:09

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?
Le peu que je sais, c'est à mon ignorance que je le dois.

Répondre à dilok

18

eriiic, le 23 fév 2008 à 10:10:43

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

Répondre à eriiic

19

desperateman, le 23 fév 2008 à 10:59:49

Ok ça fonctionne mais j ai ramé.
merci à toi ériic

Répondre à desperateman

20

 eriiic, le 23 fév 2008 à 11:22:26

Ok, super :-)
n'oublie pas de mettre en résolu stp. Merci
eric

Répondre à eriiic
Collection CommentÇaMarche.net