XL 2016 Comment transposer de façon automatique ?

sarkoko

XLDnaute Nouveau
Bonjour la team !

J'ai du mal à mettre en forme un tableau. En effet, quand j'exporte des données, excel les classes automatiquement dans une seule et même colonne alors que j'aimerais que les données soient dans plusieurs colonnes. Avec la fonction transposer j'arrive à mon résultat mais bien évidemment j'y arrive que manuellement alors que j'ai énormément de données.

Peut-on faire cela de façon automatiser ?

Ci joint un exemple du résultat attendu. Dans la feuille 4 le résultat attendu et dans la feuille 1 la mise en page "brute"

Merci d'avance !
 

Pièces jointes

  • Classeur1.xlsx
    11.4 KB · Affichages: 9

sarkoko

XLDnaute Nouveau
Genial ! c'est exactement ce que j'attends, si j'ai bien compris je suis les étapes appliquées dans l'éditeur. cependant j'ai du mal à comprendre les différentes étapes surtout les étapes " personnalisée " serait-il possible de détailler les étapes ? merci d'avance
 

Amilo

XLDnaute Accro
Re,

Sans m'être trop attardé sur la structure de la plage, je suis parti dans mon précédent fichier vers une requête qui traite un nombre de cellules variables entre chaque cellule vide mais finalement c'est toujours le même nombre de 13 cellules avant chaque vide.
Finalement c'est beaucoup plus simple et cela ne demande pas de saisir manuellement du code.

Je vous transmets une vidéo pour la démonstration ainsi qu'un nouveau fichier avec moins d'étapes que le précédent fichier que j'ai supprimé.

Video_Transposer

Cordialement
 

Pièces jointes

  • Transposer.xlsx
    21.6 KB · Affichages: 6
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir sarkoko, Amilo,

Une solution VBA très simple dans le fichier joint :
VB:
Private Sub Worksheet_Activate()
Dim a As Range, i&
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
Set a = Feuil1.[A:A].SpecialCells(xlCellTypeConstants)
Cells.Delete 'RAZ
For i = 1 To a.Areas.Count
    Cells(i, 1).Resize(, a.Areas(i).Count) = Application.Transpose(a.Areas(i))
Next
Columns.AutoFit 'ajustement largeurs
End Sub
La macro est placée dans le module de la feuille "Résultat" et se déclenche quand on active la feuille.

Ce n'est pas une solution très rapide, s'il y a beaucoup de lignes il faudra passer par des tableaux VBA.

A+
 

Pièces jointes

  • Transpose(1).xlsm
    17.7 KB · Affichages: 13

sarkoko

XLDnaute Nouveau
Déjà merci beaucoup pour vos retours, vos êtes au top.

Cependant il y a une difficulté supplémentaire dans les méthodes que vous avez présentées. Dans la méthode Power query la mise en forme se fait en fonction d'un nombre de lignes définies ( 13) alors que dans certains matchs il des prolongations, donc plus de lignes, ce qui fausse la mise en forme finale.

-Y a-t-il un moyen pour faire la même requête mais avec une recherche par date ? ( en effet la date est le seul critère qui permet de fermer le match en quelque sorte).

Dans la seconde méthode ( VBA) le problème est que pour certains matchs l'espace entre les matchs est supprimé et donc la mise forme et interrompue.

-Peut-on rajouter une ligne automatiquement au-dessus de la date par exemple ?

En tout cas merci beaucoup pour vos réponses.

Ci-joint un nouveau fichier avec ces contraintes.
 

Pièces jointes

  • Classeur1 avec contrainte.xlsx
    15.9 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bah même avec un tableau source tarabiscoté on peut s'en sortir, voyez ce fichier et la macro :
VB:
Private Sub Worksheet_Activate()
Dim P As Range, i&, a As Range, tablo
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
Set P = Feuil1.[A:A].SpecialCells(xlCellTypeConstants, 1) 'nombres
Cells.Delete 'RAZ
For i = 1 To P.Areas.Count
    Set a = P.Areas(i)
    tablo = a.Offset(-3).Resize(a.Count + 3)
    If InStr(a(1).Offset(-4), ":") Then tablo(1, 1) = a(1).Offset(-4) & " " & tablo(1, 1) 'concaténation si prolongation
    Cells(i, 1).Resize(, UBound(tablo)) = Application.Transpose(tablo)
Next
Columns.AutoFit 'ajustement largeurs
End Sub
 

Pièces jointes

  • Classeur1 avec contrainte(1).xlsm
    24 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 330
Membres
102 862
dernier inscrit
Emma35400