Ouvrir une page web et s'authentifier en VBA depuis Word

spyzen31830 - Modifié le 22 nov. 2019 à 18:12
 spyzen31830 - 27 nov. 2019 à 09:47
Bonjour,

J'ai créé un Template sous Word qui a pour objectif de transformer le document Word en code Wiki.
L'objectif et de permettre de créer facilement un page Wiki pour des personnes non initiées.
J'ai donc créée une Macro en VBA qui effectue la conversion.

Pour simplifier encore plus la tache, je souhaite que ma macro se connecte automatiquement au Wiki et permette l'authentification sur ce wiki.

J'ai trouvé du code VBA mais je n'arrive pas à la faire fonctionner.

J'ai un message d'erreur:
Microsoft Visual Basic
Erreur d'execution '91':
Variable objet ou variable de bloc With non définie


Quand je clic sur deboguage ça me met sur le ligne
DOCelement.Value = Login

du paragraphe 'login

Pourriez-vous m'aider?
Pour information:
L'URL du wiki mentionné dans le code ci-dessous n'est accessible qu'en interne. Mais vous pouvez faire des tests avec https://www.mediawiki.org/.
J'utilise ce logiciel pour mon wiki.

Par avance merci pour vos réponses

Sub connexion(address As String)
 
    Dim IE As InternetExplorer
    Dim IEdoc As Object
    Dim DOCelement As Object
    Dim Login As String
    Dim Password As String
    Dim navigate As String
    
    Set DOCelement = Nothing
    
    navigate = "http://10.39.5.98/mediawiki/index.php/" & address
 
    Set IE = New InternetExplorer
    IE.Visible = True
    IE.navigate (navigate)
 
     ' attente de fin de chargement
    Do Until IE.readyState = 4
        DoEvents
    Loop
 
    Set IEdoc = IE.Document
 
    'login
     Login = InputBox("Saisissez votre login pour le Wiki")
     Set DOCelement = IEdoc.getElementsByName("wpName1").Item
     DOCelement.Value = Login
 
    'password
     Password = InputBox("Saisissez votre Password pour le Wiki")
     Set DOCelement = IEdoc.getElementsByName("passe").Item
     DOCelement.Value = Password
     
     DOCelement.Select
 
    'connexion
     Set DOCelement = IEdoc.forms(0)
     DOCelement.submit
 
     Do Until IE.readyState = 3
        DoEvents
    Loop
 
    IE.navigate address
    
 
     Do Until IE.readyState = 4
        DoEvents
    Loop
 
End Sub

1 réponse

spyzen31830
27 nov. 2019 à 09:47
J'ai trouvé l'erreur.
Ci dessous le code corrigé:

Sub connexion(address As String)

Dim IE As InternetExplorer
Dim IEdoc As Object
Dim DOCelement As Object
Dim Login As String
Dim Password As String
Dim navigateconnexion As String
Dim navigateedition As String

Set DOCelement = Nothing

navigateconnexion = "http://10.39.5.98/mediawiki/index.php?title=Sp%C3%A9cial:Connexion&returnto=" & address
navigateedition = "http://10.39.5.98/mediawiki/index.php?title=" & address & "&action=edit"

Set IE = New InternetExplorer
IE.Visible = True
IE.navigate (navigateconnexion)

' attente de fin de chargement
Do Until IE.readyState = 4
DoEvents
Loop

Set IEdoc = IE.Document

'login
Login = InputBox("Saisissez votre login pour le Wiki")
Set DOCelement = IEdoc.getElementsByName("wpName").Item
DOCelement.Value = Login

'password
Password = InputBox("Saisissez votre Password pour le Wiki")
Set DOCelement = IEdoc.getElementsByName("wpPassword").Item
DOCelement.Value = Password

DOCelement.Select

'connexion
Set DOCelement = IEdoc.forms(0)
DOCelement.submit

Do Until IE.readyState = 3
DoEvents
Loop

IE.navigate navigateedition


Do Until IE.readyState = 4
DoEvents
Loop

End Sub
0
Rejoignez-nous