Erreur automation lors de l'ouverture d'un UserForm

Bonjour le Forum,

Après de nombreuses recherches, je n'ai toujours pas réussi à résoudre ou contourner mon problème :

Lors de l'ouverture de mon fichier Excel, un UserForm d'Accueil s'ouvre automatiquement et cache le classeur Excel. Sur cet UserForm j'ai des commandbutton qui me permettent d'accéder à d'autres UserForm. Seul un de ces buttoncommand me pose problème, c'e qui est bizarre car les autres ont le même principe de code. En effet lorsque je clique sur ce dernier, le message "erreur Automation l'objet invoqué s'est déconnecté de ses clients" s'affiche.

Pourtant l'événement click indique :

Private Sub CommandButton1_Click()

Unload Me 'Ferme cet affichage

UserForm1.Show 'Ouvre l'affichage de l'état de validité des formations

End Sub

Sachant que j'ai bien bien vérifié le nom du commandbutton et de l'UserForm ... De même j'ai déjà supprimé mon code puis je l'ai réinscrit ...

Pouvez-vous m'aiguiller svp ?

N'importe quel conseil est bon à prendre !

Axolem

Bonjour,

Je verrais ça plutôt comme cela

Private Sub CommandButton1_Click()
    Me.Hide
    UserForm1.Show 'Ouvre l'affichage de l'état de validité des formations
    Unload Me 'Ferme cet affichage
End Sub

Bonjour BrunoM45,

Merci de t'être penché sur mon problème !

Je viens d'essayer en changeant le code mais maintenant après avoir cliqué sur le commandbutton il met "Excel a cessé de fonctionner" ...

Re,

Sans fichier, pas d'aide possible

A+

bonjour,

Mon avis est que tu devrais joindre ce fichier pour qu'on lorgne à fond ce qu'il s'y passe.

Tu n'es pas obligé de laisser les données : Juste un minimum pour que ça puisse fonctionner en général une ligne ou deux dans la base de données. S'il y a des listes de validation ou des listes pour les combos, en revanche il faut qu'elles puissent fonctionner même si les infos sont un peu bidonnées...

Si le classeur n'est pas confidentiel ou est trop volumineux pour être mis en pièce jointe essaie de passer par cjoint pour le uploader et donne nous le lien ou met le directement en pièce jointe dans un mail privé...

A+

Bonjour galopin01,

J'essaie de le mettre mais il me dit que mon fichier est trop volumineux

Re,

Bonjour galopin01,

J'essaie de le mettre mais il me dit que mon fichier est trop volumineux

Apparemment tu ne sais pas lire

J'ai finalement réussi

Désolée

Pour accéder aux feuilles Excel le code est "Blanc"

8blanc.xlsm (416.36 Ko)

Sachant que l'UserForm, qui doit être affiché, montre la validité des formations. Ils transfèrent les données de certaines cellules aux Labels

Je me suis rendue compte que mon fichier avait des erreurs, donc j'en remets un autre ici :

14blanc.xlsm (476.09 Ko)

Re,

Tu ne sais pas qu'il existe des boucles For... Next apparemment

Pour commencer, tes 160 lignes de début de ton Userform1 peuvent être transformées en

Private Sub BLOQUER_Click()
  Dim Lig As Long
  With Sheets("Validité Formation")
    For Lig = 1 To 80
      .Cells(Lig, 2).Value = Me("ComboBox" & Lig)
      Me("ComboBox" & Lig).Enabled = False
    Next Lig
  End With
End Sub

Même chose pour d'autres procédures à optimiser

Après quelques modifications, je ne constate rien de particulier comme problème dans ton fichier

A+

12axolem-blanc.xlsm (324.68 Ko)

Re,

En effet, je vais changer ça de suite !

Je teste et je te redis ! Merci beaucoup de ton aide !

Au bout du 2ème essai (je clique sur mon fichier puis je clique sur le buttoncommand, pour voir l'userform qui posait problème, puis je referme le fichier et je réitère), Microsoft Excel a cessé de fonctionner. As-tu eu le même cas au bout de plusieurs tests ?

Bonjour,

Personnelement je n'i pas d'erreur d'exécution sur ce dernier fichier.

A+

Re,

Au bout du 2ème essai (je clique sur mon fichier puis je clique sur le buttoncommand, pour voir l'userform qui posait problème, puis je referme le fichier et je réitère), Microsoft Excel a cessé de fonctionner. As-tu eu le même cas au bout de plusieurs tests ?

Avec le fichier que j'ai envoyé !?

Aucun problème chez moi, cela ressemble fort à une saturation de pile

Il faut systématiquement effacer toutes les variables objet

A+

Re,

Re,

Au bout du 2ème essai (je clique sur mon fichier puis je clique sur le buttoncommand, pour voir l'userform qui posait problème, puis je referme le fichier et je réitère), Microsoft Excel a cessé de fonctionner. As-tu eu le même cas au bout de plusieurs tests ?

Avec le fichier que j'ai envoyé !?

Aucun problème chez moi, cela ressemble fort à une saturation de pile

Il faut systématiquement effacer toutes les variables objet

A+

Merci beaucoup ! En effet ça me parait logique maintenant que tu le dis !

Donc pour toutes mes variables (c'est à dire ceux juste après Dim) je mets à la fin de ma commande :

Variable1 = Nothing

Variable2 = Nothing

etc ?

Re,

Presque ca

Set MaVariableObjet = Nothing

A+

Re,

Je suis désolée d'éterniser ce sujet, mais je n'ai toujours pas réussi à vider mes variables.

Pour :

Dim Col As Long

Dim derniereligneB As Integer

Dim Lig As Long

J'ai mis à la dernière utilisation des variables du Sub :

Essai 1

Set Col = Nothing (Mais Excel indique une erreur, j'ai sans doute mal compris son utilisation)

etc

Essai 2

Col = Empty

etc

Re,

Effectivement, tu as mal compris

Je ne te parle que des variables objet https://www.excel-pratique.com/fr/vba/variables.php

Re,

D'après ma compréhension du cours, les variables objets se trouvent après Sub ou Private Sub sans l'événement (Click, Change, etc), n'est-ce-pas ?

Exemple :

Private Sub ComboBox1_Change()

La variable objet est ComboBox1 ... Ça me paraît bizarre, je ne comprends pas la logique

Si ce n'est pas le cas, pourrais-je avoir un exemple dans mon programme svp ?

Je suis désolée si la solution paraît évidente mais ce n'est pas le cas pour moi ...

Rechercher des sujets similaires à "erreur automation lors ouverture userform"