Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

retournement de tableau

  • Initiateur de la discussion Initiateur de la discussion steeve
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

steeve

Guest
Bonjour,

Je dispose d'un tableau dont j'ai copier les valeurs dans une autre feuille

J'ai fait ceci avec la fonction suivante (merci pat1545 et Robert):

Sub coppp()

Dim nblignes As Integer ' un entier pas variant
Dim rng As Range

Set rng = Worksheets('feuille').Range('plageNomme') ' la plage nommée
Set desti = Sheets('feuil3').Range('A257') 'destination de la copie
rng.Copy ' copie des valeurs
desti.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False ' escape

End Sub

Je voudrai maintenant le retourner:

[ol]Voici La structure actuelle de mon tableau[/ol]

Champ1|Champ2|Champ3|Champ4|Champ5|->ligne des intitulés du tableau
Val1|Val2|Val3|Val4|Val5->Valeur du tableau (ligne1)
Val1|Val2|Val3|Val4|Val5->Valeur du tableau (ligne2)
Val1|Val2|Val3|Val4|Val5->Valeur du tableau (ligne3)


[ol]Je voudrai arriver à ce résultat:[/ol]

Ligne|Champs|Valeur
1|Champ1|Val1
1|Champ2|Val2
1|Champ3|Val3
1|Champ4|Val4
1|Champ5|Val5
2|Champ1|Val1
2|Champ2|Val2
2|Champ3|Val3
2|Champ4|Val4
2|Champ5|Val5


La solution est-elle de faire une boucle imbriquée ?

Est-ce que quelqu'un a déjà fait ce code ou pourrait me l'indiquer?


Merci à tous
 
Salut Steeve,

Tu trouveras satisfaction avec la fonction TRANSPOSE. Je crois d'ailleurs qu'elle peut retourner des matrices (tableaux) de données numériques comme alphabétiques.

Ciao
 
re voila 1 fichier exemple, tu peux d'ailleurs utiliser l'aide de Excel pour la fonction

A+ [file name=Transpose_20060404130242.zip size=5253]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Transpose_20060404130242.zip[/file]
 

Pièces jointes

Merci pour ta réponse !

J'ai oublié de dire que mon tableau était de taille variable, et donc que je travaille avec des plages nommées. Je peux qd même utilisé la fonction 'transpose' ?

Par ailleurs je voudrai placer le code de la macro dans un bouton de ma première feuille.
Est-ce que je peux adapter le code de la macro avec cette fonction et peut-elle aussi me générer le nombre de lignes que j'ai dans mon tableau ?

Dsl...
Merci
 
Re-Bonjour

J'arrive bien à retourner mon tableau avec le code suivant:

Set rng = Worksheets('feuil3').Range('TableauAtransposer') ' la plage nommée

rng.Select ' Matrice à transposer
Selection.Copy
Range('A35').Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Range('A30').Select
Application.CutCopyMode = False '

End Sub


MAIS, je n'arrive pas à faire ma boucle pour effectuer le changement de ligne. L'objectif étant que mes valeurs tiennent sur une seule colonne (comme spécifier dans mon exemple plus haut)

Quelqu'un pourrait-il m'aider à faire cette boucle ?

Merci par avance
 
Bonjour Hervé,

Et Merci!!!!, c'est exactement ce que je voulais.

Encore une autre exigence, dsl... Comment puis-je faire maintenant pour identifier mes enregistrements ?
C'est à dire ajouter un numéro de ligne qui s'incrémente à chaque fois que l'on lit une ligne.

Sur mon exemple, cela donnerait:

Ligne|Champs|Valeur
1|Champ1|Val1
1|Champ2|Val2
1|Champ3|Val3
1|Champ4|Val4
1|Champ5|Val5
2|Champ1|Val1
2|Champ2|Val2
2|Champ3|Val3
2|Champ4|Val4
2|Champ5|Val5

Merci à tous pour votre aide
 
bonsoir
dans la macro de Hervé
i est le numéro de la ligne lue
il suffit donc de l'afficher dans la premiere colonne et de decaler les deux autres
i demarre a deux il faut donc le diminuer de 1 a chaque iteration
Code:
For i = 2 To UBound(tablo)
  For j = 1 To UBound(tablo, 2)
        With Sheets('feuil2')
            .Cells(ligne, 1) = i - 1
            .Cells(ligne, 2) = tablo(1, j)
            .Cells(ligne, 3) = tablo(i, j)
            ligne = ligne + 1
        End With
    Next j
Next i

Message édité par: Qrieux, à: 04/04/2006 18:40
 
Bonjour Hervé, bonjour Qrieux, bonjour à toutes et à tous

Je suis arrivé avec le code que vous m'avez fourni à ce que je voulais.
Je n'ai pas donné toutes les données de mon pb, car je pensais m'en sortir avec ce bout de prog mais je ne m'en sors pas.
En fait ce que je n'ai pas mentionné, c'est que je dispose de plusieurs tableaux et je voudrai les afficher
les uns à la suite des autres en colonne (car par la suite je vais intégrer ça dans Access).
Ce que j'arrive à faire aujourd'hui avec ce code, c'est afficher mes tableaux les uns à côté des autres en ligne
(en spécifiant la cellule où doit s'afficher le deuxième tableau: 'With Sheets('feuil4').Range('D1')').
Je n'arrive pas à mettre le tableau2 à la suite du tableau1 car mes tableaux ne sont pas de taille fixe (plage nommée).
Comment spécifier au programme la fin du premier tableau et dire au deuxième à quel endroit s'afficher?


Tableau|Ligne|Champs|Valeur
Tableau1|1|Champ1|Val1
Tableau1|1|Champ2|Val2
Tableau1|1|Champ3|Val3
Tableau1|1|Champ4|Val4
Tableau1|1|Champ5|Val5
Tableau1|2|Champ1|Val1
Tableau1|2|Champ2|Val2
Tableau1|2|Champ3|Val3
Tableau1|2|Champ4|Val4
Tableau1|2|Champ5|Val5
Tableau1|3|Champ1|Val1
Tableau1|3|Champ2|Val2
Tableau1|3|Champ3|Val3
Tableau1|3|Champ4|Val4
Tableau1|3|Champ5|Val5
--
Tableau2|1|Champ1|Val1
Tableau2|1|Champ2|Val2
Tableau2|1|Champ3|Val3
Tableau2|1|Champ4|Val4
Tableau2|1|Champ5|Val5
Tableau2|2|Champ1|Val1
Tableau2|2|Champ2|Val2
Tableau2|2|Champ3|Val3
Tableau2|2|Champ4|Val4
Tableau2|2|Champ5|Val5


Merci à tous pour votre aide
 
Bonjour steeve, Qrieux, tata josette, le monde

Steeve, pourrais tu nous joindre une exemple de ton fichier (sans données confidentielles) avec ce que tu as actuellement et l'objectif à attendre.

salut 🙂
 
Re-Bonjour à tous !!!

Merci pour cette précision Hervé, j'espère que je serai plus compréhensible avec cet exemple.

Vous trouverez ci-joint un exemple avec en rouge ce que je n'arrive pas à faire (en feuille2).

D'avance merci
Steeve [file name=Testtab.zip size=10617]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Testtab.zip[/file]
 

Pièces jointes

re steeve

en pièce jointe ton fichier modifié.

j'ai refait un autre code (renvoi du résultat en feuille 3).

normalement ce code s'adapte aux dimensions de tes tableaux ainsi qu'a leurs nombres. pour peu que tu respect un minimum la structure, a savoir :

les titres de tes tableaux toujours en ligne 1 et dans la premiere colonne du tableau

pas de colonnes vides entre chaque tableau

et le premier tableau commencant bien en colonne A.

voilà

PS : le nouveau code est dans le module 2

salut [file name=testTab.zip size=12980]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testTab.zip[/file]
 
Merci, c'est exactement ce que je voulais.
J'ai testé, et c'est marche très bien.

Je cherche encore dans le code comment spécifier la feuille où se trouve les tableaux origines.
En effet mon bouton ne se trouve pas dans la feuille des tableaux en fait.

Voilà voilà je cherche, et si qqun repasse par là à tout hasard avec une réponse je suis toujours preneur.... :whistle:

En tout cas, vraiment merci !!!
 
Oups, j'ai parlé trop vite.
J'ai encore besoin de vous

J'ai beau chercher et je n'y arrive pas. Si je ne peux pas spécifier la feuille ou se trouve mes tableaux je ne peux pas utiliser ce code.
Où dois-je indiquer la feuille à prendre en compte ?

D'avance merci
 
re steeve 🙂

en pièce jointe, le fichier modifié.

j'ai mis un commentaire dans le code pour que tu repère l'endroit ou tu doit mettre le nom de la feuille.

salut [file name=testTab_20060405204423.zip size=13053]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testTab_20060405204423.zip[/file]
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
0
Affichages
1 K
bestsh
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…