Convertir des données en lignes et colonnes et inversement

Henika

XLDnaute Nouveau
Bonjour,

Je sais que le sujet a déjà été traité précédemment mais je n'arrive pas à trouver de solution exacte à mon problème. (je suis vraiment débutante et je n'arrive pas à décrypter les différentes formules trouvées...)

J'ai un tableau de données (extrait de SAP) qui est en ligne avec des données sur 3 colonnes, je souhaiterais mettre en plusieurs colonnes. Je précise que le copier - coller transposé ne va pas car j'ai plus de 6000 lignes

Le fichier joint est plus parlant

Quelqu'un aurait-il une formule pour faire la manipulation lignes en colonnes (pour que je puisse travailler le fichier extrait de SAP) et une autre formule pour la manip inverse (afin que je puisse recharger les données modifiées sous SAP)

Merci pour votre aide
Henika
 

Pièces jointes

  • Test Prix.xls
    13.5 KB · Affichages: 61
  • Test Prix.xls
    13.5 KB · Affichages: 58
  • Test Prix.xls
    13.5 KB · Affichages: 54

Modeste

XLDnaute Barbatruc
Re : Convertir des données en lignes et colonnes et inversement

Bonjour Henika et bienvenue,

Une proposition par macro, en pièce jointe. Le code n'est sans doute pas optimisé, mais voyons déjà si ça semble fonctionner.
... si tu repasses par ici!?
 

Pièces jointes

  • Test Prix (Henika).xls
    41.5 KB · Affichages: 63

Henika

XLDnaute Nouveau
Re : Convertir des données en lignes et colonnes et inversement

Bonjour Modeste,

Un grand merci à toi!

Ca fonctionne parfaitement... et sur les 6000 lignes. C'est exactement ce que je cherchais.
J'ai mis du temps à comprendre qu'il fallait que j'execute la macro hé hé.:eek:, mais j'ai fini par trouver.

Bon, j'abuse peut être un peu mais est-il possible d'avoir la macro inverse?

Merci encore
Henika
 

Modeste

XLDnaute Barbatruc
Re : Convertir des données en lignes et colonnes et inversement

Bonsoir Henika,

Bonne nouvelle: tu n'as pas posté un message pour disparaître ensuite :rolleyes:

Mauvaise nouvelle: la macro inverse, je crois deviner de quoi il pourrait s'agir, mais ... il y a chez nous un proverbe un peu idiot qui dit: "Faire et défaire, c'est toujours travailler!"
En transposant à ton exemple, ça deviendrait: "quel sens peut donc bien avoir le fait de transposer un tableau sous une autre forme ... pour en revenir ensuite à la présentation de départ?" :confused:
Ne me réponds pas que c'est pour éviter de reprogrammer SAP ;) ma question serait plutôt: "n'est-il pas possible d'assurer le traitement des données du tableau, sous sa forme initiale?"
D'autre part, il faut "cadrer" un peu: tu n'auras jamais, pour un même article, plus que 4 prix et quantités? Le résultat doit apparaître dans la seconde feuille du classeur? On n'écrase pas les données initiales, suppose-je!?On n'atteindra jamais la limite de 65536 lignes imposée par Excel 2003? Tu n'attends pas que le code se charge de vérifier s'il y a toujours une "paire" prix/quantité, au niveau 1, 2, 3 ou 4? etc.

Bref, dis-nous en un peu plus ...

Accessoirement, passe tout de même un peu de temps à "fouiller" dans le code, pour te trouver des points de repères. Si, un jour, tu dois y apporter des modifications il serait souhaitable que tu gagnes en autonomie.
 

Henika

XLDnaute Nouveau
Re : Convertir des données en lignes et colonnes et inversement

Pour répondre à ta question, tout d'abord, je dois appliquer une hausse de prix différente sur chaque prix (ex: 12% sur les Prix 1, 10% sur les Prix 2...),, donc je suis obligée de travailler en colonnes.
Ensuite, je dois faire une brochure rassemblant tous les prix
Si je pouvais ne pas manipuler le fichier SAP, je le ferais. :eek:

