Menu

Transformer un tableau Excel en une colonne [Résolu/Fermé]

John - 21 mars 2017 à 10:20 - Dernière réponse :  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 :)

Afficher la suite 

9 réponses

cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - Modifié par cs_Le Pivert le 21/03/2017 à 11:02
0
Utile
1
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
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 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
PHILOU10120 4963 Messages postés lundi 16 avril 2012Date d'inscription 12 avril 2018 Dernière intervention - 21 mars 2017 à 11:08
0
Utile
3
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
PHILOU10120 4963 Messages postés lundi 16 avril 2012Date d'inscription 12 avril 2018 Dernière intervention > 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
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 ?
JvDo 1814 Messages postés mercredi 27 juillet 2005Date d'inscription 20 avril 2018 Dernière intervention - 21 mars 2017 à 17:36
0
Utile
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
Raymond PENTIER 45555 Messages postés lundi 13 août 2007Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 21 mars 2017 à 22:40
0
Utile
1
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 ;)