Bonjour.
Ci-dessous un code me permettant d'automatiser une ressaisi récurrente.
L'utilisateur déclenche la procédure, il a alors 3 secondes pour basculer dans un programme de gestion, ou les différentes actions du script permettent de mettre en forme un document avec les données du classeur Excel.
Les lignes Application.Wait permettent de poser un temps mort afin que les actions aient le temps de se terminer, cela fonctionne très bien mais augmente le temps d’exécution du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Private Sub CommandButton3_Click() Dim info As String Dim MyData As New DataObject Unload UserForm12 Application.Wait (Now + TimeValue("0:00:03")) Application.SendKeys "~" Application.Run ("Feuil30.infomachine") Application.SendKeys "^v" Application.SendKeys "{DOWN}" Application.Wait (Now + TimeValue("0:00:01")) Application.Run ("Feuil30.infoproduit") Application.SendKeys "^v" Application.SendKeys "{DOWN}" Application.SendKeys "{LEFT}" Application.Wait (Now + TimeValue("0:00:01")) info = [C103] MyData.SetText info MyData.PutInClipboard Application.SendKeys "^v" Application.SendKeys "~" Application.Wait (Now + TimeValue("0:00:01")) Range("A98:D124").CopyPicture xlScreen, xlPicture Application.SendKeys "{F4}" Application.SendKeys "^v" Application.SendKeys "{ENTER}" Application.Wait (Now + TimeValue("0:00:01")) Application.Run ("Feuil30.capturedelai") Application.SendKeys "^v" Application.SendKeys "{ENTER}" Application.SendKeys "^e" Application.SendKeys "%v" End Sub
Quelles sont les possibilités d'optimisation du temps d’exécution de ce code ?
Merci d'avance de vos réponses, en espérant avoir été clair dans mes explications.
Bonne journée à vous.
Partager