Pour le reste, non je n'aurais jamais plus de 4 prix et 4 quantités pour un article. Qu'importe si le resultat apparait dans cette feuille ou une autre, comme j'ai d'autres données qui concernent l'article (et que je doit indiquer dans ma brochure), j'utiliserais une recherche verticale pour retrouver mes petits. On n' atteindra jamais les 65000 lignes d'excel. Le code ne doit pas se charger de retrouver les paires, car les quantités dépendent d'un autre paramètre : le conditionnment par carton.

Bon j'espère avoir été claire, car c'est pas facile à expliquer.
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Convertir des données en lignes et colonnes et inversement

Bonsoir Henika, le forum,

c'est pas facile à expliquer
Bah, si ça peut te rassurer, ce n'est pas nécessairement plus simple à comprendre :D

Pour illustrer la question que je posais précédemment (et en fonction des éléments que tu as ajouté dans ton dernier message), une proposition de formule qu'on aurait pu utiliser pour calculer tes prix (sans modifier la structure du tableau de départ), dans la pièce jointe.
Pour les prix j'ai fait avec 12%, 10%, 8% et 6% ... il me semble que l'avantage ici est que tu pourrais adapter et modifier, sans rien connaître en vba.

Maintenant, si tu affirmes que ta demande de "macro inverse" est incontournable, on y jettera un oeil bien volontiers! Je me contente ici, d'alimenter ta réflexion :p
 

Pièces jointes

  • Test Prix (2).xls
    24 KB · Affichages: 45

Henika

XLDnaute Nouveau
Re : Convertir des données en lignes et colonnes et inversement

Bonjour Modeste,


Je me contente ici, d'alimenter ta réflexion :p

Oui, ça cogite, ça cogite! ;)


Merci de prendre un peu de temps pour réfléchir à mon pb.

J'ai un peu réfléchi, fait des essais et ta seconde macro fonctionne très bien. Mais, je pense toujours que la macro inverse est préférable car : - Il m'est absolument nécessaire de travailler en colonnes (pour la brochure et la lecture du fichier par d'autres personnes)
- La hausse des prix est non seulement différente selon les colonnes mais il y a également tout un tas d'exceptions sur lesquelles je vais devoir travailler (comme si ce n'était pas assez compliqué comme ça :p). Si j'utilise tes deux macros, je devrais travailler sur les exceptions sur les deux fichiers: le fichier SAP et le fichier "colonnes". Evidemment, faire deux fois la même chose (à la main) peut engendrer des erreurs.
C'est pour cette raison qu'il me faut les deux macros.

Henika.
 

Modeste

XLDnaute Barbatruc
Re : Convertir des données en lignes et colonnes et inversement

Bonjour,

Voici donc une proposition de "macro inverse": le code est à coller dans le module1 à la suite de l'autre. Un message s'affiche et la macro s'interrompt si F5 en feuil1 est vide.
Les données sont recopiées en Feuil2.

Jette un oeil, pour voir si c'est ce que tu voulais ... et dis-nous si tu rencontres un problème.
VB:
Sub backToTheOrigin()
    Set f1 = Sheets("Feuil1")
    Set f2 = Sheets("Feuil2")
    If f1.[F5] = "" Then MsgBox "rien à transposer": Exit Sub
    lig = 2
    If f2.[A2] <> "" Then f2.Cells(2, 1).Resize(f2.Cells(Rows.Count, 1).End(xlUp).Row, 3).ClearContents
    For Each c In f1.Cells(5, 6).Resize(f1.Cells(Rows.Count, 6).End(xlUp).Row - 4, 1)
        For col = 1 To 4
            If c.Offset(0, col) <> "" Then
                f2.Cells(lig, 1) = c
                f2.Cells(lig, 2) = c.Offset(0, col)
                f2.Cells(lig, 3) = c.Offset(0, col + 4)
                lig = lig + 1
            End If
        Next col
    Next c
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG