Code sur saisie auto de donné vers un logiciel

Salut le forum

Permettez que j'aille droit au sujet.

En effet, j'ai le code ci-dessous qui me permet de réaliser une saisie automatique vers un autre interface (word, excel lui-même ou un logiciel...).

Lorsque j'exécute la macro sur word ou excel, l'automatisme de la saisie se fait sans difficulté.

Mais lorsque je tente les même manoeuvres avec notre logiciel, il y'a des disfonctionnements :

la saisie se fait automatiquement mais ne se termine pas : au lieu de 47 données à saisir automatiquement sur notre logiciel, il se limite souvent à 5, 10 ou 15 et le reste sans suite.

Je vous le soumet afin de bénéficier de vos "connaissances magiques".

Sub activation()
'On Error GoTo gestionerreur
AppActivate "NOM DU LOGICIEL ICI"
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 4)
For i = 3 To 50
    SendKeys Cells(i, 4).Value
    SendKeys "~"
Next
Exit Sub
gestionerreur:
MsgBox "fichier non ouvert ou réduit dans la barre des tâches : abandon"
End Sub

N.B: avec ou sans cette partie du code, c'est le même résultat :

Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 4)

Bonne compréhension

Bonjour,

A essayer :

Sub activation()
'On Error GoTo gestionerreur
AppActivate "NOM DU LOGICIEL ICI"
Attendre 4
For i = 3 To 50
    SendKeys Cells(i, 4).Value
    SendKeys "~"
Next
Exit Sub
gestionerreur:
MsgBox "fichier non ouvert ou réduit dans la barre des tâches : abandon"
End Sub

Sub Attendre(Sec%)
Dim Deb&, Fin&
Deb = Timer
Fin = Deb + Sec%
Do Until Timer >= Fin
    DoEvents
Loop
End Sub

... mais il est probable que chaque Sendkeys nécessite également un appel à Attendre

For i = 3 To 50
SendKeys Cells(i, 4).Value
Attendre 4
SendKeys "~"
Attendre 4
Next

ou encore :

For i = 3 To 50
SendKeys Cells(i, 4).Value
SendKeys "~"
Attendre 4
Next

En dernier ressort tu pourras aussi essayer de passer True comme second argument à Senkeys :

SendKeys Cells(i, 4).Value , True
Attendre 4
SendKeys "~", True
Attendre 4

A+

Salut galopin01

Merci encore pour votre proposition.

Le seul constat que j'ai pu faire avec le code ci-dessous qui fonctionne bien est le suivant :

au lieu de 3 to 50, il raisonne en 4 to 51 c'est à dire qu'il commence la saisie automatique à partir de D4 pour terminer en D51.

Je voulais savoir autre chose si possible: arrivé au champ 30, je dois faire SHIFT+F3 pour que la saisie puisse se poursuivre.Egalement au 35 champ, je dois faire SHIFT+F6 pour valider l'ouverture du compte. Est-il possible d'intégrer dans l'automatisme SHIFT+F3 et SHIFT+F6 de sorte que je n'ai pas à le faire manuellement?

C'est un outil qui doit être utilisé par plusieurs personnes donc je veux si possible prendre en compte tous les aspects.

Sub activation()
 'On Error GoTo gestionerreur
 AppActivate "NOM DU LOGICIEL ICI"
 For i = 3 To 50
     SendKeys Cells(i, 4).Value
     attendre 1
     SendKeys "~"
     attendre 1
 Next
 Exit Sub
 gestionerreur:
 MsgBox "fichier non ouvert ou réduit dans la barre des tâches : abandon"
 End Sub

Sub attendre(sec%)
 Dim deb&, fin&
 deb = Timer
 fin = deb + sec%
 Do Until Timer >= fin
 DoEvents
 Loop
 End Sub

Merci infiniment

Bonjour,

Là tu me demandes de lire dans le marc de café...

YAKA essayer la méthode expérimentale !

Tu peux essayer de saucissonner ton For...

teste les décalages... En bout de course tu devrais avoir un truc qui ressemble à ça :

Sub activation()
 'On Error GoTo gestionerreur
 AppActivate "NOM DU LOGICIEL ICI"
 For i = 3 To 30
     SendKeys Cells(i, 4).Value
     attendre 1
     SendKeys "~"
     attendre 1
 Next
     SendKeys "+{F3}"
     attendre 1
 For i = 31 To 35
     SendKeys Cells(i, 4).Value
     attendre 1
     SendKeys "~"
     attendre 1
 Next
     SendKeys "+{F6}"
     attendre 1
 For i = 36 To 50
     SendKeys Cells(i, 4).Value
     attendre 1
     SendKeys "~"
     attendre 1
 Next

...La suite sans changement.

A+

Salut galopin01

Encore merci pour tes solutions magiques.

Ca marche.

Autres chose :

Dans mon logiciel, à un moment des saisies, une boite de dialogue s'affiche et je dois opérer mon choix en cliquant sur OUI pourtant le curseur active par defaut NON. Je souhaiterai pouvoir automatiser le choix OUI qui peut se faire par la touche TAB ou la flèche directionnelle gauche.

J'ai lu l'aide excel sur les sendkeys mais j'ai pas pu m'en sortir.

Pouvez-vous encore me donner un coup de main?

Cordialement

Bonjour,

Désolé, je n'ai pas de solution si cette boite de dialogue survient à un moment aléatoire du transfert.

A+

Bonjour et merci pour la franchise.

Moi je sais comment gérer la boite de dialogue.

Ce que je veux savoir c'est comment utiliser (automatiser) la touche de TABULATION ou la flèche gauche.

Merci

Rechercher des sujets similaires à "code saisie auto donne logiciel"