Bonjour à tous,
J'ai apporté des améliorations, correctifs et commentaires sur le script, des temporisations pour les exécutions de script de pages, les jeux sont gérés par un bouton, des cases à cocher pour la sélection du champs réduit et des jeux gagnant/placé groupés et des boutons radio pour sélectionné le type de jeux, il ne reste plus qu'à remplir les tables de jeux ZeTurf et gérer les boucles de jeux, je vous conseille de laisser la validation en manuel :
Private Sub IEZeTurf_Click()
Dim IE As Object
Dim IEDoc As Object
Dim Boutons As Object
Dim ZonesSaisies As Object
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim M As Integer
Dim ValeurBouton As String
Dim UrlZeTurf As String
'On récupère l'URL ZeTurf de la course en cours d'étude
'Forcément une course du jour ou du lendemain
If AnalyseCourse.UrlZeTurf.Text = "" Then
MsgBox("Cette course n'est plus ouverte aux paris.")
Exit Sub
Else
UrlZeTurf = AnalyseCourse.UrlZeTurf.Text
End If
'Initialisation des tables Jeux ZeTurf
'Maximum 5 chevaux en Bases et 10 en champs réduit
Dim JeuxZeTurfSimple(5) As Integer
Dim JeuxZeTurfCouple(5, 10) As Integer
Dim JeuxZeTurfTrio(5, 5, 10) As Integer
Dim JeuxZeTurfZE4(5, 5, 5, 10) As Integer
Dim JeuxZeTurfZE5(5, 5, 5, 5, 10) As Integer
For I = 1 To 5
For J = 1 To 5
For K = 1 To 5
For L = 1 To 5
JeuxZeTurfSimple(L) = 0
For M = 1 To 10
JeuxZeTurfCouple(L, M) = 0
JeuxZeTurfTrio(K, L, M) = 0
JeuxZeTurfZE4(J, K, L, M) = 0
JeuxZeTurfZE5(I, J, K, L, M) = 0
Next M
Next L
Next K
Next J
Next I
'
'Chargement des jeux ZeTurf
'A vous de remplir...
'
Call ChargeJeuxZeTurf()
IE = CreateObject("InternetExplorer.application")
IE.AddressBar = False
IE.MenuBar = False
IE.StatusBar = False
IE.Toolbar = False
IE.Visible = True
IE.TheaterMode = True
IE.Navigate(UrlZeTurf)
Do Until Not IE.Busy And IE.ReadyState = 4
Loop
System.Threading.Thread.Sleep(5000)
FileOpen(1, "ConnexionZeTurf.txt", OpenMode.Input)
IEDoc = IE.Document
'Saisie Login (input 0) / Mot de passe (input 1) / Date de naissance (input 2,3 et 4)
ZonesSaisies = IEDoc.GetElementsByTagName("input")
ZonesSaisies(0).Value = Trim(LineInput(1))
ZonesSaisies(1).Value = Trim(LineInput(1))
ZonesSaisies(2).Value = Trim(LineInput(1))
ZonesSaisies(3).Value = Trim(LineInput(1))
ZonesSaisies(4).Value = Trim(LineInput(1))
FileClose(1)
'Validation Saisie
'On charge la collection "Boutons"
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).ID = "connection_submit" Then Exit For
Next I
Boutons(I).Click
'Pause pour laisser le temps d'exécution aux scripts de la page web et du retour serveur
System.Threading.Thread.Sleep(5000)
'***
'*** Sélection du type de pari en fonction de la valeur du bouton
'***
'1 ou 2 => Simple Gagnant et Placé
'29 => ZE Show
'7 => ZE Couillon
'3 => Jumelé Gagnant
'4 => Jumelé Ordre
'5 => Jumelé Placé
'6 => Trio
'11 => Trio Ordre
'8 => ZE4
'22 => ZE4 Ordre
'12 => ZE5
If SimpleGagnant.Checked Then ValeurBouton = "1"
If SimplePlace.Checked Then ValeurBouton = "2"
If CoupleGagnant.Checked Then ValeurBouton = "3"
If CouplePlace.Checked Then ValeurBouton = "5"
If Trio.Checked Then ValeurBouton = "6"
If ZE4.Checked Then ValeurBouton = "8"
If ZE5.Checked Then ValeurBouton = "12"
If ZeShow.Checked Then ValeurBouton = "29"
If ZeCouillon.Checked Then ValeurBouton = "7"
'
'Ici vous devez gérer les boucles sur les tables de jeux
'Jusqu'au bouton Validation qu'il vaut mieux laisser en manuel
'A vous de remplir...
'Ci dessous, j'utilise CStr(Base) en tant que Base pour un jeux en champs réduits
'Et je coche 1 cheval sur 3 dans le champs réduit
' => For J = 1 To NbPart Step 3
'
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).Value = ValeurBouton Then Exit For
Next I
Boutons(I).Click
'Pause pour laisser le temps d'exécution aux scripts de la page web
System.Threading.Thread.Sleep(300)
'***
'*** Sélection du champs du jeux en fonction de la valeur du bouton
'***
'Par défaut : mode_unitaire
'mode_reduit
'mode_total
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
Boutons = IEDoc.getElementsByTagName("button")
If (I = 3 Or I = 5 Or I = 6 Or I = 8 Or I = 12) And ChampsReduit.Checked Then
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).Value = "mode_reduit" Then Exit For
Next I
Boutons(I).Click
'Pause pour laisser le temps d'exécution aux scripts de la page web
System.Threading.Thread.Sleep(300)
End If
'***
'*** Sélection des chevaux en fonction du title type de paris et de la valeur du bouton pour le numéro du cheval en mode Unitaire ou combiné
'***
'G => Simple Gagnant et class="btn-partant"
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
If ValeurBouton = 1 Then
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).Title = "G" And Boutons(I).Value = CStr(Base) Then Exit For
Next I
Boutons(I).Click
'Pause pour laisser le temps d'exécution aux scripts de la page web
System.Threading.Thread.Sleep(100)
End If
If (ValeurBouton = 1 And GagnantPlace.Checked = True) Or ValeurBouton = 2 Then
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).Title = "P" And Boutons(I).Value = CStr(Base) Then Exit For
Next I
Boutons(I).Click
'Pause pour laisser le temps d'exécution aux scripts de la page web
System.Threading.Thread.Sleep(100)
End If
If ChampsReduit.Checked = False Then
'Mode Combiné
'S => ZE Show et class="btn-partant"
'S => ZE Couillon et class="btn-partant"
'S => Jumelé Gagnant et class="btn-partant"
'S => Jumelé Ordre et class="btn-partant ordered"
'S => Jumelé Placé et class="btn-partant"
'S => Trio et class="btn-partant"
'S => Trio Ordre et class="btn-partant ordered"
'S => ZE4 et class="btn-partant"
'S => ZE4 Ordre et class="btn-partant ordered"
'S => ZE5 et class="btn-partant"
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).Title = "S" And Boutons(I).Value = CStr(Base) Then Exit For
Next I
Boutons(I).Click
System.Threading.Thread.Sleep(100)
Else
'en mode Champs Réduit
'B pour le cheval de base =>
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
Boutons = IEDoc.getElementsByTagName("button")
For I = 0 To Boutons.Length - 1
If Boutons(I).Title = "B" And Boutons(I).Value = CStr(Base) Then Exit For
Next I
Boutons(I).Click
System.Threading.Thread.Sleep(100)
'Mode Champs Réduit
'C pour les chevaux du Champs =>
'On recharge systématiquement la collection "Boutons", car une sélection peut ajouter ou supprimer des éléments de la collection
Boutons = IEDoc.getElementsByTagName("button")
For J = 1 To NbPart Step 3
For I = 0 To Boutons.Length - 1
If Boutons(I).Title = "C" And Boutons(I).Value = J Then Exit For
Next I
Boutons(I).Click
System.Threading.Thread.Sleep(100)
Next J
End If
ZonesSaisies = Nothing
Boutons = Nothing
IEDoc = Nothing
IE = Nothing
End Sub