Erreur 57121 sur userform

bonjour à toutes et tous

j'ai une erreur 57121 à l'ouverture de mon fichier excel qui me saoule depuis un bon moment.

ceci n'est pas totalement bloquant car si je clique sur fermer et relance le fichier cela fonctionne.

Après plusieurs tentatives vu sur internet lié au proxy activex etc, ne donnant rien, j'ai continué de chercher.

In fine j'ai trouvé que cela venait d'un de mes userform (dommage c'est mon plus important, multipage ...)

si j'ouvre ce userform et que je fais hide et ferme mon fichier excel alors cela me donnera l'erreur 57121

si je fais la même opération sur tous mes autres userform rien..

que puis je faire d'autres que ?

Private Sub Fermer_Click()
Unload Me
End Sub

y a t'il un moyen de vider la mémoire lié à ce userform?

ou un truc du genre? car peut être trop lourd?

merci par avance pour vos conseils

Bonjour,

Il est probable que cela provienne d'un dysfonctionnement de l'un des contrôles utilisés dans votre UserForm Multipage. A vous de trouver lequel, sachant qu'il n'est utilisé que dans celui-ci.

Vérifier dans l'éditeur VBA que vous n'avez pas de référence manquante.

Pour vider la mémoire à la fermeture, c'est Unload et non pas Hide qu'il faut utiliser. J'ai l'impression qu'il y a sur cette feuille un contrôle ActiveX qui pose problème. Pourrais-tu ne laisser qu'un seul onglet vide dans ton fichier et nous le proposer avec ce UserForm récalcitrant ?

Bonjour à vous

merci pour vos retours.

voulant clarifier les choses j'ai tout simplement tenter de supprimer page par page de mon userform pour voir le résultat

Apparemment cela vient d'une page spécifique lié à la gestion documentaire

le code ci-dessous pour cette page est il correct ou est il possible que celui-ci pose un soucis?

Je précise que les variables project_acronym et Id_Project sont connus

A moins que cela ne vienne de l'interface de la page utilisant quelques images...

Private Sub Gestion_Docs()
Dim ProjectFile As String

'On vérifie si le dossier projet existe dans la base et à défaut on va le créer
ProjectFile = ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project
    If FileExist(ProjectFile) = False Then
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project)
    'on créer également un dossier où se mettrons les fichiers liés à la soumission
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Submission")
    'on créer également un dossier où se mettrons les fichiers liés au reporting
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Reporting")
    'on créer également un dossier où se mettrons les fichiers liés aux Contrats
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Contracts")
    'on créer également un dossier où se mettrons les fichiers liés aux Finances
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Budget")
    'on créer également un dossier où se mettrons les fichiers liés aux Annexes
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Annexes")
           End If

submission = ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Submission\"
i = 0
Files = Dir(submission)
Do While Files <> ""
i = i + 1
List_Docs_Submission.AddItem "" & Files
Files = Dir
Loop

Reporting = ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Reporting\"
i = 0
Files = Dir(Reporting)
Do While Files <> ""
i = i + 1
List_Docs_Reporting.AddItem "" & Files
Files = Dir
Loop

contracts = ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Contracts\"
i = 0
Files = Dir(contracts)
Do While Files <> ""
i = i + 1
List_Docs_Contracts.AddItem "" & Files
Files = Dir
Loop

Budget_files = ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Budget\"
i = 0
Files = Dir(Budget_files)
Do While Files <> ""
i = i + 1
List_Docs_Budget.AddItem "" & Files
Files = Dir
Loop

annexes = ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project & "\Annexes\"
i = 0
Files = Dir(annexes)
Do While Files <> ""
i = i + 1
List_Docs_Annexes.AddItem "" & Files
Files = Dir
Loop

End Sub

Merci à vous par avance

j'ai tenté de supprimer le contenu de la page du userform mais rien n'y fait du coup je confirme que la source du soucis est bien lié au code...

bonjour,

Vous avez 4 contrôles ActiveX concernés dans ce code : List_Docs_Reporting, List_Docs_Contracts,List_Docs_Budget,List_Docs_Annexes.

Voir celui ou ceux qui provoquent l'erreur.

Bonjour,

merci pour votre assistance

a priori ne vient pas des controleurs car j'ai tenté de mettre en commentaires au fur et à mesure mais rien n'est détecté

est ce possible que cela plante car parfois il n'y a pas de fichiers dans les reportoires? et auquel cas il me faudrait gérer les erreurs?

If FileExist(ProjectFile) = False Then
    MkDir (ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project)

A mon avis, ce code ne devrait pas pouvoir fonctionner parce qu'il y a une seule instruction MkDir pour 2 antislashes.
Le sous-sous-dossier Project_Acronym & "-" & Id_Project ne peut pas être créé si le sous-dossier Projects_Library n'existe pas d'abord. Donc la bonne façon de procéder est la suivante :

If FileExist(ProjectFile) = False Then
    MkDir ThisWorkbook.Path & "\Projects_Library" (sans les parenthèses)
    MkDir ThisWorkbook.Path & "\Projects_Library\" & Project_Acronym & "-" & Id_Project
    

Merci mais la librairie existe de base et ce sont les sous dossiers qui sont crées aussi je ne pense pas que le problème vienne de la.

Bonsoir,

Vérifier que pour vos 4 contrôles Activex, vous n'avez pas activé la propriété RowSource, soit à la compilation, soit à l'exécution.

Bonjour,

Merci pour votre retour.

je viens de vérifier et aucun n'est en rowsource.

Il arrive qu'en supprimant un contrôle activeX de la feuille et en le reconstruisant les choses rentrent dans l'ordre. Bon courage s'il y en a beaucoup.

a priori le probleme ne vient pas de là et je vais donc devoir tenter ce que vous proposer.

néanmoins le problème peut il être du au nombre de page de mon userform (8 pages)?

Bonjour le fil, Darkangel

Une chose que je fais souvent quand j'ai un problème avec un Userform

1) Clic droit sur l'USF -> Exporter un fichier au format "xxx.frm"

2) Je supprimer l'USF en question

3) Je ferme le classeur en enregistrant les modifications

4) Je rouvre mon classeur et j'importe mon USF

A voir

Bonjour Bruno.
Je ne pense pas que ça vienne du contrôle ActiveX multipage.
Autre possibilité : mettre à jour Office semble avoir été une solution pour cette erreur 57121 sous Excel.

j'ai tenté votre approche M45 mais le problème reste le même après.

voici un fichier dans lequel j'ai exporté la page du formulaire posant problème et le code associé

ce qui est sur c'est que si je supprime la page en question et le code je n'ai plus le message d'erreur...

5test.xlsm (38.11 Ko)

Salut Darkangel,

Peut-être des solutions ICI à tester, sans télécharger l'outil proposé (on ne sait pas ce qu'il y a dedans )

@+

merci mais déjà testé :)

et par ailleurs j'ai regardé suite à ton commentaire sur le wbsecurity et en le désactivant l'erreur n'apparait plus :)

il va me falloir dépatouiller cela :)

et bien merci tous pour votre aide

j'ai fini par trouver l'erreur qui n'était pas lié à la page initialement cité dans la discussion !

dans mon uSF de login j'avais pour le username et password mis un Controlsource avec champs placé dans une page Admin cachée en mode XlsheetVeryhidden cela générait une erreur 57121..

c'est résolu! :)

Rechercher des sujets similaires à "erreur 57121 userform"