Transformer un tableau Excel en une colonne

Résolu/Fermé
Signaler
-
 John -
Bonjour à tous les membres,

Pour mon travail, je cherche à transformer un tableau excel en une colonne.

Exemple :

Mon tableau est :
A1 = 1 B1 = 2 C1 = 3
A2 = 4 B2 = 5 C2 = 6

J'aimerais avoir une colonne qui se remplit de la manière suivante :
A1 = 1
A2 = 2
A3 = 3
A4 = 4
A5 = 5
A6 = 6

Je cherche donc une fonction qui pourrait faire ça automatiquement puisque mon tableau de valeurs fait 24 colonnes et 365 lignes.

Le mieux serait une formule Excel car je ne maîtrise pas VBA

Un grand merci pour l'aide d'avance :)

4 réponses

Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
847
Bonjour à tous,

si tes données sont, comme Philou10120 le propose, en A1:X365 et le résultat en AA1:AA8760, tu sélectionnes AA1:AA8760 et tu saisis cette formule matricielle :
=INDEX($A$1:$X$365;1+ENT((LIGNE($1:$8760)-1)/24);1+MOD(LIGNE($1:$8760)-1;24))


cordialement
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
55060
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
30 novembre 2021
16 998
Bonjour John (et les autres).

Formule non matricielle, donc plus compliquée, permettant d'afficher dans un fichier une colonne de 8760 cellules, à partir d'un tableau de 24 x 365 cellules situé dans la Feuil1 d'un autre fichier appelé Classeur5
=INDEX([Classeur5]Feuil1!$A$1:$X$365;ARRONDI.SUP(LIGNE() /24;0);SI(MOD(LIGNE();24)=0;24;MOD(LIGNE();24)))

Parfait !!

Merci beaucoup ;)
Messages postés
7612
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
672
Bonjour,

Voici un exemple en vba si tu ne trouves pas de formule:

Sub For_Each_Next_Plage()
Dim FL1 As Worksheet, Cell As Range, Plage As Range
 Dim i As Integer
 i = 1
    Set FL1 = Worksheets("Feuil1") 'adapter feuille
    With FL1
        'Détermination de la plage de cellules à lire
        'Peut s'écrire en utilisant l'objet range de la plage
        'For Each Cell In .Range("B3:E15")
 
        'ou en utilisant l'objet Plage (range) de la plage
        Set Plage = .Range("A1:E15") 'adapter plage
        For Each Cell In Plage
  'Valeur de la cellule lue
          Range("F" & i) = Cell.Value 'adapter colonne de reception
          i = i + 1
        Next
    End With
    Set FL1 = Nothing
    Set Plage = Nothing
End Sub

@+ Le Pivert
Messages postés
7612
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
672
Voila un exemple:

Ouvrir le classeur "Boucle" et cliquez sur GO, la colonne A du classeur "test" se rempli.
A adapter bien entendu!

http://www.cjoint.com/c/GCvp5HXkGSQ

@+ Le Pivert
Messages postés
5723
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
30 novembre 2021
675
Bonjour John

Sans macro, si vos données sont en colonne A1:X365 mettre cette formule en AA1

=INDIRECT(ADRESSE(COLONNE()-26;LIGNE();1;1;"feuil1");1)

puis trier celle-ci jusqu'à la colonne OA et tirer la ligne AA1:OA1
vers le bas jusqu'à la ligne 24
Merci cs_Le Pivert ! Je vais essayer cette solution si la solution via Excel est trop compliqué ...

Merci également à PHILOU10120. Cependant, j'ai oublié de précisé que la colonne que je souhaite remplir est situé dans un autre fichier excel ... Pourrais-t-on adapter ta formule ?

John
Messages postés
5723
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
30 novembre 2021
675 > John
Remplacer Feuil1 par le chemin du fichier
Ouvrir les 2 classeurs et se mettre dans la formule ci-dessus et sélectionner Feuil1 puis allez dans l'autre classeur es cliquer sur la feuille ou vous voulez récupérer les infos, puis entrer
Feuil1 est remplacer par la nouvelle feuille de l'autre classeur
J'ai l'impression que ça ne marche pas :(. En fait, je souhaiterais créer une seule et unique colonne qui se remplit en lisant le tableau : d'abord les valeurs de la 1ère ligne, puis la 2ème ligne à la suite, 3 ème ligne ...

C'est plus compréhensible ?