XL 2016 macro VBA, passer d'une structure à une autre

medmed94

XLDnaute Nouveau
Bonjour,

J'aimerai concevoir une macros qui prend chaque lignes du tableau et les transformes en une seule colonne, en les imbriquant en structure ABAB.

Si vous avez des pistes ?

Cordialement,
 

Staple1600

XLDnaute Barbatruc
Re

Avec cette version, c'est ok ?
VB:
Sub Test_3()
Dim Source As Range, c As Range, lig&, i&
vEnt = Array("Couleurs", "Nom", "Prénom", "Age", "Date de naissance")
lig = Feuil1.Cells(Rows.Count, 1).End(3).Row
Set Source = Feuil1.Range("A2:E" & lig)
i = 0
Application.ScreenUpdating = False
For Each c In Source.Rows
c.Copy
Feuil2.[A1].Offset(i, 0).Resize(5) = Application.Transpose(vEnt)
Feuil2.[A1].Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
i = i + c.Columns.Count
Next
Feuil2.Columns("A:B").Columns.AutoFit: Feuil2.[A1].CurrentRegion.Borders.LineStyle = 1
End Sub
 

job75

XLDnaute Barbatruc
Bonsoir medmed94, JM,

Voyez cette macro dans le fichier joint, elle utilise des tableaux VBA et est donc très rapide :
VB:
Private Sub Worksheet_Activate()
Dim ncol%, tablo, resu(), i&, j%, n&
With Feuil1.[A1].CurrentRegion 'CodeName de la feuille à adapter
    ncol = .Columns.Count
    tablo = .Resize(, ncol + 1) 'matrice, plus rapide, au moins 2 éléments
End With
ReDim resu(1 To ncol * UBound(tablo), 1 To 2)
For i = 2 To UBound(tablo)
    For j = 1 To ncol
        n = n + 1
        resu(n, 1) = tablo(1, j)
        resu(n, 2) = tablo(i, j)
Next j, i
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A1] 'à adapter
    If n Then .Resize(n, 2) = resu: .Resize(n, 2).Borders.Weight = xlThin
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 2).Delete xlUp 'RAZ en dessous
End With
Columns("A:B").AutoFit 'ajustement largeur
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle se déclenche quand on active Feuil2.

Bonne nuit.
 

Pièces jointes

  • Classeur1test(1).xlsm
    23.1 KB · Affichages: 5
Dernière édition:

medmed94

XLDnaute Nouveau
Bonjour,

Je vous remercie a tous pour l'aide que vous m'apporter c'est très gentil de votre part j'aimerai arrivé a ce schéma avec une macros s'il vous plait.
Comme sur l'autre je partirai de la feuille 1 vers la feuille 2.

cordialement.
 

Pièces jointes

  • Classeur1test (1).xlsx
    14.5 KB · Affichages: 17

Discussions similaires

Réponses
7
Affichages
286

Statistiques des forums

Discussions
312 103
Messages
2 085 321
Membres
102 862
dernier inscrit
Emma35400