Salut le forum
Je reviens vers vous pour mon code sendkey qui se trouve dans le fichier joint.
Je remercie au passage ceux qui ont été à l’origine de sa réalisation.
Il faut noter que le code n’a pas de problème particulier mais il a besoin d’être réadapter a certains comportements de mon logiciel que j’ai decellé.
En effet, j’ai constaté que dans certains champs de mon logiciel il y’a des listes déroulantes.
Le sendkey lorsqu’il arrive dans ces champs met plus de temps pour « coller » la valeur de la cellule excel correspondant.
J’ai l’impression qu’il cherche dans la liste deroulante la valeur correspondant a celle de la cellule excel ce qui lui prend plus de temps.
En recherchant une solution, j’ai vu que si on lui demande de saisir le montant comme ce code le fait, il ne dure pas dans le champ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendKeys Range("j7").Value & Chr(13), True
De J4 :J7, j’ai pu adapter cette partie du code à ma convenance.
Le code ci-dessous comportant des conditions, je ne sais pas comment le scinder pour la valeur de J13. Il faut noter que le champ de mon logiciel ou doit être saisie la valeur de J13 comporte une liste deroulante. Je souhaite donc demander au sendkey de saisirmais comment l’intégrer dans le code ci-dessous sans perturber son fonctionnement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendKeys Range("j7").Value & Chr(13), True
Je reste à votre disposition pour plus d’éclaircissements
J’oubliais également que le code-dessous a un petit soucis :
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 For I = 8 To 45 ' Si I = 8 alor on mémorise la valeur de la cellule If I = 8 Then MemJ8 = Range("J8").Value ' Si I = 16 ou 17 If I = 17 Or I = 18 Then ' Si la veleur mémorisée est 3 If MemJ8 = 3 Then ' On inscrit le nom et le prénom du mari SendKeys Cells(I, 10).Value, True attendre 0.5 SendKeys "~" attendre 0.8 End If Else ' Si I à une autre valeur que 16 ou 17 SendKeys Cells(I, 10).Value, True attendre 0.5 SendKeys "~" attendre 0.8 End If
Quand bien même la valeur de j7 est vide (cellule toujours vide), il met plus de temps avant de quitter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Next For I = 7 To 7 SendKeys Range("j7").Value & Chr(13), True SendKeys "~" attendre 0.8
Aussi, il n’ya de liste deroulante dans ce champ.
N'ayant pas pu joindre le fichier, voici le code intégral
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 Sub activesimple() Dim I As Integer, MemJ8 As Integer 'On Error GoTo gestionerreur If MsgBox("Avant de confirmer la saisie automatique, assurez-vous que :" & Chr(10) & Chr(10) & "- Les observations du client issues de la vérification des informations ont été prises en compte," & Chr(10) & "- Vous êtes bien positionné sur le menu ouverture simplifié - Nouveau client,", vbYesNo, "Demande de confirmation") = vbYes Then AppActivate "MON LOGICIEL" Sheets("RECUP").Select 'POSITIONNEZ-VOUS SUR LE MENU SIMPLIFIE IGOR SOUHAITE For I = 4 To 4 attendre 0.5 SendKeys Range("j4").Value & Chr(13), True attendre 1 Next For I = 5 To 5 attendre 0.5 SendKeys Range("j5").Value & Chr(13), True attendre 0.8 Next For I = 6 To 6 attendre 0.5 SendKeys Cells(I, 10).Value, True attendre 0.8 Next For I = 7 To 7 SendKeys Range("j7").Value & Chr(13), True SendKeys "~" attendre 0.8 Next For I = 8 To 45 ' Si I = 8 alor on mémorise la valeur de la cellule If I = 8 Then MemJ8 = Range("J8").Value ' Si I = 16 ou 17 If I = 17 Or I = 18 Then ' Si la veleur mémorisée est 3 If MemJ8 = 3 Then ' On inscrit le nom et le prénom du mari SendKeys Cells(I, 10).Value, True attendre 0.5 SendKeys "~" attendre 0.8 End If Else ' Si I à une autre valeur que 16 ou 17 SendKeys Cells(I, 10).Value, True attendre 0.5 SendKeys "~" attendre 0.8 End If 'Next 'For I = 23 To 45 'SendKeys Cells(I, 10).Value, True 'attendre 0.5 Next SendKeys "+{F3}" attendre 0.8 For I = 46 To 53 SendKeys Cells(I, 10).Value, True attendre 0.5 SendKeys "~" attendre 0.8 Next SendKeys "+{F6}" attendre 0.8 For I = 54 To 54 SendKeys Cells(I, 10).Value, True attendre 0.5 SendKeys "~" attendre 0.8 Next Exit Sub gestionerreur: MsgBox "fichier non ouvert ou réduit dans la barre des tâches : abandon" End If End Sub Sub attendre(sec%) Dim deb&, fin& deb = Timer fin = deb + sec% Do Until Timer >= fin DoEvents Loop End Sub
Partager