Comment intégrer une condition dans mon code sendkey

zombe

XLDnaute Occasionnel
Bonjour le forum

Je rencontre un soucis avec mon code sendkeys.
En effet, le code me permet de renseigner automatiquement notre logiciel à partir des informations contenues dans une plage excel.
Le problème qui se pose est que le logiciel est fait de telle sorte que lorsque la valeur de la cellule D7=3 (ce qui signifie que c'est femme mariée), le logiciel demande le nom et prenom du mari mais lorsque D7 = 2 ou 4, le logiciel saute les champs reservés au nom et prenom du mari.
Puis que ma plage excel comporte en cellule D16 et D17, les cellules reservées au nom du mari.
Comment faire pour que lorsque la valeur en D7 = 3, il prenne en compte la valeur des cellules D16 et D17.
Mais si D7 est different de 3, il doit laisser les cellules D16 et D17 et aller directement à la cellule D18.
Je reste à votre disposition si pas clair chez vous.
Ci-dessous le code:
Code:
Sub activesimple()
'On Error GoTo gestionerreur
If MsgBox("ASSUREZ-VOUS QUE VOTRE SESSION", vbYesNo, "Demande de confirmation") = vbYes Then
 
AppActivate "ESSAI"
 
'POSITIONNEZ-VOUS SUR LE MENU SIMPLIFIE IGOR SOUHAITE
For I = 3 To 44
    SendKeys Cells(I, 4).Value, True
    attendre 0.6
    SendKeys "~"
    attendre 1
 
Next
    SendKeys "+{F3}"
    attendre 1
For I = 45 To 52
    SendKeys Cells(I, 4).Value, True
    attendre 0.6
    SendKeys "~"
    attendre 1
 
Next
    SendKeys "+{F6}"
    attendre 1
 
For I = 53 To 53
    SendKeys Cells(I, 4).Value, True
    attendre 0.6
    SendKeys "~"
    attendre 1
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
 
C

Compte Supprimé 979

Guest
Re : Comment intégrer une condition dans mon code sendkey

Salut Zombe ;)

Essaye ce code
VB:
Sub activesimple()
  Dim I As Integer, MemD7 As String
  'On Error GoTo gestionerreur
  If MsgBox("ASSUREZ-VOUS QUE VOTRE SESSION", vbYesNo, "Demande de confirmation") = vbYes Then


    AppActivate "ESSAI"
    MemD7 = ""
    'POSITIONNEZ-VOUS SUR LE MENU SIMPLIFIE IGOR SOUHAITE
    For I = 3 To 44
      ' Si I = 7 alor on mémorise la valeur de la cellule
      If I = 7 Then MemD7 = Cells(I, 4).Value
      ' Si I = 16 ou 17
      If I = 16 Or I = 17 Then
        ' Si la veleur mémorisée est 3
        If MemD7 = "3" Then
          ' On inscrit le nom et le prénom du mari
          SendKeys Cells(I, 4).Value, True
          attendre 0.6
          SendKeys "~"
          attendre 1
        End If
      Else
        ' Si I à une autre valeur que 16 ou 17
        SendKeys Cells(I, 4).Value, True
        attendre 0.6
        SendKeys "~"
        attendre 1
      End If
    Next


    SendKeys "+{F3}"
    attendre 1


    For I = 45 To 52
      SendKeys Cells(I, 4).Value, True
      attendre 0.6
      SendKeys "~"
      attendre 1
    Next
    SendKeys "+{F6}"
    attendre 1


    For I = 53 To 53
      SendKeys Cells(I, 4).Value, True
      attendre 0.6
      SendKeys "~"
      attendre 1
    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

A+
 

zombe

XLDnaute Occasionnel
Re : Comment intégrer une condition dans mon code sendkey

Salut BrunoM45

Votre code est trop cool.
Il répond parfaitement à mes attentes.
Si vous me permettez, je vais encore vous demander deux petits services :
1- Toujours dans le sens des conditions : le code ci-dessous me permet d’insérer N dans un champ de mon logiciel.
Je dois saisir N lorsque la 1ère lettre de la cellule B4 commence par P. Si c’est autre chose que P, on ne saisi pas N. on laisse la saisie continuer.
Je souhaiterai trouver une condition pour dire que lorsque la 1ère lettre de B4 est P, que cette partie du code s’exécute sinon qu’on passe au traitement suivant.
2- Serait-il possible de faire en sorte (intégrer code macro) qu’en appuyant sur la touche ESC, cela entraine l’arrêt de la macro (en cours d’exécution) ?
Pouvez-vous voir ces 2 points ?
Je vous remercie d’avance.

Code: Tout sélectionnerNext
SendKeys "N" & Chr(13), True
attendre 0.6
SendKeys "{LEFT}"
SendKeys "{ENTER}"
attendre 1
 

Discussions similaires

Réponses
8
Affichages
641

Statistiques des forums

Discussions
312 104
Messages
2 085 326
Membres
102 862
dernier inscrit
Emma35400