Bonjour à tous,
A partir d'une feuille EXCEL, contenant un certain nombre d'informations, je souhaite alimenter une base de données en ligne via un formulaire sur le web.
Je me connecte donc à IE6 et lance la page web sans problème.
Je remplis mes champs texte également sans problème avec ce genre de code trouvé sur le net :
Mon code simplifié :
Ce bout de code fonctionne. A deux détails près :
1.
Quand je l'exécute pas à pas, pas de souci. Mais quand je le laisse faire, le code plante en "Erreur d'exécution '91' : Variable objet ou variable de bloc With non définie". Un problème de réinitialisation de mon DOCelement ?
2.
Le champ "mask" est lié à une liste déroulante avec, dedans, une liste de choix. En mode normal, quand j'écris dans le champ "mask", la liste déroulante réagit automatiquement en fonction de ma saisie. Probablement avec un évènement déclenché sur le changement du "mask". Mais via ma macro EXCEL, quand je renseigne le champ "mask", la liste déroulante ne suit pas et reste à la valeur par défaut "-- CHOISISSEZ --".
Comment faire en sorte que la liste déroulante prenne la valeur du champ "mask" ?
Ou comment agir directement sur la liste déroulante en lui imposante la valeur que je souhaite ?
Voici le code source de la feuille EXCEL. Je n'ai mis que la partie relative au champ "mask" et à la liste déroulante associée :
Si ce n'est pas le cas, n'hésitez pas à me demander d'autres infos. Car je deviens chèvre !
En vous remerciant de votre aide !
A partir d'une feuille EXCEL, contenant un certain nombre d'informations, je souhaite alimenter une base de données en ligne via un formulaire sur le web.
Je me connecte donc à IE6 et lance la page web sans problème.
Je remplis mes champs texte également sans problème avec ce genre de code trouvé sur le net :
Mon code simplifié :
'Je crée mon objet IE
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
blnIe = True
strURL = "http://www.faune-iledefrance.org/index.php?m_id=10&backlink=rset&taxo_group=o"
ie.navigate (strURL)
Do While ie.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set IEdoc = ie.Document
'Partie 1 du formulaire
Set DOCelement = IEdoc.getElementsByName("coord_x").Item
DOCelement.Value = Cells(1, 1).Value
Set DOCelement = IEdoc.getElementsByName("coord_y").Item
DOCelement.Value = Cells(1, 2).Value
'Clic sur le bouton "Afficher" (qui s'appelle "disp_coord") pour valider la partie 1
IEdoc.All("disp_coord").Click
Set DOCelement = IEdoc.getElementsByName("date").Item
DOCelement.Value = Cells(1, 3).Value
Set DOCelement = IEdoc.getElementsByName("mask").Item
DOCelement.Value = Cells(1, 4).Value
Set DOCelement = IEdoc.getElementsByName("total_number").Item
DOCelement.Value = Cells(1, 5).Value
Set DOCelement = IEdoc.getElementsByName("remark").Item
DOCelement.Value = Cells(1, 6).Value
'Clic sur le bouton "Ajouter" (qui s'appelle "ADDOBS") pour valider la partie 2
IEdoc.All("ADDOBS").Click
'Et je referme mon objet IE
ie.Quit
Ce bout de code fonctionne. A deux détails près :
1.
Quand je l'exécute pas à pas, pas de souci. Mais quand je le laisse faire, le code plante en "Erreur d'exécution '91' : Variable objet ou variable de bloc With non définie". Un problème de réinitialisation de mon DOCelement ?
2.
Le champ "mask" est lié à une liste déroulante avec, dedans, une liste de choix. En mode normal, quand j'écris dans le champ "mask", la liste déroulante réagit automatiquement en fonction de ma saisie. Probablement avec un évènement déclenché sur le changement du "mask". Mais via ma macro EXCEL, quand je renseigne le champ "mask", la liste déroulante ne suit pas et reste à la valeur par défaut "-- CHOISISSEZ --".
Comment faire en sorte que la liste déroulante prenne la valeur du champ "mask" ?
Ou comment agir directement sur la liste déroulante en lui imposante la valeur que je souhaite ?
Voici le code source de la feuille EXCEL. Je n'ai mis que la partie relative au champ "mask" et à la liste déroulante associée :
En espérant m'être fait comprendre...<div class="box" style="padding:5px">masque de selection
<input class="ageNumberFormCell" type="text" name="mask" style="width:80px" onkeyup="javascript:dosearch(species_db, document.addobs.elements.mask, document.addobs.elements.id_species);"/>
<select size="1" style="width:270px" name="id_species">
<option value="0">-- CHOISISSEZ --</option>
<option value="51">Carotte</option><option value="54">Courgette</option><option value="55">Céleris</option><option value="53">Patate</option><option value="52">Tomate</option></select>
</div>
Si ce n'est pas le cas, n'hésitez pas à me demander d'autres infos. Car je deviens chèvre !
En vous remerciant de votre aide !