XL 2016 Basculer tableau 1 ligne/12 colonnes et un tableau 6 lignes/ 4 colonnes

cocro

XLDnaute Junior
Bonjour,
j'ai récupéré un fichier en ligne avec l'information temporelle spécifiée dans le nom de la variable, je souhaite convertir l'information en un tableau annuel

appui_faire_tableau1.jpg


La fonction transpose met les communes en colonnes, cela ne correspond pas à mon attente

Comment dois-je m'y prendre ?
je vous fourni un tableau exemple pour comprendre mon souci
Cordialement
Corinne
 

Pièces jointes

  • tableau1.xlsx
    14.9 KB · Affichages: 27

cocro

XLDnaute Junior
petite question sur "var1" dans le tableau final.

J'ai tenté (en vain) de reprendre le code pour mettre le nom de mes variables initiales (c1:n1) mais je n'y arrive pas. Je ne vois pas où elle est intégrée dans la macro

dernière aide svp

cordialement
 

cocro

XLDnaute Junior
Mille mercis de nouveau.
Cela convient parfaitement à mon besoin.
Je vais prendre le temps nécessaire pour déchiffrer ces macros et qui sait tenter d'en faire une petite soeur.

Bonne journée à vous
Bonne balade autour de chez vous

ps : au sujet de l'appui graphique, j'ai cherché très longtemps comment modifier la résolution/taille image en sortie. Réponse : la qualité de l'export image est liée au zoom que l'on donne à la feuille de calcul mais vous le saviez peut-être déjà.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Sans powerquery, mais avec l'astuce du TCD
(ici illustrée en VBA, mais la manip se fait rapidement manuellement avec l'assistant Tableau Croisé Dynamique)
VB:
Sub Macro1()
Dim NomTCD$, pvt As PivotTable
NomTCD = InputBox("Nom du TCD?")
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, _
    SourceData:=Array("Feuil1!R1C2:R4C14"), _
    Version:=xlPivotTableVersion15).CreatePivotTable _
    TableDestination:="", _
    TableName:=NomTCD, _
    DefaultVersion:=xlPivotTableVersion15
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
Set pvt = ActiveSheet.PivotTables(NomTCD)
pvt.DataPivotField.PivotItems("Nombre de Valeur").Position = 1
pvt.PivotFields("Colonne").Orientation = xlHidden
pvt.PivotFields("Ligne").Orientation = xlHidden
Range("A4").Select
Selection.ShowDetail = True
End Sub
NB: J 'ai repris le tableau initial pour le test (donc sur une feuille nommée Feuil1 et dans la plage de cellules:B1:N4)
Selon votre version d'Excel, il faudra adapter la syntaxe de la création du TCD.
Pour plus de détails sur cette astuce, voir le net: cross table et flat table.

[aparté]un petit salut amical à Roblochon en passant[/aparté]
 

Staple1600

XLDnaute Barbatruc
Re

Une version plus simple qui devrait fonctionner sans se préoccuper de la version d'Excel
NB: Dans cette version, il faut sélectionner la tableau initial (entêtes comprises) avant de lancer la macro.
VB:
Sub Macro2_générique()
Dim sht As Worksheet, pvt As PivotTable, pvtCache As PivotCache, sTableau$, NomTCD$
X = Int(Rnd * 100000) + Second(Time)
NomTCD = InputBox("Nom du TCD?", "Test", "_TCD_" & X)
'Attention: il faut sélectionner le tableau initial
sTableau = Selection.Parent.Name & "!" & Selection.Address(ReferenceStyle:=xlR1C1)
Set pvtCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:=sTableau)
Set pvt = pvtCache.CreatePivotTable(TableDestination:="", TableName:=NomTCD)
    pvt.DataPivotField.PivotItems("Nombre de Valeur").Position = 1
    pvt.PivotFields("Colonne").Orientation = xlHidden
    pvt.PivotFields("Ligne").Orientation = xlHidden
Range("A2").Select
Selection.ShowDetail = True
End Sub
 

cocro

XLDnaute Junior
Bonjour,
si je comprends votre proposition, vous m'invitez à faire un tdyn de mon fichier puis ensuite de déplacer "colonne" dans la boite "ligne" afin d'obtenir ceci

commune1
4168,248696​
var1_11
41​
var1_19
43​
var2_11
5​
var2_19
7​
var3_11
46​
var3_19
50​
var4_11
0,108695652​
var4_19
0,14​
var5_11
2​
var5_19
2​
var6_11
1986​
var6_19
1986​

hélas, ce n'est pas ce que je souhaite obtenir au final.Je souhaite un fichier de quatre colonnes
(commune - var1 - valeur 2011 - valeur 2019)
mon fichier est temporel : var1.. var6 prennent en plus la valeur de l'année traitée. en l’occurrence 2011 & 2019.

A moins que je ne comprenne pas l'astuce TCD de votre post
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 320
Messages
2 087 220
Membres
103 497
dernier inscrit
JP9231