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 :

RESULTAT DANS LE CODE HTML SURPRENANT [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 RESULTAT DANS LE CODE HTML SURPRENANT
    Bonjour a tous

    sur le projet de seb phyto je créé des plage de cellules html mais en string que je sauve en fichier par la suite

    mais c'est un peu bancale
    alors j'ai décidé de faire autrement a savoir travailler en mode DOM dans un HTML document en mémoire
    je fait donc un test et j'ai un résultat surprenant que ni j'explique ni ne comprends
    si dessous un exemple simple de code

    si quelqu'un a une idée je suis toute ouïes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set doc=createobject("htmlfile")
      doc.write "<html><style>td{border:1px solid black;}</style>" & vbcrlf & "<body><table id=tabletest ></table></body></html>"
    msgbox doc.body.innerhtml
    set oElement = doc.createElement("tr") 
     
    oElement.innerHTML="<TD>1</TD><TD>2</TD><TD>3</TD><TD>4</TD><TD>5</TD>"
    oElement.id ="tr1"
      doc.getElementByid("tabletest").appendChild oElement 
     
    set ie =createobject("internetexplorer.application")
    ie.navigate"about:blank"
    ie.visible=true
    ie.document.write "<html><style>td{border:1px solid black;}</style>" & vbcrlf & doc.body.innerhtml
    msgbox doc.body.innerhtml
    et voila le résultat que j'ai a l'affichage du document le code html dans le msgbox parle de lui même
    Nom : Capture.JPG
Affichages : 165
Taille : 59,7 Ko
    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

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour


    Sans détailler le code le </body> ne devrait-il pas être juste avant le </table> ?

  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 chris
    non <body> c'est le corps du document toi tu confond avec "<Tbody>"qui est le corps de la table
    mais même ca ca n'a aucune incidence
    voila un exemple avec toutes les balises et a leur place si tu veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set doc=createobject("htmlfile")
      doc.write "<!doctype html><html lang=""fr""><head> <meta charset=""utf-8""><style>td{border:1px solid black;}</style></head><body><table id=tabletest ><tbody></tbody></table></body></html>"
    msgbox doc.body.innerhtml
    set oElement = doc.createElement("tr") 
     
    oElement.innerHTML=oElement.innerHTML & "<TD>1</TD><TD>2</TD><TD>3</TD><TD>4</TD><TD>5</TD>"
    oElement.id ="tr1"
      doc.getElementByid("tabletest").children(0).appendChild oElement 
     
    set ie =createobject("internetexplorer.application")
    ie.navigate"about:blank"
    ie.visible=true
    ie.document.write "<!doctype html><html lang=""fr""><head> <meta charset=""utf-8""><style>td{border:1px solid black;}</style></head><body>" & vbcrlf & doc.body.innerhtml & "</body></html>"
    msgbox doc.body.innerhtml
    et ca change rien
    en général quand je dis que je ne pige pas c'est qu'il y a vraiment une énigme ce genre de manip étant devenu pour moi un jeu d'enfant

    il semblerait que la ligne .innerhtml= mange l'ouverture de la 1 ere balises TD sans aucune explication
    par contre si j'ajoute ">" symbole de fermeture avant le 1er TD la table est bonne mais j'ai un ">" en plus dans l'affichage
    comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oElement.innerHTML=oElement.innerHTML & "><TD>1</TD><TD>2</TD><TD>3</TD><TD>4</TD><TD>5</TD>"
    demo en image
    Nom : Capture.JPG
Affichages : 158
Taille : 52,1 Ko
    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 Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Patrick

    Une proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oElement.innerhtml = "</br><TD>1</TD><TD>2</TD><TD>3</TD><TD>4</TD><TD>5</TD>"

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour patricktoulon , 78chris et antonysansh
    je suis dubitatif, je ne comprends pas le fonctionnement de doc.write
    Code rajout tbody : Sélectionner tout - Visualiser dans une fenêtre à part
    doc.write "<html><head></head><body><Table></Table></body></html>"
    Code ne rajoute pas tbody : Sélectionner tout - Visualiser dans une fenêtre à part
     doc.write "<html><head></head><BODY><br></BODY></html>"

  6. #6
    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 Rdurupt

    non ce n'est pas le doc.rite qui ajoute le TBODY ca c'est automatique dans un document html

    ecrire ;
    "<html><body><table></table></body></html>"

    deviends

    "<html><body><table><tbody></tbody></table></body></html>"

    dans le code source
    et cela depuis IE 7

    en fait mon soucis finalement il n'est pas la c'est le premier TD qui est mangé!!!

    je tiens a preciser quand meme que la meme chose en javascript fonctionne tres bien sans manger mon TD
    c'est bien pour cela que je pose la question

    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

  7. #7
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Une balise ou un texte n'est pas mangé d'où l'idée de rajouter une balise BR

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

Discussions similaires

  1. evenement onclick dans du code html généré par js
    Par gelko dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2006, 09h24
  2. [Tableaux] Recherche LIKE dans le code Html
    Par lunick dans le forum Langage
    Réponses: 1
    Dernier message: 22/06/2006, 13h40
  3. Intégrer du php dans un code HTML ...
    Par Le Parrain dans le forum Langage
    Réponses: 15
    Dernier message: 13/04/2006, 10h29
  4. [RegEx] motif pour remplacer un mot dans du code HTML ...
    Par r-zo dans le forum Langage
    Réponses: 6
    Dernier message: 31/03/2006, 13h31
  5. [techno] Executable dans du code HTML ?
    Par franck.automaticien dans le forum Général Conception Web
    Réponses: 14
    Dernier message: 23/11/2005, 09h52

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