begin process at 2010 02 10 07:37:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

pilotage logiciel intranet avec vba excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pilotage logiciel intranet avec vba excel

vendredi 23 mai 2008 à 07:34:42 | pilotage logiciel intranet avec vba excel

epaminondas

Bonjour,
Je pilote un logiciel intranet avec VBA Excel avec le code suivant :

Code :

 

 						 								' Formulaire 								 										 										 								 						 				
 						 								  						 				
 						 								 										     								 								'Remplie les champs nécessaires... 								 										 										 								 						 				
 						 								 										    IE.DOCUMENT.All( 								"NumExp" 								).Value = CodeEctien 						 				
 						 								 										    IE.DOCUMENT.All( 								"motDePasse" 								).Value = Pass 						 				
 						 								 										    IE.DOCUMENT.All( 								"envoyer" 								).Click                                        								'clique sur le bouton... 								 										 										 								 						 				
 						 								  						 				
 						 								 										     								 								Do 								 								 								While 								 IE.ReadyState <>  								4 								 										 										 								 						 				
 						 								 										    DoEvents 						 				
 						 								 										     								 								 								 										Loop 								 								 										 										 								 						 				
 						 								  						 				
 						 								IE.navigate  								"http://www.intranet-ecti.org/asp/Missions/menu.asp" 								 								 								'new/new.asp" 								 										 										 								 						 				
 						 								  						 				
 						 								IE.navigate <a href= 								"http://www.intranet-ecti.org/asp/Missions/New/new.asp" 								 target= 								"_blank" 								>http://www.intranet-ecti.org/asp/Missions/ 								New 								/ 								new 								.asp</a> 						 				
 						 								  						 						 								 										 												-->If IE.DOCUMENT.All("MISS_ETR").value= "MISS_ETR " then IE.DOCUMENT.All("MISS_ETR").click 												                                										 										'clique sur le bouton 										 												 												 										 								 						 				
 						 								 										  								 						 						 								 										    								 								Do 								 								 								While 								 IE.ReadyState <>  								4 								 										 										 								 						 				
 						 								 										   DoEvents 						 				
 						 								 										    								 								 										Loop 								 								 										 										 								 						 				

. et je plante! --> variable objet ou bloc with non défini

. et voila le code source

Code :

 <tr>

        <td colspan= "1" class = "cellBold" ><input type= "radio" name= "TypeDocument" value= "MISS_FR" checked onClick= "afficheFraisSelonTypeDocument()" >Mission France</td>

        <td colspan= "3" class = "cellBold" ><input type= "radio" name= "TypeDocument" value= "MISS_ETR" onclick= "afficheFraisSelonTypeDocument()" >Mission Hors de France</td>

 

Quelqu'un peut-il m'aider ?
Merci.

 

vendredi 23 mai 2008 à 07:55:52 | Re : pilotage logiciel intranet avec vba excel

Renfield

Administrateur CodeS-SourceS
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_COMPLETE = 4
' Formulaire

'Remplie les champs nécessaires...
IE.DOCUMENT.All("NumExp").Value = CodeEctien
IE.DOCUMENT.All("motDePasse").Value = Pass
IE.DOCUMENT.All("envoyer").Click 'clique sur le bouton...

Do While IE.ReadyState <> READYSTATE_INTERACTIVE
   DoEvents
Loop

Do While IE.ReadyState <> READYSTATE_COMPLETE
   DoEvents
Loop

IE.navigate "http://www.intranet-ecti.org/asp/Missions/menu.asp" 'new/new.asp"

Do While IE.ReadyState <> READYSTATE_COMPLETE
  DoEvents
Loop
  
With IE.DOCUMENT.All("MISS_ETR")
    If .value= "MISS_ETR " then
        .click 'clique sur le bouton
    End If
End With                                              



à voir:
http://www.vbfrance.com/codes/CLIQUER-SUR-LIEN-JAVASCRIPT-CONTROLE-INTERNET-EXPLORER-REMPLIR_46366.aspx
vendredi 23 mai 2008 à 16:07:19 | Re : pilotage logiciel intranet avec vba excel

epaminondas

Merci pour ta réponse Renfield.
Je suis sûr que c'est ça mais toujours le même message.
Je ne pense pas que ça vienne des références, puisque ça marche jusque là.
Es tu sûr que dans l'instruction With IE Document.All("MISS_ETR"), l'expression entre parenthèses est la bonne ?
Je reproduis, ci-dessous, le texte modifié pour que tu voies, si je n'ai pas fait de bêtises ...

