Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 11h35   #1
Membre habitué
 
Avatar de Ju1.0
 
Homme Julien
Automaticien / Technicien d'étude nucléaire
Inscription : novembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Julien
Âge : 27
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Automaticien / Technicien d'étude nucléaire
Secteur : Industrie

Informations forums :
Inscription : novembre 2010
Messages : 115
Points : 146
Points : 146
Par défaut Userform_pas activate

Bonjours
Dans mon projet (sous visio), j'ai 2 userforms. Le premier fait tout un tas de trucs (langage technique) avant d'appeler le 2ème d'une manière tout à fait classique MopPageLink.Show 1.
Au lancement du 2ème userform (MopPageLink), la procédure Userform_activate est sensé se lancer d'elle même, initialisant tout un tas de trucs (...).
Sauf que voila, des fois (je n'arrive pas a trouver pourquoi) cette procédure (activate) ne se lance pas. (Donc pas d'initialisation, et c'est la cata) J'ai contourné le problème en ajoutant un bouton qui va rappeler cette satanée procédure, mais ça ne résoud pas le problème !

Ce 2ème Userform peut être appelé plusieurs fois lors de l'exécution du 1er Userform, voir même un gros paquet de fois (Variable précise). Ce n'est jamais la première fois que ce problème arrive, et lorsque ça commence à se produire, ça se produit à tout les cou !

Quelqu'un à déjà vu ça ?
Quelqu'un sait comment ça se résout ?

Merci d'avance !
Ju1.0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 19h14   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 323
Points : 29 227
Points : 29 227
Salut,

Pour que ça marche à tous les coups, il faut utiliser Activate.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 09h40   #3
Membre habitué
 
Avatar de Ju1.0
 
Homme Julien
Automaticien / Technicien d'étude nucléaire
Inscription : novembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Julien
Âge : 27
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Automaticien / Technicien d'étude nucléaire
Secteur : Industrie

Informations forums :
Inscription : novembre 2010
Messages : 115
Points : 146
Points : 146
A moins que je n'ai pas compris ta réponse, je pense que c'est ce que je fait déjà ! Je lance mon formulaire avec .Show, et dans ce formulaire, j'utilise UserForm_Activate pour l'initialiser, mais Il arrive que cette procédure ne se lance pas !
Ju1.0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 18h11   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 323
Points : 29 227
Points : 29 227
Salut,

Vérifies, souvent on utilise Initialize.

Si tu pouvais nous mettre ton morceau de code.
Avec Activate, j'ai l'évènement qui fonctionne à chaque fois.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 10h22   #5
Membre habitué
 
Avatar de Ju1.0
 
Homme Julien
Automaticien / Technicien d'étude nucléaire
Inscription : novembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Julien
Âge : 27
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Automaticien / Technicien d'étude nucléaire
Secteur : Industrie

Informations forums :
Inscription : novembre 2010
Messages : 115
Points : 146
Points : 146
Alors, déjà, merci pour tes réponses.
Ensuite :
J'appelle mon UserForm problématique comme ça : MopPageLink.Show 1 J'initialise MopPageLink comme ça :
Code :
1
2
3
4
5
6
7
Private Sub UserForm_activate()
 
    On Error Resume Next
 
    'Longue série d'actions qui ne pose pas de problème
 
End Sub
En plein désespoir, j'ai même rajouté ça à un moment, mais ça ne change pas le problème
Code :
1
2
3
Private Sub UserForm_Initialize()
    Call UserForm_activate
End Sub
Mais voila, lorsque ce deuxième UserForm est trop souvent appelé, il s'affiche mais ne s'Activate ni ne s'Initialize plus au bout d'un moment.
Je ne pense pas que ça vienne du code. D'autre l'ont regardé, et n'y ont vu aucun problème. Je me dis que ça viens de l'environnement, ou de mon poste, mais sur les machine de mes collègues, ça se produit aussi, dans le même genre de conditions, mais jamais exactement au même moment.
Je sais vraiment pas ce qui peut se passer.
Ju1.0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 09h01   #6
Rédacteur/Modérateur
 
Avatar de fring
 
Homme Fred Thomas
Engineering
Inscription : février 2008
Messages : 3 484
Détails du profil
Informations personnelles :
Nom : Homme Fred Thomas
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Engineering

Informations forums :
Inscription : février 2008
Messages : 3 484
Points : 6 535
Points : 6 535
Bonjour,

A tout hasard...si tu utilises plusieurs variables objets dans tes procédures du style Set MaVar = xxx, essaie en les purgeant en fin de procédures Set MaVar = Nothing. Cela va libérer de la mémoire.
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/05/2011, 14h51   #7
Membre habitué
 
Avatar de Ju1.0
 
Homme Julien
Automaticien / Technicien d'étude nucléaire
Inscription : novembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Julien
Âge : 27
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Automaticien / Technicien d'étude nucléaire
Secteur : Industrie

Informations forums :
Inscription : novembre 2010
Messages : 115
Points : 146
Points : 146
Ça me semble intéressant comme solution. Je vais essayer de faire ça (c'est un programme bordélique que j'ai repris en main il n'y a pas longtemps), et laisser les utilisateurs me remonter l'info si le problème réapparait.

Merci
Ju1.0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h10.


 
 
 
 
Partenaires

Hébergement Web