Power Query Mise en page d'un tableau Power query

bennp

XLDnaute Occasionnel
Bonjour à tous,

je dois mettre en page un tableau issu de Power Query mais je n'arrive pas à le mettre en page, mes colonnes doivent être fixe et elles sont de petite largeur.

le problème est que du coup le texte dans les cellules ne sort pas de la cellule et ce n'est pas lisible. J'ai essayé de créer d'autres colonnes intermédiaires vide afin que le texte dépasse mais ça ne fonctionne pas. j'ai essayé avec un tableau croisé dynamique et ça filtre automatiquement lorsque plusieurs données sont les mêmes.

Je veux éviter de devoir dissocier mes tableaux dans power query dès que le texte risque de dépasser les cellules.

Quelqu'un as une idée pour résoudre mon problème s'il vous plait ?

Merci

Ben
 

Pièces jointes

  • Mise en page tableau.xlsx
    22.8 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour bennp, Hasco,

Voyez le fichier .xlsm joint et cette macro :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ListObjects(1).Range
    .Columns.ColumnWidth = 2.29
    If Not Intersect(ActiveCell, .Cells) Is Nothing Then ActiveCell.Columns.AutoFit
End With
End Sub
A+
 

Pièces jointes

  • Mise en page tableau.xlsm
    30.4 KB · Affichages: 6

OKBI

XLDnaute Junior
Bonjour,


1668166754894.png
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Hello @Hasco
Sur la base de l'idée d'Hasco (vider les cellules vides...), voici un petit code qui va agir uniquement dans les requêtes "Query", et à lancer dès l'actualisation des-dites requêtes...

VB:
Sub clear_TS()
Dim TS As Object
Dim Sh As Worksheet
Dim Cel As Range
For Each Sh In Sheets
    For Each TS In Sh.ListObjects
        If TS.SourceType = 3 Then
            For Each Cel In TS.DataBodyRange
                If Cel.Value = "" Then Cel.ClearContents
            Next Cel
        End If
    Next TS
Next Sh
End Sub
Bonne journée
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint l'étape ci-dessous a été rajoutée à la requête pour remplacer tous les "" de toutes les colonnes par null :
= Table.ReplaceValue(#"Type modifié","",null,Replacer.ReplaceValue,Table.ColumnNames(#"Type modifié"))
Dans le tableau résultat, les textes dépasseront sur les colonnes adjacentes non occupées et votre tableau résultat pourra garder ses largeurs de colonnes.

Si des colonnes sont à exclure du traitements si dessous colonne "Mur extérieur" et colonn "12" :
List.Difference(Table.ColumnNames( #"Valeur remplacée"),{"Mur extérieur","12"})

= Table.ReplaceValue(#"Type modifié","",null,Replacer.ReplaceValue,List.Difference(Table.ColumnNames( #"Type modifié),{"Mur extérieur","12"}))


[aparté]Hello cousin bh² :)[/aparté]
 

Pièces jointes

  • Mise en page tableau1.xlsx
    31.6 KB · Affichages: 3
Dernière édition:

bennp

XLDnaute Occasionnel
Bonjour,

je pense que la proposition d'Hasco est la plus simple, merci à tous !

Je voudrais centrer sur 2 colonnes les dernières colonnes, (ex : AB2 et AC2, AD2 et AE2), vous pensez qu'on peut le faire automatiquement ?

je peux le faire en appuyant sur Alignement, le problème est qu'une fois le tableau mis à jour, ça s'efface.
Peut-on mettre en forme un tableau automatiquement une fois les données mises à jour ?

merci à tous :)
 

Pièces jointes

  • Mise en page tableau2.xlsx
    25.5 KB · Affichages: 1

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans la fenêtre des propriétés du tableau, avec les options :
1668419589067.png

Chez moi l'alignement centré sur plusieurs colonnes est conservé d'une actualisation à l'autre.
J'ai changé une donnée pour voir si les données étaient renouvelées.
Sinon vous pouvez utiliser un retrait (indentation)

Cordialement
 

Pièces jointes

  • Mise en page tableau2.xlsx
    35.5 KB · Affichages: 1

Hasco

XLDnaute Barbatruc
Repose en paix
Ce n'est pas une question de version excel, sinon le classeur que je vous ai communiqué ne fonctionnerait pas sur votre machine.
Je ne peux pas savoir ce qui se passe sans votre classeur réel et sa requête (anonymisez les données)
 

Discussions similaires

Réponses
7
Affichages
288
Réponses
13
Affichages
501

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 154
dernier inscrit
jefferson6488