Bonjour à tous,
Je suis un peu débutant en VBA.
J'ai une application excel qui récupère des fichiers par FTP, lit les fichiers pour récupérer dans chaque enregistrement des valeurs servant à incrémenter des compteurs statistiques et faire les graphiques journaliers pour ces compteurs.
Cette application est exécutée tous les jours automatiquement dans la planificateur de tâches de Windows.
J'aimerais qu'il soit possible de ne pas lancer la récupération par FTP dans le cas où l'utilisateur ouvre le classeur manuellement car les fichiers sont gros et le temps de réupération assez long.
Pour cela, je voudrais faire un formulaire avec une zone de texte et deux boutons.
ce formulaire ce lancerait au début de la macro
Dans la zone de texte un compte à rebours de 60 secondes par exemple.
A la fin des 60 secondes, sans action de l'utilisateur, la connexion FTP s'effectue
Un bouton "immédiat" pour annuler le compte à rebours et lancer la connexion immédiatement
Un bouton "annuler" pour annuler la connexion FTP
Je parviens à faire le formulaire avec le compte à rebours, mais durant ce compte à rebours, un clic sur n'impote lequel des deux boutons est totalement inopérant. Je n'ai la main qu'à la fin du compte à rebours.
Voici ce que j'ai écrit :
Sub Workbook_open()
ftp = True
recup_fichiers.Show
For rebours = 60 To 0 Step -1
If ftp = False Then Exit For
recup_fichiers.duree.Value = rebours
Application.Wait (Now + TimeValue("0:00:01"))
DoEvents
Next
recup_fichiers.Hide
...
...
...
If ftp = True Then
Call RecupFtp()
End If
...
...
End sub
Code du userform "recup_fichiers"
Sub Immediat_Click()
rebours = 1
End Sub
Sub annuler_Click()
ftp = False
End Sub
Le userform s'affiche, le compte à rebours se décrémente correctement, mais que je clique sur le bouton "Immédiat" ou sur le bouton "Annuler" rien ne se passe, le compte à rebours continue.
Comment puis-je régler ce problème ?
Merci d'avance pour votre aide.