Transformation données excel

Fermé
Jo_corsaire Messages postés 5 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 8 septembre 2021 - 17 déc. 2014 à 12:56
 Maurice - 17 déc. 2014 à 14:51
Bonjour,

Je manipule assez bien excel mais quand il s'agit de créer une macro, j'ai beaucoup de difficultés.
J'ai un tableau excel comme indiqué ci dessous (feuille 1)

Date 70100200 70100300 70100500 70100600
01/10/2014 293,33 630,66 318,44 45,67
02/10/2014 62,08 222,27 183,41 33,17
03/10/2014 411,08 391,23 163,60 3,33
04/10/2014 155,58 452,13 303,51 28,42




Pour récupérer ces données dans un logiciel comptable, je dois mettre en forme le tableau comme ci après ( feuille 2)

01/10/2014 70100200 293,33
02/10/2014 70100200 62,08
03/10/2014 70100200 411,08
04/10/2014 70100200 155,58
01/10/2014 70100300 630,66
02/10/2014 70100300 222,27
03/10/2014 70100300 391,23
04/10/2014 70100300 452,13
01/10/2014 70100500 318,44
02/10/2014 70100500 183,41
03/10/2014 70100500 163,60
04/10/2014 70100500 303,51
01/10/2014 70100600 45,67
02/10/2014 70100600 33,17
03/10/2014 70100600 3,33
04/10/2014 70100600 28,42

Je ne sais pas vraiment comment automatiser la transposition des données.
Aujourd'hui je procède par copier coller avec transposition mais mon tableau de base fait 1000 lignes !!!
Merci de m'aider
Jo


A voir également:

3 réponses

via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704
17 déc. 2014 à 13:34
Bonjour

En supposant les données en Feuille1 en colonnes A à E avec titres en ligne 1, à copier en Feuille 2 dans les colonnes A à C à partir de la ligne 2 la macro pourrait être :

Sub transpose()
x = 1 'variable de ligne de copie en feuille 2 - la copie commence à la ligne suivante donc ici en ligne 2
Dim Ligne As Long
'determination de la dernière ligne remplie de la colonne 1 1ere feuille
Ligne = Sheets(1).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'boucle de la colonne 2 à la colonne 5
For col = 2 To 5
' boucle de la ligne 2 à la dernière
For lg = 2 To Ligne
'incrémentation de la ligne de recopie
x = x + 1
' copie des données
Sheets(2).Range("A" & x) = Sheets(1).Range("A" & lg)
Sheets(2).Range("B" & x) = Sheets(1).Cells(1, col)
Sheets(2).Range("C" & x) = Sheets(1).Range("C" & lg)
Next lg
Next col
End Sub


A adapter à ton fichier si nécessaire

Cdlmnt
0
Jo_corsaire Messages postés 5 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 8 septembre 2021
17 déc. 2014 à 14:01
Parfait ca fonctionne.
Je te remercie vraiment et en plus c'est commenté ce qui va me permettre de m'améliorer.
Vraiment merci
Jo
0
bonjour

alor la je ne peux pas voir sans un model de ton fichier excel

tu importe ses données comment ?
A+
Maurice
0
Jo_corsaire Messages postés 5 Date d'inscription mercredi 17 décembre 2014 Statut Membre Dernière intervention 8 septembre 2021
17 déc. 2014 à 14:09
Merci Maurice de t'intéresser à ma question.
En fait j'ai appliqué ce que me propose VIA55.
je récupère les données transformées dans la feuille .2
ensuite je fais une sauvegarde en format "csv" (feuille 2) qui est le format accepté par mon logiciel de compta.

A+
Jo
0
Bonjour

tu doit avoir un problemme avec ton modele ou avec la macro
car sa donne pas la meme chose ?
A+
Maurice
0