Mettre des données sur plusieurs colonnes les unes à la suite des autres ?
1 réponse
clement.mazen
Bonjour,
je recherche un moyen (via une macro VBA) d'automatiser le
regroupement sur une seule colonne des données contenues sur plusieurs
colonnes dans un tableau.
- Exemple de point de départ typique : un tableau de cinquante
colonnes de données par 200 lignes plus une colonne de titre pour
chaque ligne. (le nombre de colonnes et lignes n'est jamais
identique).
- Point d'arrivée souhaité : un tableau de deux colonnes et 10 000
(50x200) lignes
La colonne n°2 doit contenir les cinquante colonnes de données mises à
la suite les une des autres
La colonne n°1 doit contenir le titre correspondant dans le tableau
original à chaque élément de la colonne n°2.
C'est une procédure que je dois faire trop souvent à mon goût et sur
laquelle je m'arrache les cheveux à couper/coller les colonnes pour
les regrouper en une seule (je procède par dichotomie, mais quand
même...)
J'ai essayé de rechercher une solution, mais je ne trouve que des
astuces pour consolider des données sur plusieurs feuilles de travail.
Je débute en VBA et je m'arrache les cheveux à essayer de faire une
procédure pour automatiser ça, si quelqu'un pouvait m'aiguiller, je
lui en serai très reconnaissant !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bourby
bonsoir,
essaye ceci dans un module standard; lancer l'exécution après avoir activé ta feuille d'origine:
Sub essai() Dim nouvelleFeuille As Worksheet, ancienneFeuille As Worksheet
Set ancienneFeuille = ActiveSheet For i = 1 To Sheets.Count If Sheets(i).Name = "enColonne" Then Sheets(i).Delete Next i Set nouvelleFeuille = Sheets.Add(Type:=xlWorksheet) nouvelleFeuille.Name = "enColonne"
k = 0 For i = 1 To ancienneFeuille.Range("A1").End(xlDown).Row For j = 2 To ancienneFeuille.Cells(i, 1).End(xlToRight).Column k = k + 1 nouvelleFeuille.Cells(k, 1) = ancienneFeuille.Cells(i, 1) nouvelleFeuille.Cells(k, 2) = ancienneFeuille.Cells(i, j) Next j Next i
End Sub
Cordialement
Bourby
"Cl?ment" a écrit dans le message news:
Bonjour,
je recherche un moyen (via une macro VBA) d'automatiser le regroupement sur une seule colonne des données contenues sur plusieurs colonnes dans un tableau.
- Exemple de point de départ typique : un tableau de cinquante colonnes de données par 200 lignes plus une colonne de titre pour chaque ligne. (le nombre de colonnes et lignes n'est jamais identique).
- Point d'arrivée souhaité : un tableau de deux colonnes et 10 000 (50x200) lignes La colonne n°2 doit contenir les cinquante colonnes de données mises à la suite les une des autres La colonne n°1 doit contenir le titre correspondant dans le tableau original à chaque élément de la colonne n°2.
C'est une procédure que je dois faire trop souvent à mon goût et sur laquelle je m'arrache les cheveux à couper/coller les colonnes pour les regrouper en une seule (je procède par dichotomie, mais quand même...)
J'ai essayé de rechercher une solution, mais je ne trouve que des astuces pour consolider des données sur plusieurs feuilles de travail. Je débute en VBA et je m'arrache les cheveux à essayer de faire une procédure pour automatiser ça, si quelqu'un pouvait m'aiguiller, je lui en serai très reconnaissant !
Merci pour votre aide !
Clément
bonsoir,
essaye ceci dans un module standard; lancer l'exécution après avoir activé
ta feuille d'origine:
Sub essai()
Dim nouvelleFeuille As Worksheet, ancienneFeuille As Worksheet
Set ancienneFeuille = ActiveSheet
For i = 1 To Sheets.Count
If Sheets(i).Name = "enColonne" Then Sheets(i).Delete
Next i
Set nouvelleFeuille = Sheets.Add(Type:=xlWorksheet)
nouvelleFeuille.Name = "enColonne"
k = 0
For i = 1 To ancienneFeuille.Range("A1").End(xlDown).Row
For j = 2 To ancienneFeuille.Cells(i, 1).End(xlToRight).Column
k = k + 1
nouvelleFeuille.Cells(k, 1) = ancienneFeuille.Cells(i, 1)
nouvelleFeuille.Cells(k, 2) = ancienneFeuille.Cells(i, j)
Next j
Next i
End Sub
Cordialement
Bourby
"Cl?ment" <clement.mazen@gmail.com> a écrit dans le message news:
f868ca4c.0501191103.43543238@posting.google.com...
Bonjour,
je recherche un moyen (via une macro VBA) d'automatiser le
regroupement sur une seule colonne des données contenues sur plusieurs
colonnes dans un tableau.
- Exemple de point de départ typique : un tableau de cinquante
colonnes de données par 200 lignes plus une colonne de titre pour
chaque ligne. (le nombre de colonnes et lignes n'est jamais
identique).
- Point d'arrivée souhaité : un tableau de deux colonnes et 10 000
(50x200) lignes
La colonne n°2 doit contenir les cinquante colonnes de données mises à
la suite les une des autres
La colonne n°1 doit contenir le titre correspondant dans le tableau
original à chaque élément de la colonne n°2.
C'est une procédure que je dois faire trop souvent à mon goût et sur
laquelle je m'arrache les cheveux à couper/coller les colonnes pour
les regrouper en une seule (je procède par dichotomie, mais quand
même...)
J'ai essayé de rechercher une solution, mais je ne trouve que des
astuces pour consolider des données sur plusieurs feuilles de travail.
Je débute en VBA et je m'arrache les cheveux à essayer de faire une
procédure pour automatiser ça, si quelqu'un pouvait m'aiguiller, je
lui en serai très reconnaissant !
essaye ceci dans un module standard; lancer l'exécution après avoir activé ta feuille d'origine:
Sub essai() Dim nouvelleFeuille As Worksheet, ancienneFeuille As Worksheet
Set ancienneFeuille = ActiveSheet For i = 1 To Sheets.Count If Sheets(i).Name = "enColonne" Then Sheets(i).Delete Next i Set nouvelleFeuille = Sheets.Add(Type:=xlWorksheet) nouvelleFeuille.Name = "enColonne"
k = 0 For i = 1 To ancienneFeuille.Range("A1").End(xlDown).Row For j = 2 To ancienneFeuille.Cells(i, 1).End(xlToRight).Column k = k + 1 nouvelleFeuille.Cells(k, 1) = ancienneFeuille.Cells(i, 1) nouvelleFeuille.Cells(k, 2) = ancienneFeuille.Cells(i, j) Next j Next i
End Sub
Cordialement
Bourby
"Cl?ment" a écrit dans le message news:
Bonjour,
je recherche un moyen (via une macro VBA) d'automatiser le regroupement sur une seule colonne des données contenues sur plusieurs colonnes dans un tableau.
- Exemple de point de départ typique : un tableau de cinquante colonnes de données par 200 lignes plus une colonne de titre pour chaque ligne. (le nombre de colonnes et lignes n'est jamais identique).
- Point d'arrivée souhaité : un tableau de deux colonnes et 10 000 (50x200) lignes La colonne n°2 doit contenir les cinquante colonnes de données mises à la suite les une des autres La colonne n°1 doit contenir le titre correspondant dans le tableau original à chaque élément de la colonne n°2.
C'est une procédure que je dois faire trop souvent à mon goût et sur laquelle je m'arrache les cheveux à couper/coller les colonnes pour les regrouper en une seule (je procède par dichotomie, mais quand même...)
J'ai essayé de rechercher une solution, mais je ne trouve que des astuces pour consolider des données sur plusieurs feuilles de travail. Je débute en VBA et je m'arrache les cheveux à essayer de faire une procédure pour automatiser ça, si quelqu'un pouvait m'aiguiller, je lui en serai très reconnaissant !