Personnalisation de mon code sendkey par cellule
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
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
SendKeys Range("j7").Value & Chr(13), Truemais comment l’intégrer dans le code ci-dessous sans perturber son fonctionnement ?
Je reste à votre disposition pour plus d’éclaircissements
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 IfJ’oubliais également que le code-dessous a un petit soucis :
Next
For I = 7 To 7
SendKeys Range("j7").Value & Chr(13), True
SendKeys "~"
attendre 0.8Quand 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.
Bonjour Zombe le forum
tu penses que cela c'est du code ???
For I = 4 To 4
attendre 0.5
SendKeys Range("j4").Value & Chr(13), True
attendre 1
Next
cela ressemble plus à du bricolage à mon avis, pourquoi n'utiliser que des sendkeys??? bref je ne sais pas ce que tu veux obtenir et surtout en partant de quoi, mais utiliser que des sendkeys c'est pas la solution et d'ailleurs tu arrives toi même à rencontrer des soucis bien que tes copies ne concerne que 50 lignes tout au plus.
En clair si on savait exactement de quoi tu parts le fichier et les explications, et à quoi tu dois arriver je pense qu'une vrai macro serait préférable
a+
papou
Salut Paritec
Merci pour ton feedback.
Permettez que je vous resitue le contexte de mon sujet.
En effet, je part des données d'un fichier excel (plage J4:J54 voir fichier joint précedemment) pour renseigner mon logiciel.
Pour ne pas devoir saisir une 2è fois les même informations dans mon logiciel, j'ai souhaité qu'on me propose une solution qui permettra de transferer les données d'excel vers le logiciel.
Il faut noter que pour des mesures de sécurité, notre service informatique ne souhaite pas des connexions avec des logiciel externes.
Ayant posté le sujet dans le forum, j'ai reçu une proposition (dont le sendkey). Il fonctionne mais pas rassurant à 80% voir 100%.
Voila pourquoi je cherche des solution pour le rendre plus fonctionnel.
Vous dites
paritec a écrit :tu penses que cela c'est du code ???
For I = 4 To 4
attendre 0.5
SendKeys Range("j4").Value & Chr(13), True
attendre 1
Next
Je suis d'accord avec vous. Je tatonne de mon coté pour voir ce que ca va donner mais je ne reussi pas.
Je reste à votre disposition pour des complements d'informations tout en espérant que vous trouverez une solution à mon cas.