Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Tableau

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 !

jaclam

XLDnaute Nouveau
Bonjour

Je ne crois pas avoir vu cette question déjà traitée (du moins selon mes recherches).
J'ai créé un tableau Excel (v. Microsoft 365) à partir d'une plage de données. Dans les cellules dune ligne, j'ai des dates, des sigles sous forme de liste déroulante, des nombres et des formules de calcul.
J'ai renseigné les différentes lignes jusqu'à la ligne 37. Chaque nouvelle ligne renseignée reprenait les formats et les formules de la précédente ligne, ce qui fait la beauté de cet instrument qu'est le tableau. La couleur de ligne du tableau était également reprise (alternativement gris et couleur).
Arrivé à la ligne 38, impossible de retrouver ni les formats dates (exprimées en nombre), ni la couleur de la ligne, ni les formules de la précédente ligne, ni même la liste déroulante. Pourtant, quand mon curseur est positionné sur une des cellules de la ligne 38, je vois que je suis bien dans le tableau ( "Création de tableau" apparaît bien dans le menu principal.
J'ai essayé diverses solutions comme par exemple modifier dans le gestionnaire de noms la dernière ligne du tableau : 38 au lieu de 37(j'avais lu cela ailleurs) mais rien n'y fait.
J'espère avoir été clair.
Votre aide serait la bienvenue.
Merci beaucoup et bonne journée.
Jean-Claude
 
Bonjour jaclam, le forum,

Si vous craignez de vous tromper vous pouvez exécuter cette macro pour faire le travail :
VB:
Sub MAJ_Tableau()
Dim P As Range, tablo
Application.ScreenUpdating = False
With Sheets("Suivi compte")
    Set P = .ListObjects(1).Range 'tableau structuré
    tablo = P 'mémorise les valeurs
    .Cells.Clear 'efface toute la feuille
    P = tablo 'restitue les valeurs
    With .ListObjects.Add(xlSrcRange, P, , xlYes) 'recrée le tableau structuré
        .TableStyle = "TableStyleMedium8"
        With .Range.Rows(2).Resize(.ListRows.Count)
            .Columns(1).Validation.Add xlValidateList, Formula1:="=INDIRECT(""Symboles"")"
            .Columns(7).Validation.Add xlValidateList, Formula1:="A,V"
            .Columns(10).FormulaR1C1 = "=IF(RC[-2]<>"""",RC[-2]+N(R[-1]C),"""")"
            Union(.Columns(8), .Columns(10)).NumberFormat = "0.00;[Red]-0.00"
        End With
    End With
    Union(P.Columns(3).Resize(, 2), P.Columns(7)).HorizontalAlignment = xlCenter
    P.Columns.AutoFit 'ajustement largeurs
    With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub
Grâce à With .UsedRange: End With la Dernière cellule est maintenant J37.

A+
 

Pièces jointes

Dernière édition:
Bonjour et merci à vous @job75 , @TooFatBoy et @Phébus
J'ai téléchargé la correction et je vais tester. Par contre j'avoue que je n'ai pas compris tout votre échange sur les lignes et colonnes vides (?)
D'autre part @job75 tu dis "Le tableau structuré Tableau2 était mal construit"? Bizarre car pour le faire j'ai juste cliqué sur "Mettre en forme de tableau". Tu a une idée sur ce qui a pu se produire ?
Merci encore pour votre aide précieuse
 
Je viens de modifier un peu la macro du post #18.

Et celle-ci fonctionne même si le tableau d'origine n'est pas structuré :
VB:
Sub MAJ_Tableau()
Dim P As Range, tablo
Application.ScreenUpdating = False
With Sheets("Suivi compte")
    Set P = .[A1].CurrentRegion
    If P.Rows.Count = 1 Then Set P = P.Resize(2)
    tablo = P 'mémorise les valeurs
    .Cells.Clear 'efface toute la feuille
    P = tablo 'restitue les valeurs
    With .ListObjects.Add(xlSrcRange, P, , xlYes) 'recrée le tableau structuré
        .TableStyle = "TableStyleMedium8"
        With .Range.Rows(2).Resize(.ListRows.Count)
            .Columns(1).Validation.Add xlValidateList, Formula1:="=INDIRECT(""Symboles"")"
            .Columns(7).Validation.Add xlValidateList, Formula1:="A,V"
            .Columns(10).FormulaR1C1 = "=IF(RC[-2]<>"""",RC[-2]+N(R[-1]C),"""")"
            Union(.Columns(8), .Columns(10)).NumberFormat = "0.00;[Red]-0.00"
        End With
    End With
    Union(P.Columns(3).Resize(, 2), P.Columns(7)).HorizontalAlignment = xlCenter
    P.Columns.AutoFit 'ajustement largeurs
    With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub
 

Pièces jointes

Bonjour à tous.
Merci @job75 pour cette nouvelle macro.
  • j'ai continué à remplir le TS et 'est impeccable !
  • j'ai déjà testé la première macro avec succès. Quelle est la nouveauté ? Et cette macro me servirait en cas de problème quelque soit le nombre de lignes remplies ?
  • maintenant, j'ai peur de faire une quelconque modif : je voudrai intervenir sur les formats de nombres de certaines colonnes : puis-je le faire sans risque ou est-il mieux d'inclure des lignes complémentaires dans ta macro 'sur le modèle de la tienne : Union(.Columns(8), .Columns(10)).NumberFormat = "0.00;[Red]-0.00") ?
Merci encore à vous tous pour votre aide.
Bonne fin de WE.
Jean-Claude
 
Les 2 macros recréent le tableau quel que soit le nombre de lignes du tableau d'origine.

Vous pouvez en effet formater la colonne B en ajoutant :
VB:
           .Columns(2).NumberFormat = "0.00"
Pour les colonnes E et F je vous conseille de ne pas y toucher puisque le nombre de décimales varie de 1 à 5, le format Standard convient très bien.
 

Pièces jointes

Par contre j'avoue que je n'ai pas compris tout votre échange sur les lignes et colonnes vides (?)
Je disais que si tu utilises la combinaison de touches <Ctrl>+<Fin> tu vois que la "plage utilisée" comprend deux colonnes à droite du TS et trois lignes en dessous.

Ce n'est pas grave en soi, c'est juste que ça fait un fichier un tout petit peu plus gros pour rien. 😉
 
D'autre part @job75 tu dis "Le tableau structuré Tableau2 était mal construit"? Bizarre car pour le faire j'ai juste cliqué sur "Mettre en forme de tableau".
Et moi j'ai dit :
Pour moi, c'est juste le TS qui a été mal construit, mais ça se répart. 😉
C'est pour ça que j'ai proposé en #8 ton TS corrigé (mise en forme et formule).



Tu a une idée sur ce qui a pu se produire ?
Souvent quand tu crées le TS après avoir intégré les formules et fait les mises en forme, lors de l'ajout de lignes il y a des soucis.
Du coup tu refais tout, colonne par colonne au niveau des données du TS et c'est bon.

D'ailleurs, tu vois que les formules n'ont plus du tout le même aspect, puisqu'elles utilisent le fait qu'elles sont dans un TS.
 
Bonjour
Merci pour la macro corrigée

=================
C'est pour ça que j'ai proposé en #8 ton TS corrigé (mise en forme et formule).
......
D'ailleurs, tu vois que les formules n'ont plus du tout le même aspect, puisqu'elles utilisent le fait qu'elles sont dans un TS.
Oui j'ai vu le changement des formules sur la forme. Merci.

Merci à vous et bonne journée.
 
- 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

Réponses
10
Affichages
272
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…