Transformer un tableau Excel en une colonne

Résolu/Fermé
John - 21 mars 2017 à 10:20
 John - 22 mars 2017 à 10:14
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

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 853
21 mars 2017 à 17:36
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
cs_Le Pivert Messages postés 7870 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 23 janvier 2023 723
Modifié par cs_Le Pivert le 21/03/2017 à 11:02
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
0
cs_Le Pivert Messages postés 7870 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 23 janvier 2023 723
21 mars 2017 à 17:00
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
0
PHILOU10120 Messages postés 6195 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 février 2023 753
21 mars 2017 à 11:08
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
0
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
0
PHILOU10120 Messages postés 6195 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 février 2023 753 > John
21 mars 2017 à 11:56
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
0
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 ?
0
Raymond PENTIER Messages postés 56992 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 1 février 2023 17 171
21 mars 2017 à 22:40
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)))

0
Parfait !!

Merci beaucoup ;)
0