IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Cibler element combo box par VBA excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 20
    Par défaut Cibler element combo box par VBA excel
    Bonjour,
    Je me permet de vous demander de l'aide car je bloque depuis 2 jours sur une ligne de code.
    J'aimerai pouvoir sélectionner un élément dans une combo box d'un site. Mais là sélection ne se fait pas sur le site. J'ai fais avec un envoie de touches (Tab,down,down,enter) en attendant de trouver cette solution pour choisir directement l'élément.
    Je vous joint le code source du site en question et mon code VBA afin de voir si quelqu'un peut trouver d'où vient l'erreur.
    Merci d'avance pour votre aide.
    Nom : Code HTML2.jpg
Affichages : 230
Taille : 110,8 Ko

    Nom : Code VBA.jpg
Affichages : 217
Taille : 70,8 Ko

  2. #2
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 20
    Par défaut
    Petit up car sujet déjà bien reculé dans le forum.

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    le lien de ce site et ton code au format text dans une balise code et non en capture image Svp
    sans ca on peut rien pour toi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 20
    Par défaut
    Merci Patrick de te pencher sur mon problème.
    Pour le site je ne peux te le fournir car c'est site pro inaccessible hors du taff.
    j'ai également constater ca dans les espions : "La classe ne gère pas Autonomisation..."
    Peut etre que cela n'est pas possible d'automatiser la sélection dans la combo box. ( mais toute mes autre action de mon code fonctionnes). Si tu as besoin de voir autre chose demande moi j'essaierai de te fournir les infos que tu as besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    Sub medialogPORTABLE()
    
    '------------------------------------------------------------------------------------------------------------------------------------
    
    Call medialogLOG.medialogLOG
    
    '------------------------------------------------------------------------------------------------------------------------------------
    
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputZoneTexte As HTMLLinkElement
    Dim InputBouton As HTMLInputElement
    Dim Formsearch As HTMLFormElement
    Dim AFFICHER As HTMLLinkElement
    Dim MODIF As HTMLLinkElement
    Dim TEL As HTMLInputElement
    Dim VALIDER As HTMLLinkElement
    Dim COMBO As HTMLSelectElement
    Dim RETOUR As HTMLAnchorElement
    Dim QUITTER As HTMLInputElement
    Set FL = Sheets("PORTABLE")
    Dim y As Integer
    y = 2
    Dim htmlSelectElem As HTMLSelectElement
    
    '------------------------------------------------------------------------------------------------------------------------------------
      
    DEBUT:
          
       On Error GoTo ErrorHandler
          
       Application.Wait (Now + TimeValue("0:00:01"))
          
       If FL.Range("A" & y) = "" Then GoTo FIN2
      
       Set IE = New InternetExplorerMedium
       IE.Visible = True
       IE.navigate "https://#############.go"
       
       Do Until IE.readyState = READYSTATE_COMPLETE
       DoEvents
       Loop
    
    Application.Wait (Now + TimeValue("0:00:01"))
    
       Set IEDoc = IE.document
    
    Application.Wait (Now + TimeValue("0:00:01"))
       
    
    '------------------------------------------------------------------------------------------------------------------------------------
    'SAISIE DU NIR
    '------------------------------------------------------------------------------------------------------------------------------------
       
       Call IEDoc.parentWindow.execScript("javascript:naviguerVers('formCanalContact.go?menuCourant=m4&codeCanalParam=TOUS')", "JavaScript")
       
    Application.Wait (Now + TimeValue("0:00:01"))
      
       Set InputZoneTexte = IEDoc.all("idLabelSens1")
       InputZoneTexte.Click
       
    Application.Wait (Now + TimeValue("0:00:01"))
    
    
    '### CODE QUI BLOQUE-LE CHOIX NE SE FAIT PAS DANS LA COMBO BOX###
    Set htmlSelectElem = IEDoc.all("codeCanal")
    htmlSelectElem.Value = "CNL5"
    
    '###LE BUT EST DE VIRER SES LIGNES D'ENVOI DE TOUCHES QUI EST TROP ALEATOIRE.###
    'Application.Wait (Now + TimeValue("0:00:01"))
       SendKeys "{Tab}"
    'Application.Wait (Now + TimeValue("0:00:01"))
       SendKeys "{DOWN}"
    'Application.Wait (Now + TimeValue("0:00:01"))
       SendKeys "{DOWN}"
    'Application.Wait (Now + TimeValue("0:00:01"))
       SendKeys "{ENTER}"
    'Application.Wait (Now + TimeValue("0:00:01"))
    
      Set WshShell = CreateObject("WScript.Shell")
      WshShell.SendKeys "{NUMLOCK}"
          
    Application.Wait (Now + TimeValue("0:00:02"))
    
       Set AFFICHER = IEDoc.all("valider")
       AFFICHER.Click
           
    Application.Wait (Now + TimeValue("0:00:01"))
       
       Set InputBouton = IEDoc.all("nir")
       InputBouton.Value = FL.Range("A" & y)
       
    Application.Wait (Now + TimeValue("0:00:01"))
       
       Set Formsearch = IEDoc.all("formRecherche1")
       Formsearch.submit
       
       
    '------------------------------------------------------------------------------------------------------------------------------------
    'SAISIE DU NUMERO DE TELEPHONE CLIENT CONNU
    '------------------------------------------------------------------------------------------------------------------------------------
       
    Application.Wait (Now + TimeValue("0:00:02"))
    
       Set InputZoneTexte = IEDoc.all("bloc-info-generale")
       InputZoneTexte.Click
          
    Application.Wait (Now + TimeValue("0:00:02"))
    
       Set MODIF = IEDoc.all("btn-modifier")
       MODIF.Click
        
    Application.Wait (Now + TimeValue("0:00:02"))
    
       Set TEL = IEDoc.all("mobile.valeur")
       TEL.Value = FL.Range("B" & y)
        
    Application.Wait (Now + TimeValue("0:00:01"))
        
       Set VALIDER = IEDoc.all("Valider")
       VALIDER.Click
        
    Application.Wait (Now + TimeValue("0:00:01"))
        
       Set ABANDONNER = IEDoc.all("abandonner")
       ABANDONNER.Click
    
    Application.Wait (Now + TimeValue("0:00:01"))
    
       Call IEDoc.parentWindow.execScript("javascript:lienAccueil('true');", "JavaScript")
       
    Application.Wait (Now + TimeValue("0:00:01"))
       
       Set QUITTER = IEDoc.all("btn_accueil")
       QUITTER.Click
       
    Application.Wait (Now + TimeValue("0:00:01"))
    
    
    
    '------------------------------------------------------------------------------------------------------------------------------------
    'APPLICATION DE LA COULEUR DANS LA CELLULE
    '------------------------------------------------------------------------------------------------------------------------------------
       FL.Range(("A" & y), ("B" & y)).Interior.Color = RGB(255, 255, 0)
       IE.Quit
          
       
    '------------------------------------------------------------------------------------------------------------------------------------
    'BLOC FIN
    '------------------------------------------------------------------------------------------------------------------------------------
    FIN:
      IE.Quit
      Set IE = Nothing
      Set IEDoc = Nothing
      y = y + 1
      GoTo DEBUT
      
      
    '------------------------------------------------------------------------------------------------------------------------------------
    'BLOC FIN2
    '------------------------------------------------------------------------------------------------------------------------------------
    FIN2:
      IE.Quit
      Set IE = Nothing
      Set IEDoc = Nothing
      Call medialogFIXE.medialogFIXE
      Call VIDER.VIDER
      Call VIDER2.VIDER2
      CreateObject("Wscript.shell").Popup "Enregistrement des N° de téléphones terminé !", 10, "Enregistrement terminé !", vbInformation
      IE.Quit
    Exit Sub
    
    
    '------------------------------------------------------------------------------------------------------------------------------------
    'GESTION DES ERREURS
    '------------------------------------------------------------------------------------------------------------------------------------
    ErrorHandler:
      Resume FIN
      
      
    '------------------------------------------------------------------------------------------------------------------------------------
    'FIN DU CODE
    '------------------------------------------------------------------------------------------------------------------------------------
    End Sub
    Nom : Sans titre2.jpg
