Fonction inverse de convertir sur excel [Fermé]

Signaler
-
 Emi -
Bonjour je voudrais savoir si quelqu'un savez comment faire pour obtenir la fonction inverse de convertir sur excel



Exemple:
j'ai 3 colonnes et pleins de lignes , je veux reunir tout ça sur une seule colonne avec les valeurs séparés avec des virgules.


123 srv5 pc5
124 srv6 pc6
125 srv7 pc7
....
...
...

sur 3 colonnes donnerai ceci sur une colonne


123, srv5, pc5
124, srv6, pc6
125, srv7, pc7
...
..
...


4 réponses

Messages postés
4428
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 217
Bonjour,

en supposant que tes valeurs sont en colonnes A, B et C, alors écrire en D1 :

=A1&","&B1&","&C1


ou

=CONCATENER(A1;",";B1;",";C1)


puis faire un cliquer-glisser (se mettre dans le coin en bas à droite de la cellule, attendre que le curseur se transforme en croix, cliquer puis glisser jusqu'à la ligne désirée).

Cordialement.
Bonjour
je ne sais pas si c'est que tu cherche, mais il ya la fonction concaténer qui rassemble des chaines de caractaires situés sur plusieurs cellules en une seule cellule.
Messages postés
4428
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 217
Bonjour,

si tu avais lu mon message juste au-dessus, tu aurais vu que j'avais déjà proposé la fonction concaténer ^^
Cordialement.
Bonjour,

J'ai à peu près le même problème sauf que mon tableau Excel utilise presque toutes les colonnes de la feuille... (je veux remplacer toutes ces colonnes par des virgules par exemple)

La fonction concatener apparaît donc fastidieuse...

Avez-vous une autre solution?!

Merci,
Messages postés
4428
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 217
Bonjour,

effectivement dans le cas d'un nombre important de colonnes, utiliser CONCATENER sera fastidieux. Il en est de même en utilisant l'esperluette (&).

Je ne vois qu'une solution : passer par une macro VBA.

Quelle est ta version d'Excel ?

Cordialement.
Messages postés
2321
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
4 juin 2020
836
Bonjour,
Une solution pour ceux qui aiment l'acrobatie:
Enregistrer au format TXT. Ouvrir avec un éditeur de texte genre wordpad remplacer les espaces par des virgules. Enregistrer. Importer ce fichier dans une feuille Excel.
Messages postés
23408
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
2 juin 2020
6 181
Bonjour tout le monde,

Pas si acrobatique que ça si on l'enregistre en *.csv
Là il suffit de replacer le ; par la , dans le fichier texte

eric
Merci a tous pour votre aide. Voici la solution Qu j ai adoptee:
Enregistrer en csv
Ouvrir le csv avec le notepad. Ainsi on obtient la liste des mots séparées de ;
Copier coller le tout dans excel et faire un rechercher remplacer ; par,
Lorsqu il y a plusieurs ; a la suite, remplacer deux ;; par une , jusqu a éliminer le surplus.

encore merci
Merci pour la formule, ça fonctionne très bien :)
Messages postés
9425
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
3 juin 2020
1 824
bonjour à tous

effectivement une macro devrait faire l'affaire, quelque chose comme ça

Option Explicit

Const separateur = ","
Const FD = "Feuil1"     ' feuille données
Const lidebFD = 4
Const codebFD = 1
Const FR = "Feuil2"     ' feuille résultat
Const lidebFR = 4
Const codebFR = 1

Public Sub ConcatenerColonnes()
Dim liFD As Long, lifinFD As Long
Dim coFD As Long, cofinFD As Long
Dim liFR As Long
Dim s As String
' dernière ligne feuille FD
  lifinFD = Sheets(FD).Cells(65536, codebFD).End(xlUp).Row
' initialisation liFR
  liFR = lidebFR
' on y va
  For liFD = lidebFD To lifinFD
    s = ""
    cofinFD = Sheets(FD).Cells(liFD, 255).End(xlToLeft).Column
    For coFD = codebFD To cofinFD - 1
      s = s & Sheets(FD).Cells(liFD, coFD).Value & separateur
    Next coFD
    s = s & Sheets(FD).Cells(liFD, cofinFD).Value
    Sheets(FR).Cells(liFR, codebFR).Value = s
    liFR = liFR + 1
  Next liFD
End Sub

bonne suite