XL 2016 Transformer un nouveau Tableau à double entrée en liste en VBA - impossibilité d'adapter le code

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jerome-lost

XLDnaute Nouveau
Bonjour à tous,

C'est vraiment une chance de pouvoir faire appel à une communauté d'amateurs compétents, cela fait maintenant un jour que je n'arrive à rien et je commence à desespérer.

Voilà, Je dispose d'un tableau à double entrée qu'un code VBA transforme en liste . Le script fonctionne tres bien (placé dans la fenetre ci dessous)... en gras ce que je ne comprends pas . Ou cela se complique , c'est que j'ai un nouveau tableau à double entrée que je dois convertir en liste. J'ai essayé d'adapter le code mais je n'abouti à rien. J'aurai aimé partir de ce code pour commencer à comprendre les arcanes des tableaux dynamiques VBA. Je vous transmets le nouveau tableau à double entree que je dois convertir en liste (fichier joint).

Je vous remercie pour l'attention que vous voudrez bien accorder à ma demande

Sub TRANSPOSE_RHPM()
Dim a, b(), i As Long, j As Long, n As Long, x
With Sheets("RHPM SOURCE").Range("a4").CurrentRegion
a = .Value
End With
ReDim b(1 To (((UBound(a, 2) - 3) / 2) * (UBound(a, 1) - 1)), 1 To 6)
For i = 2 To UBound(a, 1)
For j = 4 To UBound(a, 2) Step 2
n = n + 1
x = Split(a(1, j), "-")

b(n, 1) = a(i, 1): b(n, 2) = a(i, 2): b(n, 3) = a(i, 3)
b(n, 4) = x(0): b(n, 5) = a(i, j)
b(n, 5) = a(i, j): b(n, 6) = a(i, j + 1)

Next
Next
With Sheets("RHPM RESULTAT").Cells(1).Resize(, 6)
.CurrentRegion.Clear
.Value = [{"Unité","Code Statut","Libellé Statut","Mois","Eff Prév","Etp Rém"}]
.Offset(1).Resize(n).Value = b
With .CurrentRegion
.Font.Name = "calibri"
.Font.Size = 10
.VerticalAlignment = xlCenter
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
With .Rows(1)
.BorderAround Weight:=xlThin
.HorizontalAlignment = xlCenter
.Interior.ColorIndex = 36
.Font.Size = 11
End With
.Columns.ColumnWidth = 14
End With
.Parent.Activate
End With
End Sub
 

Pièces jointes

MDR! en tout cas merci pour cet éclairage précieux
Je vous joints le tableau en question.
Les 16 premières colonnes devaient rester inchangées
la 17 eme colonne devait contenir les mois
la 18 colonne devait contenir les montants
Le nouveau tableau devrait apparaitre sur un nouvel onglet
 

Pièces jointes

Bonjour,

Sur la base du fichier du post #16 et de son énoncé, voici une proposition par power query en seulement 4 étapes.

Obligé de zipper le fichier pour le charger ici après traitement.

P.S. : Les noms de mois ne sont pas normalisés (manquent les accents) ce qui peut être une gêne ultérieure
 

Pièces jointes

Dernière édition:
Bonsoir Jerome
Bonsoir le Fil
Je suis ce fil et je n'ai pas encore compris le But
j'ai cherché un exemple de ce que doit être le résultat et pas trouvé ou compris
Pouvez-vous me mettre un exemple du Format de ce qui doit être récupéré ?
Entre les 28 colonnes du fichier du post 1 et Les doubles Colonne pour chaque mois (Eff Prév(1) et JANVIER- Etp Rém (4)) etc etc
il faudrait quelques Ligne du résultat attendu en fonction du tableau Source (lequel d'ailleurs Lol)
je ne comprends pas
Merci par avance
Jean marie
 
Merci à tous pour vous etre penchés sur mon problème de tableau à double entrée à convertir en liste. Hasco , je ne pensais pas que l'on pouvait obtenir un resultat aussi rapidement avec un tableau aussi lourd à partir de cette methode. Je tenais à remercie particulierement Sylvanu qui a fait preuve d'une patience angelique à mon egard en decorticant ligne par ligne le script VBA. Grace à lui , j'ai pu reecrire la macro pour ce nouveau tableau.
 
bonsoir à tous
perso je démarre le post
et quand je vois ça
VB:
With Sheets("RHPM RESULTAT").Cells(1).Resize(, 6)
.CurrentRegion.Clear
je me dis qu'il faudrait expliquer ce que c'est que currentregion veut dire à notre ami
ou au moins le renvoyer vers les bases
cells(1)resize (, sur 6 colones) donc( rows.count) lignes ( il y a un gouffre)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
97
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
499
Réponses
3
Affichages
598
Retour