Bonjour,
Etant novice en VBA et ayant l'habitude de traiter par étapes les formules excels, j'ai tenté de réaliser un fichier excel mixte entre formule excel et import de données/traitement dont des filtres par VBA.
Le fichier fait 72Mo en xlsm (41 onglets).
Cela inclut :
Le nombre de ligne des imports et des traitements pouvant évoluer, les formules dans excel ont été inscrites dans le dur jusqu'à la ligne 60000 par sécurité.
Dans certains onglets les formules sont inscrites sur une zone plus importante de ligne que nécessaire en prévision de l'évolution des imports et de la liste de clients pouvant rallonger le nombre de ligne nécessaire.
Principales raisons :
Est-ce que l'import de données VBA dans un tableau excel automatique fonctionne correctement ?
Est-ce que le mixte tableau excel, formule excel et macro VBA font bon ménage ?
Est-ce que cela permet de réduire le volume du fichier ?
Pourriez-vous me dire quels sont les éléments qu'il est préférable d'éviter car consomme beaucoup les capacités excels/vba svp ? et comment les remplacer ?
Quelles sont les pistes pour optimiser un fichier excel / vba ? (réduire son volume, améliorer le délai de traitement...)
Merci d'avance pour vos lumières,
Cordialement,
Scoub
Etant novice en VBA et ayant l'habitude de traiter par étapes les formules excels, j'ai tenté de réaliser un fichier excel mixte entre formule excel et import de données/traitement dont des filtres par VBA.
Le fichier fait 72Mo en xlsm (41 onglets).
Cela inclut :
- des imports de données de sources différentes via macro (simple copie coller de colonnes et une demande de sélectionner le fichier et l'onglet souhaité) (nb de lignes des imports pouvant évoluer)
- des traitements via des formules excels (avec des formules figées) (sur 145 colonnes dans certains onglets pour construire une base de données regroupant les éléments tout en effectuant des calculs (certaines formules peuvent faire 4 lignes) et des mises en formes conditionnelles
- des liens hyperlinks dans un sommaire pour accéder à des onglets au lieu de les chercher manuellement
- des macro
- pour étendre des formules depuis la ligne 2 sur les différents imports
- pour effacer et reporter des données sur d'autres onglets (simple copie coller de colonnes)
- pour filtrer plusieurs onglets de base de données et de segment de TCD avec des choix dans un onglet "selection" (noms, catégorie, période dates ou date mini ou date max...) (choix non obligatoire) (macro par type de choix)
- pour affichage ou masquer des onglets suivant le choix de l'utilisateur
- pour bloquer ou activer les calculs (dans certaines macros) ou rafraichissement d'écran (dans certaines macros)
- pour actualiser les TCD
- lister les onglets
- enregistrer le fichier
- voire exporter certains onglet ( à améliorer pour éviter de transmettre des éléments non souhaités. par exemple, ne transmettre que les données Client A avec TCD au client A malgré que la base de données inclus toutes les infos...)
Le nombre de ligne des imports et des traitements pouvant évoluer, les formules dans excel ont été inscrites dans le dur jusqu'à la ligne 60000 par sécurité.
Dans certains onglets les formules sont inscrites sur une zone plus importante de ligne que nécessaire en prévision de l'évolution des imports et de la liste de clients pouvant rallonger le nombre de ligne nécessaire.
Principales raisons :
- actuellement, je ne sais pas transformer mes formules excels (pouvant être longue : >4 lignes sur 145 colonnes) en langage VBA et comment les imbriquer
- SOMME.SI.ENS
- MIN.SI.ENS
- SOMMEPROD
- SI
- MAX / MIN
- DROITE / GAUCHE
- RECHERCHEV
- INDEX / EQUIV
- (ET/OU)
- ESTVIDE / ESTERREUR...
- il est surement possible d'optimiser ces formules
- est-il préférable de répéter une formule sur différents onglets jusqu'à l'onglet source ou est-il préférable de reprendre le résultat de la formule du 1er onglet l'ayant calculé (effet cascade) pour gagner en rapidité ou/et pour réduire lourdeur du fichier ?
- en VBA : non optimisée
- utilisation boucle IF ou FOR pour l'instant
- chaque macro construites séparément et récupérées par la fonction call dans les macros lançant le processus si besoin
Est-ce que l'import de données VBA dans un tableau excel automatique fonctionne correctement ?
Est-ce que le mixte tableau excel, formule excel et macro VBA font bon ménage ?
Est-ce que cela permet de réduire le volume du fichier ?
Pourriez-vous me dire quels sont les éléments qu'il est préférable d'éviter car consomme beaucoup les capacités excels/vba svp ? et comment les remplacer ?
Quelles sont les pistes pour optimiser un fichier excel / vba ? (réduire son volume, améliorer le délai de traitement...)
Merci d'avance pour vos lumières,
Cordialement,
Scoub