Formule recopie cellules excel
chenneq2
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai plusieurs colonnes dans excel qui contiennent chacune un nombre différent de valeurs (cellules contenant un chiffre). Je souhaite sans passer par des copier-coller, que toutes les valeurs apparaissent les unes à la suite des autres dans une nouvelle colonne : valeurs de la colonne A puis celles de la colonne B ...
Une formule est elle adaptée ?
Merci de votre aide
cordialement
J'ai plusieurs colonnes dans excel qui contiennent chacune un nombre différent de valeurs (cellules contenant un chiffre). Je souhaite sans passer par des copier-coller, que toutes les valeurs apparaissent les unes à la suite des autres dans une nouvelle colonne : valeurs de la colonne A puis celles de la colonne B ...
Une formule est elle adaptée ?
Merci de votre aide
cordialement
Configuration: Macintosh / Safari 14.0.1
A voir également:
- Formule recopie cellules excel
- Formule excel pour additionner plusieurs cellules - Guide
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
6 réponses
Bonjour,
vous voulez faire apparaître les valeurs de plusieurs colonnes dans une seule et unique colonne, c'est ça ?
vous voulez faire apparaître les valeurs de plusieurs colonnes dans une seule et unique colonne, c'est ça ?
Bonjour chennec, Yoyo
" les valeurs apparaissent les unes à la suite des autres "
C'est à dire triées dans l'ordre croissant des x colonnes ?
" les valeurs apparaissent les unes à la suite des autres "
C'est à dire triées dans l'ordre croissant des x colonnes ?
Merci. Voici la solution
Sub concat()
For i = 2 To ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 1).Value
Next i
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 2).Value
Next i
For i = 2 To ActiveSheet.Range("C" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 3).Value
Next i
For i = 2 To ActiveSheet.Range("D" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 4).Value
Next i
For i = 2 To ActiveSheet.Range("E" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 5).Value
End Sub
Sub concat()
For i = 2 To ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 1).Value
Next i
For i = 2 To ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 2).Value
Next i
For i = 2 To ActiveSheet.Range("C" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 3).Value
Next i
For i = 2 To ActiveSheet.Range("D" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 4).Value
Next i
For i = 2 To ActiveSheet.Range("E" & Rows.Count).End(xlUp).Row + 1
derlignec = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row + 1
Cells(derlignec, 6).Value = Cells(i, 5).Value
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Avec Excel sur Windows solution rapide
restitution à partir de F2 (en f1 entêté par ex: compil)
Avec Excel sur Windows solution rapide
Option Explicit
'-----------------
Sub xxx()
Dim Col As Byte, Derlig As Integer, Ligvid As Long, Tablo
Range("F2:F500000").Clear
For Col = 1 To 5
Derlig = Columns(Col).Find(what:="*", searchdirection:=xlPrevious).Row
Tablo = Range(Cells(1, Col), Cells(Derlig, Col))
Ligvid = Columns("F").Find("", Range("F1"), xlValues).Row
Cells(Ligvid, "F").Resize(UBound(Tablo), 1) = Tablo
Next
End Sub
restitution à partir de F2 (en f1 entêté par ex: compil)
bon la solution proposée fonctionne parfaitement sur un "petit" jeu de données. ici je m'adresse à un fichier de 10 de milliers de lignes et là ça coince. je ne sais pas si Excel tourne en tache de fond ou si il est bloqué (mon Mac ne me dit pas qu'il l'est) mais après plusieurs heures je n'ai pas le résultat escompté avec la macro.
J'aurais éventuellement une autre option : "fusionner" (merger ?) différents fichiers Excel formatés de manière identique (même nom de colonnes).
Savez vous comment faire ?
D'avance merci bonne soirée.