Personnalisation de mon code sendkey par cellule

zombe

XLDnaute Occasionnel
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
Code:
SendKeys Range("j7").Value & Chr(13), True
, il ne dure pas dans le champ.
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 saisir
Code:
SendKeys Range("j7").Value & Chr(13), True
mais comment l’intégrer dans le code ci-dessous sans perturber son fonctionnement ?
Je reste à votre disposition pour plus d’éclaircissements
Code:
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
J’oubliais également que le code-dessous a un petit soucis :
Code:
Next
For I = 7 To 7
SendKeys Range("j7").Value & Chr(13), True
SendKeys "~"
attendre 0.8
Quand bien même la valeur de j7 est vide (cellule toujours vide), il met plus de temps avant de quitter.
Aussi, il n’ya de liste deroulante dans ce champ.

N'ayant pas pu joindre le fichier, voici le code intégral
Code:
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
 

Discussions similaires

Réponses
4
Affichages
418

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette