Mettre colonne en ligne pour chaque date

Bonjour,

Je voulais savoir si quelqu'un connaissait un moyen rapide de type macro pour transformer la feuille que j'ai attaché.

J'aimerais voir à la place de la représentation actuelle, avoir une ligne pour chaque date au lieu d'avoir les dates par colonnes. Il fautdrait donc une colonne supplémentaire qui donnerait la date qui est actuellement en colonne (Q1 2012 / Q2 2012...) puis une autre colonne avec le nombre de produits comme fait actuellement.

Je vous remercie d'avance !

Bonsoir Nitram 22 le forum

est-ce que tu pourrais nous mettre en feuil2 le résultat obtenu car je ne comprend pas ce que tu veux, a réception des explications, je te fais la macro

a+

papou

Bonjour,

Merci pour ta réponse rapide !

J'ai mis le même fichier avec un apercu du résultat !

J'aimerais bien utiliser cette macro pour des fichiers similaires, mais avec d'autres colonne avant la colonne I "Customer" et potentiellement plus de lignes !

Merci !

Martin

Bonjour à tous,

Pour simplifier la macro, j'ai interverti les 2 dernières colonnes sur feuille "Résultat"

Sub Formate()
'Claude pour nitram22 le 23/08/2011
Dim A%, i%              'boucle sur colonnes feuille "ROAD MAP"
Dim Lg&                 'dernière ligne feuille "ROAD MAP"
Dim Lg2&, Lg3&          'dernière ligne feuille "Resultat"
Dim cL%                 'dernière colonne feuille "ROAD MAP"
Dim f As Worksheet
    Application.ScreenUpdating = False

        Set f = Sheets("ROAD MAP")
        Lg = f.Range("a" & Rows.Count).End(xlUp).Row
        cL = f.Cells(1, Columns.Count).End(xlToLeft).Column
    With Sheets("Résultat")
            .Range("a2:a" & .[a65000].End(xlUp).Row + 1).EntireRow.Delete 'efface
        For A = 10 To cL Step 5
            For i = A To A + 3
                Lg2 = .Range("a" & Rows.Count).End(xlUp).Row + 1

                Union(f.Range("a2:i" & Lg), Range(f.Cells(2, i), f.Cells(Lg, i))) _
                .Copy Destination:=.Range("a65000").End(xlUp)(2)
                Lg3 = .Range("a" & Rows.Count).End(xlUp).Row
                Range(.Cells(Lg2, "k"), .Cells(Lg3, "k")) = f.Cells(1, i)
            Next i
        Next A
    End With
End Sub

Amicalement

Claude

Bonjour Claude,

Merci pour votre réponse !

Pourriez vous m'indiquer quels champs il faut modifier s'il y a plus de colonne et plus de lignes.

J'imagine qu'il faut faire commencer la boucle sur A à partir de la colonne dans laquelle il y a les premières données à mettre en ligne. mais ensuite je n'arrive pas à l'adapter...

Merci de votre aide !

MArtin

re,

On démarre après la colonne Customer, c'est à dire la colonne 10 ("J")

For A = 10 To cL Step 5

peu importent le nombre de lignes et les colonnes après

Claude

Ne faut il pas modifier aussi le code qui permet de copier-coller les colonne avant la "J" ?

Merci !

On copie à chaque fois, les colonnes A à i, + la colonne qui va bien derrière

si problème, envoie la structure réelle

Bonjour,

Je pense que je confond certains "i" avec le "i" de la colonne en question...

Voici la forme du fichier complet...

Pouvez vous m'aider ?

Merci !

Martin !

re,

le fichier n'est pas passé !

pas besoin de toutes les lignes

Claude

Oups !

Voilà !

-- 23 Août 2011, 15:29 --

Oups !

Voilà !

Martin !

re,

il n'y a plus de colonne Total ?, çà change tout,

merci de mettre les en-têtes réels et quelques lignes, qu'on y voit clair !

ne m'oblige pas à t'arracher les renseignements à chaque fois !

Claude

Désolé !

En fait j'aimerais surtout une macro adaptable pour transformer le genre de fichier présenté comme dans les envois précédents mais avec une possibilité de la modifier rapidement en fonction du nombre de colonne avant les données de nombre de produit (celles qui sont).

Pourriez vous m'aider en commentant votre macro, comme ça j'aimerais pouvoir éviter de revenir vers toi !

Voici un fichier plus complet !

Merci !

Bonsoir,

Sous réserve que la 1ère colonne "date" commence par "Q1" (Q1 2011, Q1 2012, etc..)

c'est notre point de départ, sinon il faudra un autre repère.

Comme les feuilles ne seront pas toujours nommées pareil, il faut donc :

placer la feuille "données" en 1er onglet

placer la feuille "résultat" en 2ème onglet

on traite alors Sheets(1) et Sheets(2) sans tenir compte des noms de feuille.

J'ai testé sur les 2 fichiers, çà semble ok

Amicalement

Claude

Bonjour Claude,

Merci beaucoup !

Cela fonctionne parfaitement et le repère Q1 est parfait !

J'ai repéré dans la macro où était la définition du repère et au besoin je le modifierai !

MErci beaucoup pour ton aide !!

Martin

Bonjour,

à tout hasard, voici une version qui supprime les lignes

où il n'y a pas de valeur dans la colonne "Nombre produits"

(sur ce fichier, çà fait 2500 lignes de moins sur 3300)

et pour ma curiosité perso, pourquoi cette opération ?

Bonne Journée, et n'oublie pas de clôturer ce poste

Claude

a resolu3

Merci pour votre aide !

C'est parfait !

Rechercher des sujets similaires à "mettre colonne ligne chaque date"