XL 2016 Copier - transposer

seb83100

XLDnaute Nouveau
bonjour tout le monde,

par avance merci pour l'aide que vous allez m'apporter.

je cherche à réaliser une macro permettant de transposer les colonnes "taxe du mois" en ligne en conservant le n° de compte, le libellé du compte et en précisant sur la ligne de la colonne transposer le mois "taxe". (cf image ci-dessous).

vous trouverez en pièce jointe le fichier.

Séb
1629919490862.png
 

Pièces jointes

  • TRANSPOSER.xlsx
    13 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonsoir seb83100,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, resu(), i&, n&, j%, col%
tablo = [B4].CurrentRegion.Resize(, 27) 'matrice, plus rapide
ReDim resu(1 To 2 * UBound(tablo), 1 To 15)
For i = 2 To UBound(tablo)
    n = n + 1: resu(n, 2) = tablo(i, 2): resu(n, 3) = tablo(i, 3)
    n = n + 1: resu(n, 1) = "taxe": resu(n, 2) = tablo(i, 2): resu(n, 3) = tablo(i, 3)
    For j = 4 To 27 Step 2
        col = 4 + (j - 4) / 2
        resu(n - 1, col) = tablo(i, j)
        resu(n, col) = tablo(i, j + 1)
Next j, i
'---restitution---
Application.EnableEvents = False 'désactive les évènements
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [B18] '1ère cellule de restitution, à adapter
    If n Then
        .Resize(n, 15) = resu
        .Resize(n, 15).Borders.Weight = xlThin 'bordures
    End If
   .Offset(n).Resize(Rows.Count - n - .Row + 1, 15).Delete xlUp 'RAZ eb dessous
End With
With UsedRange: End With 'actualise la barre de défilement verticale
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche quand on modifie ou valide une cellule quelconque.

Bonne nuit.
 

Pièces jointes

  • TRANSPOSER(1).xlsm
    21.2 KB · Affichages: 8

seb83100

XLDnaute Nouveau
Bonjour job75 et merci pour ton travail,

je vais regarder pour adapter ta macro à mon fichier de travail, je vais devoir redimensionner le 1er tableau et faire apparaitre le résultat de la macro dans une autre feuille.

je reviens vers toi si j'ai du mal à modifier.

et encore merci pour ton travail
 

seb83100

XLDnaute Nouveau
bonsoir,

je reviens vers vous car je ne suis pas arrivé à modifier mon tableau et à faire apparaitre le résultat sur une nouvelle feuille.

ci-joint une modification de mon 1er fichier avec le nombre de colonne réelle de mon fichier.

Par avance merci pour votre aide
 

job75

XLDnaute Barbatruc
Bonsoir seb83100, Amilo,

On peut se passer de VBA et de Power Query.

Voyez le fichier joint et les formules en B18, C18 (à tirer sur D18) et E18 (à tirer sur F18: P18).

Puis tirer la plage B18: P18 vers le bas.

Si l'on utilise une feuille séparée pour les résultats c'est facile d'adapter les formules.

A+
 

Pièces jointes

  • TRANSPOSER Formules(1).xlsx
    14.7 KB · Affichages: 5
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour seb83100, le forum,

Il n'est pas difficile d'adapter les formules du fichier post #7 au fichier post #6, voyez ce fichier (2).

Il y a 4 formules différentes :

- en A18 copiée sur A18:F23 et H18:J23

- en G18 copiée sur G18:G23 (j'ai laissé le contrôle d'erreur du menu Fichier-Options-Formules)

- en K18 copiée sur K18:V23

- en W18 copiée sur W18:AG23 (adaptée de la formule en A18).

A+
 

Pièces jointes

  • TRANSPOSER Formules(2).xlsx
    17.9 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 971
Membres
101 852
dernier inscrit
dthi16088