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

Access Discussion :

Page HTML vers VBA [AC-2010]


Sujet :

Access

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut Page HTML vers VBA
    Bonjour,
    je sollicite votre aide pour modifier une page HTML que je crée sur mon ordi avec VBA et qui représente une discussion.

    J'arrive à récupérer un click sur la page, ce click m'ouvre un formulaire Access où je peux modifier le texte de chaque partie de la discussion.

    Ce que je n'arrive pas à faire c'est de récupérer le click sur le BOUTON en face de chaque partie de discussion, pour me permettre de modifier que la partie choisie.

    Il y a plein d'exemples qui font ce travail mais dans l'autre sens, c'est à dire que VBA envoie un click sur la page HTML, je n'ai pas trouvé d'exemple dans l'autre sens.

    Si quelqu'un peut m'aider, merci par avance pour votre temps.
    Un travail qui plait est à moitié fait.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour.

    Pourrais-tu poster une copie d'écran de ton formulaire actuel ?
    Je ne suis pas sur de ce que tu as. Est-ce un formulaire Access avec dedans un contrôle navigateur Web ?
    Bref une image aiderai fortement.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonsoir marot_r,

    C'est un formulaire Access avec dedans un contrôle navigateur Web, et c'est sur l'évènement click du contrôle que j'affiche le formulaire qui me permet de modifier le texte qui est dans une table de la base.

    je mets l'image que tu me demandes, c'est en cliquant sur le numéro en marron que je voudrais modifier le message adéquat.

    Merci

    Nom : Nouvelle image (1).png
