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

Tableau trop lourd

  • Initiateur de la discussion Initiateur de la discussion mikl63
  • 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 !

mikl63

XLDnaute Nouveau
Salut,
j'utilise un tableau excel pour faire mes comptes.
Tableau très simple puisqu'il n'existe que 3 colonnes et une formule toute simple
Mon problème est que lorsque je souhaite créer une mise en forme conditionnelle, elle alourdit énormément mon fichier et excel devient très long à ouvrir le fichier.
Mon but est uniquement de colorer la ligne des totaux en jaune, d'afficher le texte en gras et de faire un encadrement en gras de la ligne.
Donc ma MEFC était un truc du genre : si la case A est une date, colorier la ligne en jaune...
Ben pas moyen, je n'arrive plus à le faire et sur l'ancien fichier que j'ai et qui fonctionnait, ca bug sévère.
Quelqu'un saurait m'expliquer pourquoi mon fichier d'origine est devenu très lourd ?
Je joins le tableau en cours : test est celui où la MEFC fonctionne mais le fichier est trop lourd
test2 sans MEFC.
test : Ce lien n'existe plus
test2 : Ce lien n'existe plus

Merci d'avance,
 
Re : Tableau trop lourd

Bonjour,

La MEFC s'applique à la plage A6:C13613 ! Est-ce vraiment nécessaire ? Ton tableau va-t-il atteindre cette dimension ?

Edit : bonjour tous, coucou 00 😱
 
Dernière édition:
Re : Tableau trop lourd

Bonjour, mikl63, François 🙂, le Forum,

Pour alléger le fichier, faire l'essai de cette macro, sur une copie du fichier de travail après suppression de la MFC existante :

Code:
Option Explicit
Sub MFC_sous_totaux()
Dim c As Range
For Each c In Sheets("2013").Range("A2", Range("A65536").End(xlUp))
    If IsDate(c) Then
        With c.Resize(, 3)
            .Interior.ColorIndex = 36
            .Font.Bold = True
            .Font.Size = 11
        End With
    
        With c.Resize(, 3).Borders(xlEdgeTop)
            .Weight = xlMedium
        End With
    
        With c.Resize(, 3).Borders(xlEdgeBottom)
            .Weight = xlMedium
        End With
    End If
Next
End Sub

A bientôt 🙂

P. S. : Bonjour, Staple1600 🙂
 
Dernière édition:
Re : Tableau trop lourd

Bonjour à tous


Pour le plaisir de croiser 00 et pour rester dans la quête de l'allégement 😉
Code:
Sub MFC_sous_totauxREGIMEPHASEI()
Dim c As Range
For Each c In Sheets(1).Range("A2", Range("A65536").End(xlUp))
    If IsDate(c) Then
        With c.Resize(, 3)
        .Borders(8).Weight = xlMedium
        .Borders(9).Weight = xlMedium
        .Interior.ColorIndex = 36
        .Font.Bold = True
        .Font.Size = 11
        End With
    End If
Next
End Sub
Code:
Sub MFC_sous_totauxREGIMEPHASEII()
Dim c As Range
For Each c In Sheets(1).Range("A2", Range("A65536").End(xlUp))
    If IsDate(c) Then
        With c.Resize(, 3)
        .BorderAround 1, -4138
        .Interior.ColorIndex = 36
        .Font.Bold = True
        .Font.Size = 11
        End With
    End If
Next
End Sub
 
Re : Tableau trop lourd

J'ai galéré un peu avec cette macro et le résultat est qu'elle a alourdit le fichier : 1.63 Mo
De plus, ce système de macros m'oblige à afficher la macro puis exécuter à chaque fois ? pas moyen de rendre ça automatique ?
 
Re : Tableau trop lourd

Et ben voilà ! j'ai recrée mon tableau à 0.
Ma formule fonctionne, ma MEFC aussi et le tableau ne pèse que 59 Ko pour 163 lignes.
Je ne sais toujours pas pourquoi le 1er était si lourd mais l'important est que ça fonctionne maintenant.
Et en plus, j'ai appris à faire ça tout seul à force de tâtonner, je ne savais pas le faire la semaine dernière.
Prochain étape : se familiariser avec les macros
Que peut on faire avec et comment les gérer ?
 
Re : Tableau trop lourd

Bonjour à tous
Une idée:
Supprimer toutes les lignes et colonnes vides de toutes les feuilles puis utiliser ceci :

VB:
Sub tentative()
Dim ThF As Worksheet, F As Worksheet
Set ThF = ActiveSheet
Application.ScreenUpdating = False
        For Each F In Worksheets
       F.Activate
      ActiveSheet.UsedRange
Next F
ThF.Activate
End Sub

Ca m'a déja sauvé.
Cordialement
 
- 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
5
Affichages
830
Réponses
7
Affichages
310
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…