[CODE]
Sub Convention()                                                                                             ' Accès au logiciel Convention

Dim numeroexpert As Long
Dim password As Variant
Dim IE As Object
Dim sLocalFilename As String
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_COMPLETE = 4

        'crée un objet internet Explorer
        Set IE = CreateObject("InternetExplorer.Application")
        'le masque
        IE.Visible = True

        'ouvre la page d'enregistrement de identification Ecti
        IE.navigate " [ Lien ]"
        'attends que la page soit ouverte
        Do While IE.readyState <> READYSTATE_INTERACTIVE
        DoEvents
        Loop
       
' Formulaire

    'rempli les champs nécessaires...
    IE.DOCUMENT.All("NumExp").Value = CodeEctien
    IE.DOCUMENT.All("motDePasse").Value = Pass
    IE.DOCUMENT.All("envoyer").Click                                                          'clique sur le bouton...
   
Do While IE.readyState <> READYSTATE_INTERACTIVE
   DoEvents
Loop

Do While IE.readyState <> READYSTATE_COMPLETE
   DoEvents
Loop

'IE.navigate " [ Lien ]"               
IE.navigate " [ Lien ]"
 
  
With IE.DOCUMENT.All("MISS_ETR")
    If .Value = "MISS_ETR " Then
        .Click 'clique sur le bouton
    End If
End With
    Do While IE.readyState <> READYSTATE_COMPLETE
   DoEvents
Loop

Merci

end sub

vendredi 23 mai 2008 à 16:15:51 | Re : pilotage logiciel intranet avec vba excel

Renfield

Administrateur CodeS-SourceS
tu as mélangé certaines choses

après un .Navigate, on fait un boucle en attente de READYSTATE_COMPLETE :

        Do While IE.readyState <> READYSTATE_COMPLETE
            DoEvents
        Loop

idem ici :

IE.navigate " [ Lien ]"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  
With IE.DOCUMENT.All("MISS_ETR")

tu ne peux en effet pas jouer avec MISS_ETR de ton document, si tu n'a pas ce document : attend qu'il soit chargé.
le controle IE fonctionne de manière asynchrone.
il rend la main alors que la page n'est pas chargée. a toi d'attendre.

après un click sur un bouton, il faut attendre l'etat INTERACTIVE qui marque que le document réagit. ensuite, on attend e nouveau l'Etat COMPLETE

------------------------------------------

Sub Convention() ' Accès au logiciel Convention
Dim numeroexpert As Long
Dim password As Variant
Dim IE As Object
Dim sLocalFilename As String
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_COMPLETE = 4

        'crée un objet internet Explorer
        Set IE = CreateObject("InternetExplorer.Application")
        'l'affiche
        IE.Visible = True

        'ouvre la page d'enregistrement de identification Ecti
        IE.navigate " [ Lien ]"
        'attends que la page soit ouverte
        Do While IE.readyState <> READYSTATE_COMPLETE
            DoEvents
        Loop
        
' Formulaire

    'rempli les champs nécessaires...
    IE.DOCUMENT.All("NumExp").Value = CodeEctien
    IE.DOCUMENT.All("motDePasse").Value = Pass
    IE.DOCUMENT.All("envoyer").Click 'clique sur le bouton...
    
Do While IE.readyState <> READYSTATE_INTERACTIVE
   DoEvents
Loop

Do While IE.readyState <> READYSTATE_COMPLETE
   DoEvents
Loop
        
IE.navigate " [ Lien ]"

  
With IE.DOCUMENT.All("MISS_ETR")
    If .Value = "MISS_ETR " Then
        .Click 'clique sur le bouton
    End If
End With

Do While IE.readyState <> READYSTATE_INTERACTIVE
   DoEvents
Loop
Do While IE.readyState <> READYSTATE_COMPLETE
   DoEvents
Loop

end sub
vendredi 23 mai 2008 à 18:48:41 | Re : pilotage logiciel intranet avec vba excel

epaminondas

Tu vas pouvoir écrire un manuel pour les nuls, si ça continue.

Voila le bout de code incriminé qui est le symétrique du haut :

[CODE]

IE.navigate " [ Lien ]"

Do While IE.readyState <> READYSTATE_INTERACTIVE
            DoEvents
        Loop

With IE.DOCUMENT.all("MISS_ETR")
   If .Value = "MISS_ETR " Then
    .Click                                                                       'clique sur le bouton
    End If
