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

  • Initiateur de la discussion Initiateur de la discussion cocro
  • Date de début Date de début

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 !

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

Bonjour Cocro,
Voir en PJ avec :
VB:
=SIERREUR(INDEX($C$2:$H$4;EQUIV($B9;$B$2:$B$4;0);EQUIV($C9;$C$1:$H$1;0));"")
J'ai modifié Vra1_1 en Var1 pour avoir identité entre la ligne 1 et la colonne C.

ou encore en feuille 2
Code:
=SIERREUR(INDEX($C$3:$N$5;EQUIV($B10;$B$3:$B$5;0);EQUIV($C10;$C$2:$H$2;0)+EQUIV(D$9;$C$1:$N$1;0)-1);"")
si on rajoute une ligne Année. L'avantage est que la formule est la même partout.
 

Pièces jointes

Dernière édition:
Bonjour,
merci pour ces propositions.
Je serais assez tenté par la solution de Roblochon qui semble facile à mettre en oeuvre quand on connait Power Query. J'arrive à déchiffrer le processus mais je bloque sur où se fait le placement du résultat. Comment on fixe H9 comme recevant le résultat de la requête.
Sachant que j'ai une base de 150 communes à traiter, je ne peux laisser l'exemple sous les lignes de mon exemple.

L'idée de sylvanu est sympa également mais je ne sais pas comment ajouter en amont la transposition des deux premières colonnes (nom commune et libellé des variables). Comme les formules font référence au contenu de la cellule ((EQUIV($B10;$B$3:$B$5;0)), je tourne en rond

Merci pour un nouveau coup de pouce
 
Re,

Dans l'onglet de ruban 'Données', bouton 'Requêtes et connexion'
Dans le panneaux des requêtes et connexions qui s'affiche à droite, sélectionnez la requêtes 'Résultats', click-droit puis sélectionnez 'Charger dans...'

1606399768136.png


puis sélectionnez vos options dans la fenêtre suivante.
1606399872811.png


bonne soirée
 
Bonjour,

Autre proposition par formules,. Du fait qu'il y a une séparation (bande grisée), cela crée un décalage, il ne peut donc y avoir une formule unique.

J'ai ajouté un bouton qui recrée les formules au cas où elles seraient effacées par mégarde.

Cdlt
 

Pièces jointes

Merci pour ce partage. Je découvre petit à petit le power des macros excel 🙂 et le sens du partage de la communauté 😉

cette solution peut s'envisager sur un petit nombre de lignes à transposer mais également à coup de copier/coller pour toute ma base (en l'occurrence j'ai 150 communes à retravailler de la sorte). Je vais rajouter deux lignes à votre macro pour récupérer également le nom des commune et le nom des variables.
A moins que vous ayez une alternative ?

Cordialement
 
"cette solution peut s'envisager sur un petit nombre de lignes à transposer "
Non elle peut s'étendre à plusieurs communes, le seul ennui ce sont ces bandes grisées dans le tableau, sont-elles vraiment obligatoires? car elles font décaler la recherche et de par le fait, empêchent d'utiliser une formule unique.
 
Voici, vous pouvez ajouter le nombre de communes à traiter, et cliquez sur le bouton.
le résultat sépare les communes par des couleurs alternées pour une meilleure lisibilité.
VB:
Sub Formules()
    Dim DerLig As Long, DerLig_Donnees As Long, i As Long
    Dim Decalage_R As Long, Decalage_S As Long
    Application.ScreenUpdating = False
    DerLig = Range("P" & Rows.Count).End(xlUp).Row
    DerLig_Donnees = Range("B" & Rows.Count).End(xlUp).Row
    Range("R9:S" & DerLig).Clear
    Decalage_R = 7
    Decalage_S = 1
    For i = 9 To DerLig Step 6
        Range(Cells(i, "R"), Cells(i + 5, "R")).FormulaR1C1 = "=INDEX(R1C2:R" & DerLig_Donnees & "C14,MATCH(RC16,R1C2:R" & DerLig_Donnees & "C2,0),ROW()-" & Decalage_R & ")"
        Range(Cells(i, "S"), Cells(i + 5, "S")).FormulaR1C1 = "=INDEX(R1C2:R" & DerLig_Donnees & "C14,MATCH(RC16,R1C2:R" & DerLig_Donnees & "C2,0),ROW()-" & Decalage_S & ")"
        Range(Cells(i + 3, "R"), Cells(i + 3, "S")).NumberFormat = "0.0%"
        Range(Cells(i, "P"), Cells(i + 5, "S")).Borders().Weight = xlThin
        If Cells(i - 1, "R").Interior.Color <> RGB(222, 235, 246) Then
            Range(Cells(i, "P"), Cells(i + 5, "S")).Interior.Color = RGB(222, 235, 246)
        Else
            Range(Cells(i, "P"), Cells(i + 5, "S")).Interior.Color = RGB(226, 239, 217)
        End If
        Decalage_R = Decalage_R + 6
        Decalage_S = Decalage_S + 6
    Next i
End Sub
 

Pièces jointes

- 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

Retour