MAcro: basculer des données, présentées en ligne, en colonne

loulou_yellow

XLDnaute Nouveau
BOnjour

quelqu'un pourrait-il m'aider sur le point suivant

Je pars du tableau ci-dessous

REFERENCE / COLORIS
ref1 / coloris a
ref1 / coloris b
ref1 / coloris c
ref2 / coloris d
ref2 / coloris e

Le nombre de coloris maxi par référence est 4
Je souhaiterais afficher sur la dernière ligne de la référence considérée, les différents coloris mais en colonne via une macro (sans passer par un tableau croisé dynamique)
En gros ça donnerai l'image en pièce jointe

Vous pouvez mettre tout ce que vous voulez sur les autres lignes, je souhaiterais obtenir les infos que sur la dernière ligne de la ref considérée

Je vous mets en pj le fichier en question avec ma tentative laborieuse au niveau du module1
Au passage, quelqu'un pourrait-il me dire pourquoi ma donnée nbre_ligne me renvoie à 1 au lieu de 11 ?

Merci pour votre aide les génies
 

Pièces jointes

  • Image résultats.jpg
    Image résultats.jpg
    67.9 KB · Affichages: 104
  • Aide tranfert coloris.xlsm
    15.8 KB · Affichages: 72
  • Aide tranfert coloris.xlsm
    15.8 KB · Affichages: 68
  • Aide tranfert coloris.xlsm
    15.8 KB · Affichages: 70

Robert

XLDnaute Barbatruc
Repose en paix
Re : MAcro: basculer des données, présentées en ligne, en colonne

Bonjour Loulou_Yelow, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim dl As Integer 'déclare la variable dl (dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim tc() 'déclare le tableau de variables tc (Tableau des Couleurs)
Dim i As Byte 'déclare la variable i (Incrément)

With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
    Set pl = .Range("A2:A" & dl) 'définit la plage pl
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
        ReDim Preserve tc(i) 'redimensionne le tableau de variables tc
        tc(i) = cel.Offset(0, 1).Value 'attribue une variable indexée au tableau tc
        i = i + 1 'incrémente i
        If cel.Value <> cel.Offset(1, 0).Value Then 'condition : si la cellule cel est différente que la cellule en dessous d'elle
            For i = 0 To UBound(tc) 'boucle sur toutes les variables du tableau tc
                'place dans la ligne de cel, les variables les unes à coté des autres
                .Cells(cel.Row, Application.Columns.Count).End(xlToLeft).Offset(0, 1).Value = tc(i)
            Next i 'prochaine variable de la boucle
            Erase tc() 'réinitialise le tableau tc
            i = 0 'réinitialise la variable i
        End If 'fin de la condition
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : MAcro: basculer des données, présentées en ligne, en colonne

Bonjour loulou-yello

Salut Robert

Une autre version

Code:
Sub test()
For n = 3 To Range("A" & Rows.Count).End(xlUp).Row + 1
    tot = tot & Range("B" & n - 1) & ";"
  If Range("A" & n) <> Range("A" & n - 1) Then
    xx = Split(tot, ";")
    For m = LBound(xx) To UBound(xx) - 1
      Cells(n - 1, m + 3) = xx(m)
    Next m
    tot = ""
  End If
 Next
End Sub
 

Pièces jointes

  • Aide tranfert coloris.xlsm
    21.3 KB · Affichages: 61
  • Aide tranfert coloris.xlsm
    21.3 KB · Affichages: 63
  • Aide tranfert coloris.xlsm
    21.3 KB · Affichages: 65

loulou_yellow

XLDnaute Nouveau
Re : MAcro: basculer des données, présentées en ligne, en colonne

Bonjour Pierrejean

ta solution marche bien sur l'exemple que je t'ai donné.
Mais je dois avoir mal à comprendre les différents indicateurs car j'ai essayé de reproduire ce que t'as fais mais ça marche pas trop

PEux-tu me l'adapter sur le fichier en pj stp ?

merci pour ton aide
 

Pièces jointes

  • Tableau publi test.xlsm
    66.2 KB · Affichages: 58
  • Tableau publi test.xlsm
    66.2 KB · Affichages: 62
  • Tableau publi test.xlsm
    66.2 KB · Affichages: 64

pierrejean

XLDnaute Barbatruc
Re : MAcro: basculer des données, présentées en ligne, en colonne

Re

Colonnes masquées !!!
Pas glop pas glop !!!
Vois comme ceci
 

Pièces jointes

  • Tableau publi test.xlsm
    110.8 KB · Affichages: 60
  • Tableau publi test.xlsm
    110.8 KB · Affichages: 62
  • Tableau publi test.xlsm
    110.8 KB · Affichages: 66

loulou_yellow

XLDnaute Nouveau
Re : MAcro: basculer des données, présentées en ligne, en colonne [RESOLU]

BOnjour pierrejean

Merci beaucoup ça marche super bien !
Juste pour savoir (comme ça, je pourrais le reproduire si le cas se représentait), pourquoi dans ta boucle for tu commences n à 5 ?
 

Discussions similaires

Statistiques des forums

Discussions
312 485
Messages
2 088 805
Membres
103 971
dernier inscrit
abdazee