Affichages : 205
Taille : 86,3 Ko

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    si je peux pas tester on va pas aller bien loin

    cependant essaie plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iedoc.getelementsbyname("codeCanal")(0).value="blablabla"
    c'est tout ce que l'on pourra faire pour toi sans pouvoir tester

    et pour t'assurer de ce qui precede ceci met des points d'arret et regarde tes variable locales

    des wait... qui suivent le do/loop sur le readystate ,ca sent la protection anti robot donc vba walouh walouh

    on peut plus ou moins tricher avec le focus sur l'object

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with iedoc.getelementsbyname("codeCanal")(0)
    .click 'permet de simuler la presence de la souris dessus ( c'est pas sur ca marche pas a tout les coup)
    'ou
    .focus 
    .value="blablabla"
    end with
    pour tes gestions d'attente
    essaie a la place de ton do loop et!!! tes waits

    juste ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    do:doevents:loop while IE.readystate<>4 or IE.busy
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Avril 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2018
    Messages : 20
    Par défaut
    Merci Patrick pour tes astuces je me doutais bien que tu trouverai une solution.
    Bon pour la combo box j'ai réussi en faisant un switch entre les 2 case à cocher au dessus de la combo box et cela me ramène bien le bon élément dedans (pour qui, pourquoi ???). Bref du moment que ca marche et me remplace les sendkeys. Par contre j'ai repris ton code pour la gestion des attentes et c'est parfais !!! J'ai l'impression de passer d'une connexion 56k en Fibre directement. Le code s'enchaine beaucoup plus vite rien à voir. Encore Merci Patrick.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. espace entre ligne code html pour VBA
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/07/2015, 01h58
  2. [Système] Existe-t-il un bon parser HTML pour PHP ?
    Par MiJack dans le forum Langage
    Réponses: 8
    Dernier message: 25/10/2005, 11h18
  3. code HTML pour mettre une image en background dans un menu
    Par Link14 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/10/2005, 12h11
  4. [mail] page html pour mail
    Par Mr.White dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/03/2005, 16h55
  5. Réponses: 4
    Dernier message: 05/11/2004, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo