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 :

Erreur fatale lors du chargement d'un formulaire


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut Erreur fatale lors du chargement d'un formulaire
    Bonjour,

    je n'arrive pas à comprendre l'origine de mon problème donc je décrirai le contexte dans lequel il se produit.

    Résumé: quand je clique sur le bouton qui doit charger un formulaire - Erreur fatale (rapport windows et cie)

    Contexte: Excel Pro 2003.

    La première feuille du fichier contient quelques inputs et 5 boutons.
    Le bouton sur lequel je clique a dans son code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Load formulaire
    'add item aux combobox...
    '...
    formulaire.Show
    Jai parcouru l'ensemble du code et rien ne laisse prétendre que du code s'éxécute à louverture du fichier. Pourtant, une fois ouvert, si je souhaite le refermer dans la foulée, il me demande si je veux sauvegarder les modifs apportées au fichier. Si je fais oui, le fichier passe de 3,5Mo à 2Mo.
    Je refais la même opération, il passe à 2,4Mo... Puis reste fixe.
    Donc sinon, à l'ouverture du fichier, si je clique sur le bouton pour ouvrir le formulaire, j'ai donc l'erreur fatale windows sur Excel.

    Ce qui est encore plus bizarre. Si je vais dans le code sans même y avoir apporté de modifications (ou si jamais, je modifie un peu du code, que je ferme le programme en sauvant); là, ça marche ! Je ne sais pas vraiment pas pourquoi ça fait tout ça. Je n'ai pas programmé ça, je reprends le taf d'un ancien stagiaire.

    ps bonus: quand je déclare une fonction, il ne veut pas que le return puisse avoir d'argument...

    Merci d'avance pour les pistes ou solutions.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    bonjour,
    peux-tu nous montrer ton code dans la partie initialize de ton usf stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    C'est vide, il n'y a aucune ligne de code. Seulement sur la QueryClose.

  4. #4
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir,

    j'ai eu un problème quasiment similaire sur Mac, il y a quelques années.
    Avec des classeurs qui prenaient du poids genre classeur sumotori.

    Pour palier à ce problème j'ai entre autre exporter tous les modules du projet VBA en fichier texte (.bas, .frm, etc), supprimer ou effacer le code et importer les fichiers précédemment exporter.

    en espérant que cela t'aidera.
    cordialement

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Pas beaucoup de changement

    Merci quand même Fred.

    Ne serait pas possible de réaliser une sorte d'initialisation des mémoires lors de l'initialize de l'usf ou quelque chose qui y ressemblerait?
    Est-il aussi possible de faire réaliser au programme du pas à pas sans aller dans le code? Car si j'y vais, ça marche, si j'y vais pas ça marche pas.

    Cela peut-il etre dur à des "load" de formulaire un peu trop tot, ou alors des add d'items au mauvais moment? Si je souhaite placer les add dans l'active de mon usf, cela veut-il dire qu'il faut charger tous les formulaires pour pouvoir add tous les items ou on peut faire une sélection en fonction du formulaire chargé?

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Peux-tu donner ton code, en ne laissant que deux ou trois lignes d'ajout des items aux combo (on n'a pas besoin, a priori, de la litanie complète)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Le code du bouton sur la feuille principale est celui ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Bouton1_QuandClic() 'Clic sur le bouton "Saisie de bilans et de comptes de résultat + calcul des ratios"
     
    Load FormDonnees 'Chargement du formulaire FormDonnees + initialisation du formulaire avec ajout des données dans les comboBox
    FormDonnees.ComboBox1.AddItem "USD"
    FormDonnees.ComboBox1.AddItem "Euro"
    [...]
    FormDonnees.ComboBox40.AddItem "Autre"
    FormDonnees.ComboBox40.AddItem "Aucune"
    FormDonnees.Show 'Apparition du formulaire à l'écran
    End Sub
    Il n'y a pas de code dans d'autre évènement que les QuandClic des boutons présents. Pour l'USF, rien d'autre que la QueryClose ne contient du code.

  8. #8
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour le fil

    ce code semble correct.
    Peux tu à tout hasard montrer le code Query Close?

    cordialement

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_QueryClose(Cancel As Integer, closemode As Integer) 'Clic sur la croix de fermeture du formulaire
    If closemode <> 1 Then
        Dim vréponse As Integer
        vréponse = MsgBox("Etes-vous sûrs de vouloir quitter ?", vbYesNo, "Attention")
            If vréponse = vbNo Then
                Cancel = 1
            End If
    End If
    End Sub
    Enfin, sans même avoir ouvert un formulaire, le programme me demande bien si je veux sauver les modifs lors de la fermeture du fichier.

  10. #10
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    re

    Pas de crash chez moi.
    Désolé

    NB as tu du code dans Thisworkbook ou dans les modules de feuilles?

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Place un point d'arrêt sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Bouton1_QuandClic() 'Clic sur le bouton "Saisie de bilans et de comptes de résultat + calcul des ratios"
    puis clique sur ton bouton, et suis la procédure pas-à-pas (F8) jusqu'au plantage...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Si jamais certains s'y connaissent là dedans:


  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    A tout hasard, cela fait parfois des miracles.

    Ferme Excel puis saisis
    en ligne de commande. Cela va enregistrer à nouveau les clés d'Excel dans la base des registres.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    puis clique sur ton bouton, et suis la procédure pas-à-pas (F8) jusqu'au plantage...
    Le truc que je comprends encore moins, c'est que donc, si je vais sous le VBEditor et que je place des pts d'arrêts ou que même je ne fasse rien de plus qu'à part y être aller. Le programme ne plante pas...

  15. #15
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Personnellement, je mettrais les AddItem de mes ComboBox dans l'événement Load du UserForm. Et dans le code du bouton, je ne mettrais que la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Bouton1_QuandClic()
        FormDonnees.Show
    End Sub
    Vérifie aussi que ton UserForm est bel et bien nommé FormDonnees.

    Ceci dit, si tes ComboBox font référence à des listes de paramètres, entêtes de colonnes où autres infos qui peuvent déjà se trouver sur une feuille de calcul, tu peux référencer le contenu ce tes ComboBox en renseignant leur propriété RowSource avec l'adresse des cellules où se trouve leurs contenus respectifs.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    J'ai déplacé tous les additem dans le activate du usf et c'est lors de cette exécution que ça plante. Serait-possible qu'il y en est trop? et qu'il faudrait faire faire une "pause" au programme entre temps?

    Alors, après avoir isolé les addItem.. j'arrive peut-être un peu mieux à décrire le problème.

    J'ai l'impression qu'il y a un sorte de buffer qui se remplit lorsque j'ouvre le formulaire et que les additem se font. Appelons A, la situation, jai modif le code, j'ai save. B, et la situation où j'aurai ouvert le formulaire, puis save/quit.

    Quand je suis en A, il n'y a aucun problème, jamais.

    Quand je suis en B, Tout a l'air bien mais qd j'ouvre le formulaire et lorsqu'un addItem s'exécute... paf. Sur la queryclose, je fais un unload du form. Y a-t-il d'autre chose à faire pour "réinitialiser" une mémoire quelconque?

    Edit: J'ai (pour tester) enlevé la protection du code qui était incluse dans le fichier. Maintenant, cela ne génère plus d'erreur. Je pourrai peut-être me contenter de ça bien que je ne sache toujours pas pourquoi le programme plante; et je vais surement devoir le livrer avec la protection...

Discussions similaires

  1. Erreur lors du chargement des class formulaire
    Par erehcab dans le forum Autres composants
    Réponses: 1
    Dernier message: 07/09/2010, 20h09
  2. [AC-2007] Erreur lors du chargement d'un formulaire Access 2007
    Par Lincoln911 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/04/2010, 17h34
  3. [XHTML] [FORM] problème lors du chargement d'un formulaire
    Par NikoBe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/02/2009, 14h12
  4. erreur fatale lors de l'installation de PostgreSQL
    Par caro_caro dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/02/2008, 18h51
  5. Apparition rapide lors du chargement d'un formulaire
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 14h50

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