Excel copier contenu plusieurs cellules .....

Résolu
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

12 réponses

  1. Contributeur
    ouvre le fichier joint et regarde l'exemple dans la cellule B1
    eric
    80
    1. 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
  2. Si ca marche avec concatener je viens de tester :
    =CONCATENER(A2 & ";"; B2 & ";"; C2)
    11
    1. 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
  3. =concatener(A1 & ";";A2 & ";";A3 & ";";A4 & ";";A5 & ";";A6 & ";";A7 & ";";A8 & ";";....etc et a la fin )
    VOila
    2
    1. 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
  4. Contributeur
    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
    1. 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
  5. Contributeur
    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
    1. ok ça fonctionne mais j ai ramé.
      merci à toi ériic
      0
  6. 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
    1. 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
      1. 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
    2. oui sauf pour les numéros de cellules tu peux les entrer dans la formule en les selectionnant avec la souris !
      0
      1. ok ça marche mais j ai + de 500 cellule à taper, je suis pas couché
        mais merci c est déjà ça
        0
    3. Contributeur
      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
      1. bonjour, tu peux m expliquer ton histoire de cSV je connais pas? pour le vba c est trop compliqué pour moi
        0
    4. 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
      1. Contributeur
        ok, super :-)
        n'oublie pas de mettre en résolu stp. Merci
        eric
        0
        1. asque c'est possible de automatise svp, genre : CONCATENER(A2:A10000&";")
          0
        2. Contributeur
          Pas bonjour non plus,

          La réponse est dans le début de ce topic.
          eric
          0
        3. 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
        4. Contributeur
          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
        5. salut, merci pour la réponse ok je vais créer un sujet
          0