IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fichier trop lourd, trop de codes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Août 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2019
    Messages : 19
    Par défaut Fichier trop lourd, trop de codes
    Bonjour à tous,

    Je vous expose mon problème: j'ai créé un sorte de formulaire pour la gestion de mes réserves qui, une fois saisie, vient incrémenter une base de donnée.

    Les contraintes que j'ai rencontré et mon faible niveau en VBA font que j'ai un fichier avec plein de code dans tous les sens et une utilisation pas très "friendly".

    En effet, lorsque je veux par exemple supprimer les filtres de mes segments via le bouton "Supprimer les filtres", c'est hyper long. Idem quand je veux cliquer sur le bouton Effacer. (Dans mon fichier les macros que j'utilise se situent dans le module 3)

    De plus, je voudrais que les formules qui sont dans les zones grisées (Ex: de la cellule B26 à C66 ou toutes les formules du pavé "identifications dossiers") ne se lancent uniquement quand on clique sur le bouton "Rechercher".

    Si quelqu'un a des idées, je suis preneur

    Merci d'avance !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut le problème n'est pas forcement celui que l'on croit
    bonjour, je n'est pas regardé le code ou les formules. j'ai vue la base de donnée et je pense que c'est là ou se trouve ton problème.
    sans devenir un spécialiste , recherche de la doc sur l' ORGANISATION d'une DB ...

    1) une Data Base est constituée de plusieurs Table (on vat dire que une Table est un onglet , et donc l'ensemble des onglets constituent la Data Base)
    2) chacune des Table (onglet) est une liste de donnée (spécifique et complémentaire)
    3) la liste principale doit avoir le moins de colonnes possible (pour plus de rapidité)


    en fait le mécanisme est le même que les listes en cascade... une sélection (dans la table 1) vat déterminer un repaire / index qui permet de rechercher des data dans les autres table ...

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    La lenteur vient à mon avis des formules dans la plage B26:C66. Une proposition en attaché pour réduire le nombre de recherches.

    Cordialement.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut définir les priorités
    bonjour,
    j'ai essayé de regrouper les data par centre d'intérêt , mais il ce peu que des data ne soit pas a leur place , car en effet je ne connait pas leur utilité.

    Nom : Capture d’écran 2022-02-12 160922.png
Affichages : 212
Taille : 68,7 Ko

    dans le fichier , cela ce trouve dans "analyse structure data" . dans une vraie base de donnée , pour chacune des "Table" (en jaune) il y aurait des colonnes en plus (pour les relier entre elles) reprenant par exemple le numéro de commande .
    on peu voir ce genre de reprise dans les "Table" "Commande_Detail" et "Travaux_Detail".

    avec cette organisation , il est aisé de piocher ici et là les info dont on a besoin

    @+JP

    hello je reviens juste pour dire que je vais préparer un exemple de relation entre les "Table" ces mécanismes s'orientent plus vers une Data Base que vers les fonctions recherche / verticale de Excel.
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    pour continuer cette analyse , voila une option de travail

    Nom : Capture d’écran 2022-02-12 183323.png
Affichages : 238
Taille : 41,1 Ko

    on peu accéder directement au info client , commande et travaux

    Client
    entrée par le client nous mène à la liste de ses commandes et de là le coté financier ou le coté travaux avec le détail des travaux et la gestion de ces travaux.

    Commande
    on entre par les commandes en cours par exemple.

    Travaux
    on entre par le suivi des travaux.

    finalement çà devient très simple ...

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut relation entre les tables ... fonction Excel
    bonjour,
    bon , j'avoue , j'ai eu du mal avec les fonctions Excel

    Nom : Sans titre.png
Affichages : 227
Taille : 94,9 Ko

    le problème de la fonction RECHERCHEV c'est qu'elle n'est pas souple du tout du tout !!!

    j'ai du m'adapter à son mode de fonctionnement , c'est à dire par exemple que la colonne de recherche doit être la première à gauche.
    j'ai bataillé aussi avec le format des cellules , nombre et texte et autre ... la solution au format c'est la fonction VALEURNOMBRE()

    VALEURNOMBRE(DROITE(H12;5)&"01")

    il faut savoir qu'il y a une bizarre conception des numéro de commande , par exemple : 058833 ... pourquoi le "0" du début ??
    parce que les numéro des ID de détail de commande n'ont pas ce "0" : 5883301 , 5883302 ... et il y a aussi des ID qui n'ont pas de "01" et qui débute à "02" ... oups !!

    la fonction DROITE(H12;5) ne garde pas le "0" du début de "058833" ce qui donne "58833" , on ajoute le rang de l'ID avec &"01" et on reformate en nombre avec VALEURNOMBRE()

    RECHERCHEV(H21;C21:E48;2;FAUX)

    H21 c'est notre numéro d'ID "5883301"
    C21:E48 c'est la zone "data" sans les entêtes du tableau "Commande_Detail"
    2 c'est la colonne 2 du tableau (description)
    FAUX c'est le mode de recherche , il est très important que ce soit FAUX et non VRAI !!

    SIERREUR(RECHERCHEV(H21;C21:E48;2;FAUX);"")

    si par exemple on recherche l'ID "5883311" qui n'existe pas , un message d'erreur s'affiche ... pour éviter ces messages , on utilise la fonction SIERREUR().
    si il y a une erreur , déclenché par la fonction RECHERCHEV() alors on écrit rien : ""

    mais si il n'y a pas d'erreur !!! et qu'on veut écrire quelque chose , comment utiliser la fonction SI() ??

    SI(SIERREUR(RECHERCHEV(VALEURNOMBRE(DROITE(H12;5)&"01");C21:E48;2;FAUX);"err")="err";VALEURNOMBRE(DROITE(H12;5)&"02");VALEURNOMBRE(DROITE(H12;5)&"01"))

    la plus grosse difficulté , ici , c'est de traiter le résultat de la fonction SIERREUR() .
    on a vue plus haut que en cas d'erreur , on écrit rien : "" mais ce rien empêche le bon fonctionnement de SI() , alors on vat écrire quelque chose , par exemple "err" pour erreur (çà n'a pas d'importance) .
    donc on teste la première partie de SI() , SI( la fonction SIERREUR() a écrit "err" ; vrai ; faux) , si c'est vrai on écrit l'ID "5883302" et si c'est faux (donc pas d'erreur) on écrit l'ID "5883301"

    il est à noter que la colonne E20:E48 sert uniquement à la fonction NB.SI(E21:E48;H12) qui indique le nombre d'ID de détail de la commande

    "ID ("&NB.SI(E21:E48;H12)&")"

    c'est le texte de l'entête : ID (9)
    E21:E48 c'est la colonne de recherche
    H12 c'est le numéro de commande "058833"

    voila , pour la partie "fonction" des relations entre les tables ...

    j'allais oublier , toutes les données proviennent du seul fait d'avoir écrit le nom du client en I3 !!

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. Fichier trop lourd - Excel très lent
    Par shadown08 dans le forum Excel
    Réponses: 7
    Dernier message: 29/11/2015, 18h01
  2. Problème de fichier trop lourd
    Par lololebricoleur dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/09/2015, 08h52
  3. VirtualDubMod - Fichier trop lourd
    Par koKoTis dans le forum Vidéo
    Réponses: 2
    Dernier message: 10/07/2007, 13h08
  4. Fichier trop lourd car pas optimisé
    Par mimic44 dans le forum Excel
    Réponses: 6
    Dernier message: 18/04/2007, 12h12
  5. [LINUX][INSTALL]Error de fichier trop court
    Par silvermoon dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/08/2004, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo