Reinitialiser projet vba par macro

Signaler
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008
-
 bigfish_le vrai -
Bonjour,
Je souhaiterai réinitialiser mon projet VB par macro.
Comme on éxécute une fonction Sub ou autre qui aurai la meme incidence que lorsque l'on clic sur le carré bleu vba pour réinitialiser.

Chui pas sur d'être compréhensible ...
Merci

24 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

perso, pas trop compris !
Tu veux que ta Sub s'arrête en cours de fonctionnement, c'est ça ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

ouai ou plutot que tout s'arrete.


Quand tu clic sur stop (carré bleu) dans visual basic, ça réinitialise tout ton projet. Eh ben moi je veux faire pareil mais en cliquand sur un bouton sur la feuille excel.


Attention: je ne sais pas si ca existe, c'est pour cela que je poste.


 


Merci
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Si tu as beaucoup de procédures, ça me semble difficile à mettre en place.
Peut être avec Microsoft Extensibility (pour gérer l'IDE) mais pas trouver de Stop ou autre.

Si tu n'as que quelques procédures, tu peux tricher avec un Timer et un booléen dans tes proc, cependant, une partie de ton code s'exécutera forcément.

@++

le mystérieux chevalier,"Provençal, le gaulois"
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Ok Merci Mortalino.
Le soucis c'est que a la base j'ai déja un timer mais il merde et tourne en boucle et je voudrais justement l'arreté. lol

Si tu avais un code pour un timer pour une répétition toute les x minutes ...  et surtout pour l'arreter. (j'ai pris celui de Cathy astuce.)
Merci
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
me suis pas fait chier, j'ai créer un ocx (usercontrol) avec un timer dessus en VB6, que j'ai importer dans mon VBA. Fait donc pareil si tu as vb6.

Sinon, il y a des codes pour utiliser les timer, ou même l'api SetTimer.

Pour ton souci de départ, cmbine à deux balles :
Tu fais une simulation d'appui touches sur [CTRL Pause]

@++

le mystérieux chevalier,"Provençal, le gaulois"
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

moteur : timer vba
3e lien

http://www.vbfrance.com/codes/TIMER-VBA_39308.aspx

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci a vous deux mais je cherche du code. Je fais un programme qui serai lisible sur n'importe quel pc donc pas d'installtion d'ocx.
Avez- vous autre chose ?
Merci
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
et excel il est fourni avec tous les PC?
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

oui quand meme ...
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

mais c'est excel 2002 SP3 et je crois meme que je n'ai pas tout les modules
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
pis regarde le premier lien au moins :)
MOTEUR : source&r=timer+vba&dotnet=2 http://www.vbfrance.com/recherche.aspx?tr=source&r= timer +vba&dotnet =2
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci PCPT J'avais regardé un temps mais ayant trouvé celui de cathy j'avais un peu laissé tombé et mis le code de coté.
Je n'avais pas vu celui la...
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Sinon saurais - tu comment le paramétrer ?


Merci
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
apparemment il y a un excel d'exemple, je présume que c'est indiqué ^^

sinon je suppose :
copier le code dans une module de classe que tu appelleras par exemple Cls_Timer

puis dans ton userform en haut : private withevents Timer1 as Cls_Timer

dons ton _Load (ou équivalent pour VBA)
set Timer1 = new Cls_Timer
Timer1.interval = 100
Timer1.enabled = true

et la classe te renvoie l'évènement tous les 100ms, donc dans ton code... dans le combo de gauche tu vas avoir Timer1 , avec  l'évènement Timer() dans le combo de droite
tu sélectionnes et mets ton code dans ce nouvel évènement

n'oublie pas de détruire ta classe en sortie
donc dans le _Unload du userform (ou équivalent pour VBA)
Timer1.enabled = false
set Timer1 = nothing

çà devrait être bon ;)
++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Merci PCPT Mais je n'arrive pas a télécharger le fichier excel... ^^
Merci pour ton explication
Je vais essayer.
Peux tu voir sinon pour le lien car d'apres le screen j'aimerais bien avoir le fichier excel ...
Merci
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
...testé, le lien du ZIP est OK et le XLS fourni est opérationnel
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Ok merci donc puis je te demander un petit service ? ...
Me le mettre sur un autre serveur car ici je ne suis pas l'administrateur du pc donc ca doit bloquer .

Merci beaucoup.
Si c'est trop demander tant pis je me débrouillerais .
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
si je commence à héberger toutes les sources j'ai pas fini....
désolé
télécharge-le d'un poste qui a les droits ou de chez toi

au pire t'as juste à faire un copier-coller, le code de la classe est sur la page de source, t'as même pas besoin de télécharger
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

C'est ce que j'ai fait mais ca ne marche pas.
Ce n'est pas grave je vais me débrouiller quand meme.

Merci quand meme pour ton aide ainsi que Mortalino.
Messages postés
127
Date d'inscription
mercredi 16 avril 2008
Statut
Membre
Dernière intervention
8 juillet 2008

Sinon je t'embete encore un peu mais tant que je te tiens...

Voici mon code pour mon timer:
Dim Lheure As Double
Dim Interval As Integer

Sub LancerTimer(NbM As Integer)
'L'application ExecutionTimer se lancera toutes les 0 heure, Interval minute et 0 seconde
   Interval = NbM
   Application.OnTime Now + TimeSerial(0, Interval, 0), "ExecutionTimer"
End Sub


Sub ArretTimer()
   On Error Resume Next
   Application.OnTime Lheure, "ExecutionTimer", , False
End Sub


Sub ExecutionTimer()
   "Mon module" 'Lancer au bout de NbM minutes


   Lheure = Now + TimeSerial(0, Interval, 0)
   Application.OnTime Lheure, "ExecutionTimer"
End Sub

Le probleme est que lorsque je le lance ca marche, 1 fois, 2 fois.. et puis quand je veux l'arreter il se lance en boucle et ne s'arrete pas... Saurais- tu d'ou cela viens ?