End With

Do While IE.readyState <> READYSTATE_INTERACTIVE
   DoEvents
Loop

Do While IE.readyState <> READYSTATE_COMPLETE
   DoEvents
Loop

End Sub

Merci pour ta patience

dimanche 25 mai 2008 à 15:47:20 | Re : pilotage logiciel intranet avec vba excel

Renfield

Administrateur CodeS-SourceS
après un Navigate, on attend l'etat COMPLETE, avant de faire quoi que ce soit :

IE.navigate " [ Lien ]"

Do While IE.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop

With IE.DOCUMENT.all("MISS_ETR")
...
dimanche 25 mai 2008 à 18:52:29 | Re : pilotage logiciel intranet avec vba excel

epaminondas

Encore un tour de lasso Renfield,
toujours erreur 91
A +
mardi 27 mai 2008 à 15:23:38 | Re : pilotage logiciel intranet avec vba excel

epaminondas

Bonjour Renfield,

ça marche et je suis passé au contrôle suivant. Décidément tout ça ne s'invente pas et j'aimerais bien trouver une base de données sur le sujet ...

Voilà mon code :

Sub Convention()                                                                                             ' Accès au logiciel Convention

    Dim maPageHtml As HTMLDocument

    Dim Helem As HTMLElementCollection

    Dim TypeDocument As String

    Dim Deleg As Object

    Dim HTMLDelegElement(100) As HTMLElementCollection

   

Dim IE As Object

Dim sLocalFilename As String

Const READYSTATE_INTERACTIVE = 3

Const READYSTATE_COMPLETE = 4

 

        'crée un objet internet Explorer

        Set IE = CreateObject("InternetExplorer.Application")

        'le masque

        IE.Visible = True

 

        'ouvre la page d'enregistrement de identification Ecti

        IE.navigate "http://www.intranet-ecti.org/asp/index.asp"

        'attends que la page soit ouverte

        Do While IE.readyState <> READYSTATE_INTERACTIVE

        DoEvents

        Loop

       

' Formulaire

 

    'rempli les champs nécessaires...

    IE.DOCUMENT.all("NumExp").Value = CodeEctien

    IE.DOCUMENT.all("motDePasse").Value = Pass

    IE.DOCUMENT.all("envoyer").Click                                                          'clique sur le bouton...

   

Do While IE.readyState <> READYSTATE_INTERACTIVE

   DoEvents

Loop

 

Do While IE.readyState <> READYSTATE_COMPLETE

   DoEvents

Loop

 

IE.navigate "http://www.intranet-ecti.org/asp/Missions/New/new.asp"

 

Set maPageHtml = IE.DOCUMENT

Do While IE.readyState <> READYSTATE_INTERACTIVE

            DoEvents

        Loop

       

Do While IE.readyState <> READYSTATE_COMPLETE

   DoEvents

Loop

  

    ' getElementsByName("1") est le nom du bouton Radio

    'Item(1) correspond à la 2eme option dans la liste des boutons

   Set Helem = maPageHtml.getElementsByName("TypeDocument").Item(1)

    Helem.setAttribute "checked", "True"

   

Set maPageHtml = IE.DOCUMENT

   Set Helem = maPageHtml.getElementsByName("Deleg")   --> Incompatibilité de type

                                       ' Choix d'une Délégation

For I = 0 To (HTMLDeleg.Length - 1)

     If HTMLDelegElement(I).innerText Like "FR82 >TARN ET GARONNE - FR82" Then

          HTMLDelegElement(I).Selected = True

     End If

Next

Stop

End Sub

Et voici le code source

 <tr>
 <td class="cellBold">Délégation </td>
 <td><select name="Deleg">
   <option value="">Choisissez une délégation</option>
   <option value=""></option>
   <option value=FR01 >AIN - FR01 </option><option value=FR02 >AISNE - FR02 </option><option value=FR03 >ALLIER - FR03 </option><option value=FR04 >ALPES DE HAUTE-PROVENCE - FR04 </option><option value=FR06 >ALPES MARITIMES - FR06 </option><option value=FR07 >ARDÈCHE - FR07 </option><option value=FR08 >ARDENNES - FR08 </option><option value=FR09 >ARIÈGE - FR09 </option><option value=FR10 >AUBE - FR10 </option><option value=FR11 >AUDE - FR11 </option><option value=FR12 >AVEYRON - FR12 </option><option value=FR67 >BAS-RHIN - FR67 </option><option value=FR13 >BOUCHES DU RHÔNE - FR13 </option><option value=FR14 >CALVADOS - FR14 </option><option value=FR15 >CANTAL - FR15 </option><option value=FR16 >CHARENTE - FR16 </option><option value=FR17 >CHARENTE MARITIME - FR17 </option><option value=FR18 >CHER - FR18 </option><option value=FR19 >CORRÈZE - FR19 </option><option value=FR20A>CORSE DU SUD - FR20A</option><option value=FR21 >CÔTE D'OR - FR21 </option><option value=FR22 >CÔTES D'ARMOR - FR22 </option><option value=FR23 >CREUSE - FR23 </option><option value=FR79 >DEUX-SÈVRES - FR79 </option><option value=F107 >DOM/TOM - F107 </option><option value=FR24 >DORDOGNE - FR24 </option><option value=FR25 >DOUBS - FR25 </option><option value=FR26 >DRÔME - FR26 </option><option value=FR91 >ESSONNE - FR91 </option><option value=FR27 >EURE - FR27 </option><option value=FR28 >EURE ET LOIR - FR28 </option><option value=FR29 >FINISTÈRE - FR29 </option><option value=FR30 >GARD - FR30 </option><option value=FR32 >GERS - FR32 </option><option value=FR33 >GIRONDE - FR33 </option><option value=FR20B>HAUTE CORSE - FR20B</option><option value=FR43 >HAUTE LOIRE - FR43 </option><option value=FR31 >HAUTE-GARONNE - FR31 </option><option value=FR52 >HAUTE-MARNE - FR52 </option><option value=FR05 >HAUTES-ALPES - FR05 </option><option value=FR70 >HAUTE-SAÔNE - FR70 </option><option value=FR74 >HAUTE-SAVOIE - FR74 </option><option value=FR65 >HAUTES-PYRÉNÉES - FR65 </option><option value=FR87 >HAUTE-VIENNE - FR87 </option><option value=FR68 >HAUT-RHIN - FR68 </option><option value=FR92 >HAUTS DE SEINE - FR92 </option><option value=FR34 >HÉRAULT - FR34 </option><option value=FR35 >ILLE ET VILAINE - FR35 </option><option value=FR36 >INDRE - FR36 </option><option value=FR37 >INDRE ET LOIRE - FR37 </option><option value=FR38 >ISÈRE - FR38 </option><option value=FR39 >JURA - FR39 </option><option value=FR40 >LANDES - FR40 </option><option value=FR41 >LOIR ET CHER - FR41 </option><option value=FR42 >LOIRE - FR42 </option><option value=FR44 >LOIRE ATLANTIQUE - FR44 </option><option value=FR45 >LOIRET - FR45 </option><option value=FR46 >LOT - FR46 </option><option value=FR47 >LOT ET GARONNE - FR47 </option><option value=FR48 >LOZÈRE - FR48 </option><option value=FR49 >MAINE ET LOIRE - FR49 </option><option value=FR50 >MANCHE - FR50 </option><option value=FR51 >MARNE - FR51 </option><option value=FR53 >MAYENNE - FR53 </option><option value=FR54 >MEURTHE ET MOSELLE - FR54 </option><option value=FR55 >MEUSE - FR55 </option><option value=FR56 >MORBIHAN - FR56 </option><option value=FR57 >MOSELLE - FR57 </option><option value=FR58 >NIÈVRE - FR58 </option><option value=FR59A>NORD (SAUF ARRT DUNKERQUE) - FR59A</option><option value=FR60 >OISE - FR60 </option><option value=FR61 >ORNE - FR61 </option><option value=FR75 >PARIS - FR75 </option><option value=FR62A>PAS DE CALAIS - ARTOIS - FR62A</option><option value=FR62B>PAS DE CALAIS LITTORAL + DUNKERQUE - FR62B</option><option value=FR63 >PUY DE DÔME - FR63 </option><option value=FR64 >PYRÉNÉES ATLANTIQUES - FR64 </option><option value=FR66 >PYRÉNÉES ORIENTALES - FR66 </option><option value=FR69 >RHÔNE - FR69 </option><option value=FR71 >SAÔNE ET LOIRE - FR71 </option><option value=FR72 >SARTHE - FR72 </option><option value=FR73 >SAVOIE - FR73 </option><option value=FR77 >SEINE ET MARNE - FR77 </option><option value=FR76B>SEINE MARITIME (LE HAVRE) - FR76B</option><option value=FR76A>SEINE MARITIME (ROUEN) - FR76A</option><option value=FR93 >SEINE SAINT-DENIS - FR93 </option><option value=FR80 >SOMME - FR80 </option><option value=FR81 >TARN - FR81 </option><option value=FR82 >TARN ET GARONNE - FR82 </option><option value=FR90 >TERRITOIRE DE BELFORT - FR90 </option><option value=FR94 >VAL DE MARNE - FR94 </option><option value=FR95 >VAL D'OISE - FR95 </option><option value=FR83 >VAR - FR83 </option><option value=FR84 >VAUCLUSE - FR84 </option><option value=FR85 >VENDÉE - FR85 </option><option value=FR86 >VIENNE - FR86 </option><option value=FR88 >VOSGES - FR88 </option><option value=FR89 >YONNE - FR89 </option><option value=FR78 >YVELINES - FR78 </option></select>
 </td>
 <td class="cellBold" align="right">OU entrez son code </td>
 <td><input type="text" name="DelegNum"></td>

Est-ce que tu peux m'aider à franchir ce nouveau cap ?
Merci

mardi 27 mai 2008 à 15:34:16 | Re : pilotage logiciel intranet avec vba excel

Renfield

Administrateur CodeS-SourceS
"j'aimerais bien trouver une base de données sur le sujet"

commence par lire les réponses que l'on te soumet...

je vois dans ton code

        IE.navigate "http://www.intranet-ecti.org/asp/index.asp"

        'attends que la page soit ouverte
        Do While IE.readyState <> READYSTATE_INTERACTIVE
            DoEvents
        Loop

mon dernier message te disait pourtant :

        après un Navigate, on attend l'etat COMPLETE, avant de faire quoi que ce soit :
        IE.navigate " [ Lien ]"

        Do While IE.readyState <> READYSTATE_COMPLETE
            DoEvents
        Loop

le READYSTATE_INTERACTIVE, c'est uniquement lorsque tu appelles un Click, un Submit ....
mardi 27 mai 2008 à 15:45:10 | Re : pilotage logiciel intranet avec vba excel

Renfield

Administrateur CodeS-SourceS
ta boucle :

    For Each Deleg In IE.Document.getElementsByName("Deleg")(0).getElementsByTagName("Option")
        If InStr(1, Deleg.innerText, "FR82", vbTextCompare) Then
            Deleg.Selected = True
            Exit For
        End If
    Next Deleg

1 2

Cette discussion est classée dans : asp, ie, document, intranet, all


Répondre à ce message

Sujets en rapport avec ce message

InternetExplorer.Application [ par greg38bj ] Bonjour à tous,je souhaite envoyer des messages automatiquement sur un groupe yahoocomme ceci Dim IE As Object    Dim sLocalFilename As String        Help!! Impossible de cliquez (automation IE avec VB) [ par net-pratique ] Ci-dessous le code de ma page htm, je doit remplir le champ "startdate", choisir 500 dans"nbrecord" jusque la parfait, tout fonctionne mais je doit co focus iexplore [ par maxsecurite2 ] Bonjour,J'utile un script permettant de faire des actions sur Internet Explorer comme sur un Webbrowser voici mon script :Dim IE As ObjectSet IE = Cre remplir un formulaire automatiquement [ par epaminondas ] Je « bidouille » le programme ...caramail, pour l’adapter à mon problème : remplir automatiquement un formulaire sur un intranet auquel j’accède régul De VBA à Internet Explorer [ par AngeliusMefyrx ] En fait, j'aimerais savoir comment on fait pour utiliser les objets dans le Frame d'une page internet explorerVoici mon code:Private Sub LISTE_DblClic Activer son compte sur boursier.com via VB Excel [ par vevel ] Bonjour, Je cherche a récuperer des infos sur la bourse via le site boursier.com depuis excel Je voudrais recuperer les valeurs des differents "porte récupérer le nom de ma fenêtre IE contenant une fenêtre excel [ par zeriab ] Inscription: mai 2003 Mess Problème lors d'un remplissage automatique [ par Magelfik ] Bonjour, j'utilise le code suivant pour remplir des champs de sites que je visite avec WebBrowser (1) voici donc le code que j'utilise : WebBrowser1. Readystate ! [ par capo666 ] Salut a tous j,ai un petit problème. je vais sur un site et je remplis le formulaire et quand je click sur sur bouton suivant la page load et la je ve


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales