Bonjour à tous,
Je viens aujourd’hui vers vous afin de vous quémander de l’aide dans mon code VBA. Tout d’abbord, j’utilise EXCEL v2003.
Voici en quelques mots le principe du code :
Je réalise un formulaire permettant d’enregistrer dans une Base De Données (feuille EXCEL cachée). Le but de ce formulaire est de référencer les bons hôtels et restaurants en Europe pour nos futurs déplacements.
Principe du code :
Ajout, recherche et modification des lieux selon des critères (pays, ville, nom, …)
Mon problème :
J’utilise dans deux UserForm différents exactement le même module de code (pour l’ajout et la modification). J’ai donc voulu faire une variable donnant le nom de l’UserForm tel que :
Le soucis est que le code est fortement ralenti avec ceci. Si je met le code ci-dessus, l’execution du code est de plus de 1 secondes. Sans ce code, avec celui ci-dessous, l’execution est inférieure à 500ms :
Quelqu’un pourrait-il m’aider afin de me dire pourquoi celà se produit?
Je peux vous mettre a disposition le fichier EXCEL si vous voulez, néanmoins je devrais l’envoyer par mail car il est >1Mo…
Bonne soirée à tous,
Laura
Je viens aujourd’hui vers vous afin de vous quémander de l’aide dans mon code VBA. Tout d’abbord, j’utilise EXCEL v2003.
Voici en quelques mots le principe du code :
Je réalise un formulaire permettant d’enregistrer dans une Base De Données (feuille EXCEL cachée). Le but de ce formulaire est de référencer les bons hôtels et restaurants en Europe pour nos futurs déplacements.
Principe du code :
Ajout, recherche et modification des lieux selon des critères (pays, ville, nom, …)
Mon problème :
J’utilise dans deux UserForm différents exactement le même module de code (pour l’ajout et la modification). J’ai donc voulu faire une variable donnant le nom de l’UserForm tel que :
Code:
Dim frm As Object
if Search_details.visible = True
Set frm = Search_details_modify
Else : Set frm = BASIC_Fr
End if
frm.ville = sheets("BDD").cells(ID,1).value
frm.nom = sheets("BDD").cells(ID,2).value
frm.pays = sheets("BDD").cells(ID,3).value
Le soucis est que le code est fortement ralenti avec ceci. Si je met le code ci-dessus, l’execution du code est de plus de 1 secondes. Sans ce code, avec celui ci-dessous, l’execution est inférieure à 500ms :
VB:
BASIC_Fr.ville = sheets("BDD").cells(ID,1).value
BASIC_Fr.nom = sheets("BDD").cells(ID,2).value
BASIC_Fr.pays = sheets("BDD").cells(ID,3).value
Quelqu’un pourrait-il m’aider afin de me dire pourquoi celà se produit?
Je peux vous mettre a disposition le fichier EXCEL si vous voulez, néanmoins je devrais l’envoyer par mail car il est >1Mo…
Ci-joint le code. Le code dont je vous parle se trouve dans le module "a_CRITERES_TYPE". Ceci s'execute tel que :
1. Lancer BASIC_Fr
2. Cliquer sur ajouter
3. Choisir un type
Bonne soirée à tous,
Laura
Pièces jointes
Dernière édition: