Transposer et ordonner

Bonjour à toutes et tous,

je suis utilisateur d'Excel depuis... ..fichtre.... bref , un certain temps.

Je ne suis pas aller très loin dans les fonctionnalités, je " macrotte" un peu, et j'utilise

quelques fonctions de bases.( Recherchev, Estvide.......)

Je me permets de vous solliciter pour avoir de l'aide sur le problème suivant :

Contexte :

J'ai un projet de réalisation de photo en pixel art en béton.

Je récupère des données issues d'un logiciel de modélisation 3D, appelons ça la faisabilité numérique, grâce à un script python.

Ces donnée sont les coordonnées et différents paramètres des " pixel "qui composent l'image.

Le tout, une fois importé dans Excel se présente comme ceci :

N° / Position x / Position y / Position Z / Couleur R / Couleur V / Couleur B / Hauteur

comme ce sont des pixels, cela fait vite beaucoup de lignes.

Pour vous donner un exemple prenons une image de 10 px X 5 px( largeur x hauteur ), cela se présente comme ceci pour la numérotation issue du script python.

41 42 43 44 45 46 47 48 49 50

31 32 33 34 35 36 37 38 39 40

21 22 23 24 25 26 27 28 29 30

11 12 13 14 15 16 17 18 19 20

01 02 03 04 05 06 07 08 09 10

Dans Excel, tout est importé de la ligne 0 à 50, l'un en dessous de l'autre.

0

1

50

Ce que je souhaiterais faire de façon automatique, c'est dans ce cas précis ( image 10x5)

transposer toutes les 10 lignes.

Afin d'avoir un tableau

0 11 21 31 41

... ... ... .... ....

10 20 30 40 50

Il me servirait alors de plan de pose.

Le but est de trouver la formule ou les manipulations qui permettent de réaliser cette fonctionnalité.

J'espère que j'étais assez clair pour être compris

Merci pour vos réponses.

Sam

Bonjour et bienvenue sur le forum

Pourrais-tu joindre un fichier avec un exemple concret montrant les données d'où tu pars et ce que tu veux obtenir ?

Bye !

Merci pour l’accueil.

Voici le fichier, dans le 2° onglet, j'ai commencé à trier comme je souhaiterai, mais je n'ai pas tout fait.

J'espère que l'exemple sera parlant.

21pixel-art.xlsx (214.84 Ko)

Bonsoir à tous,

Vois ceci :

Restitution en Feuil1.

Sub test()
Dim i As Long, n As Long
    n = 1
    With Sheets("pixelart").Range("a1").CurrentRegion
        For i = 2 To .Rows.Count Step 41
            .Range(.Cells(i, 1), .Cells(i + 40, 8)).Copy _
                            Sheets("feuil1").Cells(1, n)
            n = n + 8
        Next
    End With
End Sub

klin89

Un essai à tester. Te convient-il ?

Bye !

17pixel-art.xlsm (226.46 Ko)

Merci pour vos réponses rapides.

Je ne connais pas le VBA;

Il me faut suivre les cours.

Autrement je viens d'essayer le fichier joint, et cela donne exactement ce que je souhaite.

Question : Y a t il moyen d'enregistrer en temps que modéle la macro et le code VBA.

Comme mon fichier .txt à toujours le même format, seul le nombre de ligne va changer,

car il dépend de la résolution choisit. Ce qui veut dire, qu'il faut que je puisse modifier

le nombre de ligne. Ici; le 41 dans le code ? c 'est bien ça?

For i = 2 To .Rows.Count Step 41

.Range(.Cells(i, 1), .Cells(i + 40, 8)).Copy _

Sheets("feuil1").Cells(1, n)

Merci pour vos réponses

Bonjour

Nouvelle version. Te convient-elle ?

https://www.cjoint.com/c/EKnhU7Tdpzo

Bye !

Superbe, merci.

Je viens de gueter le code VBA.

Si je comprends, tu indiques que " rep" est une variable que l'on doit taper équivalent au nombre ligne.

Il y a des similitude avec ce que j'ai vu sous python.

Merci encore.

Rechercher des sujets similaires à "transposer ordonner"