Je travaille avec un fichier EXcel et grâce à une routine VB, je peux ouvrir un programme de gestion GPS (nRoute), créer une position satellite et la transférer dans ma feuille Excel. Cependant, lorsque le programme nRoute est activé, il arrive en premier plan dans mon ordinateur et cache ma feuille Excel. Je voudrais que le travail de cueillette du waypoint se fasse en arrière-plan, c'est à dire sans cacher Excel.

Voici ma routine VB:

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
33
34
35
36
37
38
39
40
Dim MyAppID As String
 
Global bEnCours As Boolean
Global HeureProchainAppel
 
Sub MaProcedure()
If bEnCours = False Then
 'Annuler le paramétrage du OnTime programmé précédemment.
 On Error Resume Next
 Application.OnTime EarliestTime:=HeureProchainAppel, _
    Procedure:="MaProcedure", Schedule:=False
 Exit Sub
End If
 
 Call Ouvrirnroute
 
'Prochain appel de OnTime
HeureProchainAppel = Now + TimeValue("00:00:2")
Application.OnTime HeureProchainAppel, "MaProcedure", False
 
End Sub
Sub Ouvrirnroute()
    MyAppID = Shell("C:\Garmin\nRoute\nRoute.exe", 1)
    SendKeys "{ESC}", True ' Envoie la combinaison escape pour fermé la fenêtre
    SendKeys "{ESC}", True ' Envoie la combinaison escape pour fermé la fenêtre
Application.ScreenUpdating = False
    Application.Wait (Now + TimeValue("00:00:02"))
    SendKeys "^w", True ' Envoie la combinaison CTRL+w ouvre une fenêtre
    SendKeys "{tab}", True ' Envoie la combinaison CTRL+tab
    SendKeys "{tab}", True  ' Envoie la combinaison CTRL+tab
    SendKeys "^C", True ' Envoie la combinaison CTRL+c copie sur presse-papier
    SendKeys "{ESC}", True ' Envoie la combinaison escape pour fermé la fenêtre
    SendKeys "%{tab}", True 'Envoie la combinaison CTRL+tab
    Dim Presspp As New DataObject
    Set Pressp = New DataObject
    Presspp.GetFromClipboard  'Récupérer le Presse-papier
    Range("g3") = Presspp.GetText
    Set Pressp = Nothing
    Application.ScreenUpdating = True
End Sub
Merci d'y penser !