Affichages : 412
Taille : 26,0 Ko
    Un travail qui plait est à moitié fait.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour.

    J'ai trouvé des trucs sur du JScript mais pas de VBA.

    Tu pourais peut-être "capter" l'événemt click.

    Ici un exemple de comment définir un "listener" (capteur) d'événement.

    https://developer.mozilla.org/en-US/...b/Events/click

    Je n'ai aucune idée de la syntaxe à adopter en VBA.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour,

    Merci pour le lien, j'ai essayé de comprendre, je n'ai pas le niveau, je ne connais que Visual Basic et un tout petit peu Html.

    Peut-on détourner le problème de la sorte ?

    Ecrire un fichier cookie lorsque je clique sur le BOUTON marron de l'image, si oui, je lis le cookie sur le déclenchement du click VBA du contrôle navigateur et je peux afficher dans un autre formulaire le texte à modifier qui correspond au numéro du BOUTON écrit dans le fichier cookie.

    Aurais-tu un exemple de code sur le BOUTON pour créer le fichier cookie ? Ca me débloquerais.

    Si ce n'est pas possible le cookie, vois-tu d'autres pistes pour arriver au résultat de l'image, quitte à tout recommencer du début ?

    Merci d'avance.
    Un travail qui plait est à moitié fait.

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 868
    Points : 4 739
    Points
    4 739
    Par défaut
    Bonjour,

    Sans doute peux-tu trouver des réponses dans le tuto d'ARKHAM46 :
    http://arkham46.developpez.com/artic...b/?page=Page_3
    mais ce n'est pas un tuto facile ...

    CDLT
    "Always look at the bright side of life." Monty Python.

  7. #7
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour micniv,

    Merci de te pencher sur mon problème,

    Ton lien est super, j'avais déjà regardé mais trop rapidement, seulement dans mon formulaire, il n'y a pas de code VBA comme dans le tutoriel d'Arkam46.

    Je crée la Page Html de toute pièce par une fonction VBA et je la sauvegarde dans le dossier de la base, l'image est la lecture du fichier de cette page par formulaire qui contient un unique contrôle de type Navigateur Web avec comme propriété 'Source contrôle' : =[Application].[CurrentProject].[path] & "\FilDiscussion.htm".

    Je vais essayer d'ouvrir mon formulaire comme dans le tuto.

    A +
    Un travail qui plait est à moitié fait.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour.

    Dans le tutorial mentionné tu as le chapitre :

    IV-C. Événements des éléments d'une page HTML
    http://arkham46.developpez.com/artic...e=Page_3#LIV-C

    Qui me semble être ce que tu cherches.

    La syntaxe Private WithEvents BoutonGoogle As HTMLInputElement est ce que j'avais en tête quand je parlais de "captation" d'événement.

    Merci à micniv pour le lien.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 868
    Points : 4 739
    Points
    4 739
    Par défaut
    Un autre tuto que je pense plus adapté à ton PB.
    http://qwazerty.developpez.com/tutor...excel/#LIV-B-3

    CDLT
    "Always look at the bright side of life." Monty Python.

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    J'ai testé le tutorial et Google semble avoir changé sa page et le type du bouton.
    Ce type ne déclenche, sauf erreur de ma part, pas d'événement attrapable par VBA.
    C'est étrange car l'événement est bien dans la liste :-(.

    Par contre voici un exemple fonctionnel.
    C'est dérivé de l'exemple du chapitre IV-D. Modifier dynamiquement une page
    http://arkham46.developpez.com/artic...e=Page_3#LIV-D

    Il faut faire un formulaire avec un bouton nommé OpenExplorer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Compare Database
    Option Explicit
     
    Private WithEvents oButton As MSHTML.HTMLInputElement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Function oButton_onclick() As Boolean
        oButton.Document.Forms("f").elements("q").Value = "Arkham46"
        oButton_onclick = True
        MsgBox (oButton.Name)
    End Function
    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
    Private Sub OpenExplorer_Click()
        Dim oNav As SHDocVw.InternetExplorer
        Dim oDoc As MSHTML.HTMLDocument
        Dim oSpan_ds As MSHTML.HTMLSpanElement
        Dim oSpan_lsbb As MSHTML.HTMLSpanElement
        Set oNav = New SHDocVw.InternetExplorer
        oNav.Visible = True
        oNav.navigate "http://google.fr"
        ' Attente avec timeout de 10 s
        If WaitIE(oNav, 10) Then
           ' 10 s écoulées et page non chargée
           MsgBox "Time out!"
        Else
           ' Page chargée, on continue
           Set oDoc = oNav.Document
           ' Span
           Set oSpan_ds = oDoc.createElement("span")
           oSpan_ds.className = "ds"
           ' Span
           Set oSpan_lsbb = oDoc.createElement("span")
           oSpan_lsbb.className = "lsbb"
           ' Bouton
           Set oButton = oDoc.createElement("input")
           oButton.Name = "btnA"
           oButton.Type = "submit"
           oButton.Value = "Recherche Arkham46"
           oButton.className = "lsb"
           ' Ajout du bouton dans le span lsbb
           oSpan_lsbb.appendChild oButton
           ' Ajout du span lsbb dans le span ds
           oSpan_ds.appendChild oSpan_lsbb
           ' Ajout de l'ensemble
           GetButton(oDoc, "btnG").parentElement.parentElement.parentElement.appendChild oSpan_ds
        End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' Recherche d'un bouton par son nom dans le document
    Private Function GetButton(Document As HTMLDocument, ButtonName As String) As MSHTML.HTMLInputElement
        If Document.getElementsByName(ButtonName).length > 1 Then
           Set GetButton = Document.getElementsByName(ButtonName)(1)
        Else
           Set GetButton = Document.getElementsByName(ButtonName)(0)
        End If
    End Function
    Il capte bien l'événement du nouveau bouton.

    Cela ouvre un IE externe mais proablement qu'en assignant à ONav le navigateur intégré au contrôle Web cela marchera aussi.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Merci à tous les deux de m'aider,

    Je ne m'en sort pas, les variables locales du document internet, c'est un poème, on dirait que c'est sans fin, on clique sur un + et il y a la ma même chose dedans, on reclique et on reclique, les infos intéressantes sont bien sur à la fin, il faut se coltiner à chaque fois toutes les variables malgré que 90% d'entelles soient vides, et après on roule et on roule la molette pour retourner au départ, j'en peux plus, mon doigt il fume !

    Pouvez-vous me confirmer que les boutons qui sont les n°1, n°2 ... en marron sur l'image sont bien déclarés dans la page :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input name="msg" class="btnModifi" id="1" type="submit" value=n°&nbsp;1>
    <input name="msg" class="btnModifi" id="2" type="submit" value=n°&nbsp;2>
    <input name="msg" class="btnModifi" id="3" type="submit" value=n°&nbsp;3>

    Autre chose, je reste avec le contrôle de type Navigateur Web au moins il n'y a pas le cadre d'internet explorer, donc dans Form-Load j'ai mis le code réduit de Arkham46, il n'y a pas besoin d'attendre qu'il charge, ma page est toute petite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
    Dim oDoc As MSHTML.HTMLDocument
        WB0.Navigate Application.CurrentProject.path & "\FilDiscussion.htm"
        WB0.Visible = True
        Set oDoc = WB0.Document
    End Sub
    Et après je galère sérieux, mais je vois que tu m'a envoyé plein d'exemples du temps que j'écrivais, je vais regarder tout ça
    Merci.
    Un travail qui plait est à moitié fait.

  12. #12
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour,
    Alors j'arrive à faire fonctionner le code avec la page Google, j'ai supprimé la partie création du bouton, ça marche encore, mais quand je tr
    Un travail qui plait est à moitié fait.

  13. #13
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Oups, c'est parti tout seul, Sacré Ordi !!! C'est pas moi, je le jure!

    Bonjour,

    Alors j'arrive à faire fonctionner le code avec la page Google, j'ai supprimé la partie création du bouton, ça marche encore, mais quand je transpose dans mon formulaire, il y a une erreur sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetButton(oDoc, "msg").parentElement.parentElement.parentElement.appendChild oSpan_ds
    parce que je n'ai pas de "oSpan ds" dans mon Html et je ne sais pas par quoi le remplacer, je te mets le code de la page html :
    Code html : 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
    <!DOCTYPE html PUBLIC " ">
    <HTML lang="fr">
    <HEAD>
    <meta http-equiv="X-UA-Compatible" content="IE=11.0000">
    <style>
    .content-main { background: rgb(255, 255, 255); padding: 10px;}
    body { line-height: 1.345; color: rgb(63, 63, 63); font-family: Comic Sans MS; font-size: 13px;}
    .btn-style { padding: 10px; text-align: center; text-transform: uppercase; display: block;}
    .btnModifi {  border: 2px solid transparent; border-image: none; text-align: center; font-size: 12px; font-weight: normal; font-family: GothamRndBook, Arial, sans-serif; padding: 5px; margin-top: 0px; margin-bottom: 0px;height: 20px; line-height: 0px; border-radius: 5px; background: rgb(221, 144, 24); color: rgb(255, 255, 255);}
    input [type='submit'] { cursor: pointer; -webkit-appearance: button;}
    .dat0 { margin-top: 10px; padding-left: 10px; padding-bottom: 3px; text-align: left; font-family: GothamRndBook,Arial,sans-serif; font-size: 12px; width: 75%;}
    .dat1 { margin-top: -18px; padding-right: 10px; text-align: right; font-family: GothamRndBook,Arial,sans-serif; font-size: 12px; width: 75%;}
    .gau { float: left;}
    .message { margin-top: 0px; margin-left: 0px; margin-bottom: 10px; margin-right: 0px; padding: 10px; text-align: left; border-radius: 15px; width: 75%; clear: both; min-height: 0px; -webkit-border-radius: 15px;}
    .che { background-color: rgb(159, 223, 195);}
    </style>
    </HEAD>
    <BODY>
    <div class="dat0 gau"><input class="btnModifi" id="msg1" type="submit" value=n°&nbsp;1> - Demande de r&eacute;servation<br />Client &#x21E8 Nous</div>
    <div class="dat1 gau">Reçu le : mar. 06-02-2018 &agrave;  16:15</div>
    <div class="message gau che">Suite a l&apos;appel t&eacute;l&eacute;phonique de Mme<br />
    <br />
    je serais int&eacute;ress&eacute;e pour la location de la petite maison.<br />
    <br />
    Sinc&egrave;res salutations.<br /></div>
    </BODY>
    </HTML>

    le code du formulaire aussi :
    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
    Option Compare Database
    Option Explicit
    '---
    '
    Private WithEvents oButton As MSHTML.HTMLInputElement
     
    Private Function oButton_onclick() As Boolean
        MsgBox (oButton.name)
    End Function
     
    ' Recherche d'un bouton par son nom dans le document
    Private Function GetButton(Document As HTMLDocument, ButtonName As String) As MSHTML.HTMLInputElement
        If Document.getElementsByName(ButtonName).length > 1 Then
           Set GetButton = Document.getElementsByName(ButtonName)(1)
        Else
           Set GetButton = Document.getElementsByName(ButtonName)(0)
        End If
    End Function
     
    Private Sub Form_Load()
    Dim oDoc As MSHTML.HTMLDocument
        WB0.Navigate Application.CurrentProject.path & "\FilDiscussion.htm"
        WB0.Visible = True
        Set oDoc = WB0.Document
        GetButton(oDoc, "msg").parentElement.parentElement.parentElement.appendChild oSpan_ds
    End Sub
    Merci d'avance en espérant que tu trouves le grain de sable qui coince.
    Un travail qui plait est à moitié fait.

  14. #14
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour à tous,

    J'ai testé pendant ce We le code de Arklam46 proposé par Marot_r et Micniv.
    C'est merveilleux, c'est ce qu'il me faut MAIS dans mon cas CA PLANTE et c'est énervant.
    Je peux dire qu'avec l'Url :
    1. Google.fr, c'est Ok
    2. Google.htm (page Google.fr enregistrée dans le dossier de la base de donnée), c'est Ok
    3. ixquick.com (un autre moteur de recherche), c'est Ok
    4. ixquick.htm, (page enregistrée dans le dossier de la base de donnée), c'est Ok
    5. ixquick.htm, où je remplace le <body> par le <body> de ma page, c'est Ok
    6. ixquick.htm, idem dessus, et que je renomme par le nom de ma page, c'est Ok
    7. Ma page.htm créée par VBA à l'identique de dessus (contenu identique et nom du fichier identique ou pas) CA PLANTE

    L'erreur est à la ligne 5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        oIeNav.Navigate strUurl
        lTimer = Timer
        Do
            DoEvents
              If oIE.ReadyState = READYSTATE_COMPLETE And Not oIE.Busy Then Exit Do
              If pTimeOut > 0 And Timer - lTimer > pTimeOut Then : WaitIE = True : Exit Do
        Loop
        Set oDoc = oIeNav.Document
    Erreur d'exécution '-2147467259(80004005)':
    Erreur Automation
    Erreur non spécifiée.

    Si je passe la temporisation l'erreur est à la ligne 8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        oIeNav.Navigate strUurl
    '    lTimer = Timer
    '    Do
    '        DoEvents
    '          If oIE.ReadyState = READYSTATE_COMPLETE And Not oIE.Busy Then Exit Do
    '          If pTimeOut > 0 And Timer - lTimer > pTimeOut Then : WaitIE = True : Exit Do
    '    Loop
         Set oDoc = oIeNav.Document
    Erreur d'exécution '-2147467259(80004005)':
    Erreur Automation
    L’objet invoqué s’est déconnecté de ses clients.

    Si je fais débogage et F8 :

    Erreur d'exécution '462':
    Le serveur distant n'existe pas ou n'est pas disponible

    j'espère avoir été clair dans mon explication, c'est pas évident, une indication de votre part serait la bien venue.
    Merci par avance.
    Merci
    Un travail qui plait est à moitié fait.

  15. #15
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 868
    Points : 4 739
    Points
    4 739
    Par défaut
    Bonjour
    dans les lignes
    ...If oIE.ReadyState..
    ce ne serait pas oIEnav l'objet ? (mais je ne vois pas l'ensemble de ton code)

    CDLT
    "Always look at the bright side of life." Monty Python.

  16. #16
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour Micniv,

    Et merci pour ta réponse

    Non ce n'est pas à cause de ça, mais je sais d'où ca vient maintenant.

    C'est dû a la structure du disque dur qui enregistre à la manière NTFS si bien que lorsque je sauvegarde la page Google.fr sur mon disque dur, il n'y a pas que la page Google, mais aussi des flux qui sont invisibles pour Windows explorer.exe, (attention pas iexplore.exe) et donc quand ma fonction VBA crée ma page, il n'y a aucun flux de créé ce que arrête le code. Et c'est pour ça que quand je remplace le texte de la page Google.htm sur mon disque par le texte de ma page ça fonctionne, parce qu'il y a les flux.

    Ce qui m'a mis sur cette voie c'est les deux fichiers identiques en nom et en contenu, un qui fonctionne et l'autre non, il y avait surement un truc de caché quelque part.

    Déjà je tiens à te remercier pour avoir suivi mon problème ainsi que Marot_r, vous m'avez indiqué où regarder tous les deux.

    Mais du coup pour finaliser ma solution, il me reste à trouver comment créer le flux qui va avec le fichier htm da ma page, et là auriez-vous une idée?

    Ou bien si c'est trop compliqué penses-tu qu'il soit possible de créer un formulaire à la volée avec une fonction VBA qui fasse comme ma page htm ?

    Merci encore

    A+
    Un travail qui plait est à moitié fait.

  17. #17
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour.

    Pour la partie HTML je suis largué.

    Pour

    Ou bien si c'est trop compliqué penses-tu qu'il soit possible de créer un formulaire à la volée avec une fonction VBA qui fasse comme ma page htm ?
    Si tes données sont stockées dans la BD faire une formulaire continu basé dessus ne devrait pas être très difficile.
    Pas besoin de le créer à la volée.

    Si tu utilises des champs Mémo avec la propriété Format Texte à "Text enrichi" tu as possibilté d'y insérrer quelques balises HTML donc d'avoir un peu plus que du texte tout bête (coloration, changement de police).

    Tu peux aussi utiliser la mise en forme conditionnelle pour changer la couleur de fond.

    Le seul gros problème avec les formulaires c'est que l'espace dédié à l'affichage est fixe que tu ais une lignes ou 50, tu as toujours X cm définis à la création et malheuresement, tant que tu n'as pas cliqué dans le champ, tu ne peux pas savoir si le texte se continue après. Une parade imparfaite est définir une taille qui est un multiple de la hauteur de tes lignes + 1/2 ligne, comme cela tu peux voir que tu as du texte coupé et donc qu'il faut lire plus avant.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  18. #18
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    A l'attention de Micniv,

    Le code que j'ai mis est faux, ce n'était pas intentionnel, j'ai juste remplacé la fonction WaitIE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
         oIeNav.Visible = True
        oIeNav.Navigate strUurl
     
        ' Attente avec timeout de 10 s
        If WaitIE(oIeNav, 10) Then
            ' 10 s écoulées et page non chargée
            MsgBox "Time out!"
        Else
            ' Page chargée, on continue
            Set oDoc = oIeNav.Document
    par son contenu en oubliant de changé le "oIE en "oIeNav", je pensais que ce serait plus clair ainsi, désolé.

    A +
    Un travail qui plait est à moitié fait.

  19. #19
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour Marot_r,

    J'avais essayé le formulaire continue avant de faire par Html, ce n'étais pas beau car comme tu l'as dit l'espace dédié à l'affichage est fixe.

    Mon idée est de créer un formulaire où j'ajoute le contrôle Bouton puis les 3 contrôles au dessus du texte de l'interlocuteur (un à côté du bouton, deux autres à la ligne en dessous, un à droite, l'autre à gauche), jusqu'ici facile, mais pour le contrôle qui affiche le texte de l'interlocuteur, le plus compliqué est de définir sa taille en hauteur.

    Ca c'est pour un paragraphe, après je change les couleurs, les gauches et droites des contrôles en fonction de l'interlocuteur.

    Pour définir la hauteur du contrôle je vois cette solution :
    Au début on enregistre la longueur L de chaque mot du paragraphe dans un tableau, puis dans une boucle on additionne les longueurs du tableau dans l'ordre L=L+L jusqu'à L<(longueur de la ligne), là on additionne I=I+1 puis reboucle jusqu'à la fin du tableau et on a I le nombre de lignes donc la hauteur du contrôle.

    Donc connaitrais-tu une fonction capable de transformer un mot en une longueur L en pixel ou cm, en tenant compte de la police de caractère employée.

    Merci d'avance
    Un travail qui plait est à moitié fait.

  20. #20
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 323
    Points : 23 758
    Points
    23 758
    Par défaut
    Bonjour. Oui cette fonction existe mais c'est un enfer à utiliser car il faut tenir compte de la police, des retours à la ligne et de la mise en forme ... pas cool du tout.

    Une solution plus simple est d'utiliser un rapport.
    1. Tu crées un rapport avec juste un contrôle texte basé sur une table qui contient juste un champ.
    2. Tu définis la largeur et la police du contrôle texte dans le rapport avec des champs auto extensiobles et tu mets la propriété "Auto extensible" à vrai.
    3. Au moment de la création du contrôle :
      1. Tu pousses la valeur à afficher dans la table.
      2. Tu ouvres le rapport (caché en production).
      3. Tu récupères la hauteur du champ texte.
      4. Tu fermes le rapport.


    Cela m'ammène à une autre idée.

    Il me semble qu'à partir de 2010 tu peux mettre un bouton fonctionnel dans un rapport.
    Donc pour l'affichage, tu pourrais utiliser un rapport au lieu d'un formulaire.
    Pour faire un ajout tu pourrais avoir un bouton "Ajouter" dans le pied d'état.
    Ce bouton ouvrirai un formulaire de saisie
    puis à la fermeture tu fermes le rapport et tu le réouvres pour présenter la nouvelle saisie.

    Le seul point que je ne sais pas faire c'est se placer "à la fin" d'un rapport avec VBA.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Enregistrer une page html sous vba
    Par scofild20 dans le forum Général VBA
    Réponses: 8
    Dernier message: 10/08/2007, 15h52
  2. passer d'une page html vers PHP
    Par @min@ dans le forum Langage
    Réponses: 5
    Dernier message: 06/04/2007, 21h34
  3. Redirigé une page html vers une page php
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/08/2006, 13h24
  4. Réponses: 4
    Dernier message: 06/04/2006, 11h07
  5. redirection de pages html vers une page locale? (modif dns?)
    Par johan_b dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 20/01/2006, 17h51

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