With Selection.QueryTable prise en charge des scripte ?
Bonjours Jai ajouter une macro qui mets a jours les informations dune page web local.
elle ce trouve C:\Users\jonl\Desktop\Visualisation du script n°33.htm
Tout fonctionne bien mise a part que Jai un texte qui s'affiche de façon aléatoire dans un scripte dans la page web, qui n'est pas prit dans Excel
Je voulait savoir si y aurai une méthode pour que lorsque les données sont obtenues , le texte aléatoire dans le scrypte soi aussi copier dans excel.
voici le bouton macro.
Sub test()
Workbooks.Open ("http://www.google.ca")
End Sub
Sub MAJ()
Dim i As Long, ws As Worksheet, wsReq As Worksheet, savbarre As String
' mettre Feuil2 en variable pour raccourcir le code et qu'il soit plus lisible
Set ws = Worksheets("Liste liens")
Set wsReq = Worksheets("Requete")
'sauvegarde état barre d'état en bas
savbarre = Application.DisplayStatusBar
' activer barre d'état
Application.DisplayStatusBar = True
derlig = ws.[B65536].End(xlUp).Row
For i = 2 To derlig ' pour chaque ligne d'adresse web
'activer Feuil1 recevant la requête web
wsReq.Select
wsReq.[A1].Select
' mettre à jour le n° du site dans la barre d'état
Application.StatusBar = "Site " & i - 1 & "/" & derlig - 1 & " en cours..."
'modifier la requete web
With Selection.QueryTable
'la faire pointer sur la nouvelle adresse
.Connection = "URL;" & ws.Cells(i, 2).Value
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
.AdjustColumnWidth = False
.SavePassword = True
End With
' créer feuillle si besoin
If Not existSheet("Requete " & i - 1) Then
Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Requete " & i - 1
End If
' copier la page de données dans nouvelle feuille
Sheets("Requete " & i - 1).Select
ActiveSheet.Cells.ClearContents
wsReq.UsedRange.Copy Destination:=[A1]
ActiveSheet.Rows("1:1").Insert Shift:=xlDown
ActiveSheet.[A1] = ws.Cells(i, 2).Value
'
Next i ' site suivant
'
'rétablir l'état de la barre d'état
Application.DisplayStatusBar = savbarre
ws.Select
Set ws = Nothing
End Sub
Function existSheet(nomFeuille As String) As Boolean
On Error Resume Next
existSheet = Sheets(nomFeuille).Index
End Functionbonsoir,
cela va être difficile de t"aider tu as un problème avec une page ou un site dont tu ne donnes ni la référence, ni le contenu.
Bonsoir , en effet , j'ai donc ajouter les fichiers sources Excel et web, en question.
Je m'explique donc
il ya 3 fichier dans le zip.
1:Session 1 jon.xlsm; qui est mon classeur. celui que je cherche a copier coller le code Macro pour le site web.,
2:Demo donnée site web.xls; contien le code macro pour copier les donnée dun site web sur excel,
3:Visualisation du script n°33.htm; qui est ma page web réaliser très simplement avec un scripte qui affiche un texte aléatoire.
Dans mon classeur, J'aimerai donc que, en cliquant sur le bouton macro, Contrat Automatique, Celui ci appelle la procédure pour ouvrir le fichier web
C:\Users\informatiquelepage\Desktop\Visualisation du script n°33.htm
Et ajoute la valeur texte qui est afficher.
Le problème est que je bloque,Le code macro ne prend pas le texte aléatoire gérer par le scripte dans le fichier web, mais juste le texte brute , mais juste du contenue html.
Peut être sera t'il plus claire en ayant les fichier en main , je vous joint aussi une vidéo youtube qui montre a quoi sert mon petit classeur, car je sé que il peut être difficile d'expliquer parfois.
merci de votre aide .
Joublai defoi que sa peut etre utile voici la source du fichier html
Le texte aléatoire ce trouve afficher par cette ligne
onload="AfficherPostit(-1,-1,RandomPostit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0056)http://www.web-creation-fr.com/javascript/voir.php -->
<HTML><HEAD><META content="IE=5.0000" http-equiv="X-UA-Compatible">
<TITLE>GENERATEUR SYSTEME BINAIRE ALEATOIRE</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><LINK
href="Visualisation%20du%20script%20n°33_fichiers/js.css" rel="stylesheet" type="text/css">
<style type="text/css">
body {
background-image: url(Visualisation%20du%20script%20n%C2%B033_fichiers/Forex.jpg);
background-color: #666;
background-repeat: repeat;
}
</style>
<SCRIPT language="Javascript">
Postit=new Array();
Postit[0]="<b>ALÉATOIRE n°1 :</b><BR><BR>AU DESSU";
Postit[1]="<b>ALÉATOIRE n°2 :</b><BR><BR>EN DESSOU";
Postit[2]="<b>ALÉATOIRE n°3 :</b><BR><BR>AU DESSU";
Postit[3]="<b>ALÉATOIRE n°4 :</b><BR><BR>AU DESSU";
Postit[4]="<b>ALÉATOIRE n°5 :</b><BR><BR>EN DESSOU";
Postit[5]="<b>ALÉATOIRE n°6 :</b><BR><BR>EN DESSOU";
// Choix aléatoire du postit à afficher
function RandomPostit() {
if (Postit.length>0) {
nombre=(Math.floor((Postit.length)*Math.random()));
return Postit[nombre];
} else {
return Postit[0];
}
}
function AfficherPostit(xo,yo,texte) {
// Si le navigateur est autre que IE (il doit respecter les dernières normes du DHTML pour pouvoir afficher le postit)
if (!document.all){
// Définition du calque dans une variable pour plus de commodité
calque=document.getElementById('postit');
// Si la coordonnée xo du postit vaut -1, alors on le centre en largeur
if (xo==-1){xo=(window.innerWidth/2)-120;}
// Si la coordonnée xo du postit vaut -1, alors on le centre en hauteur
if (yo==-1){yo=(window.innerHeight/2)-120;}
// Application de la position au calque
calque.style.left=xo;
calque.style.top=yo;
// Insertion du contenu du postit
document.getElementById('contenu').innerHTML="<font color=#000000 size=2 face=verdana>"+texte+"</font>";
// Et enfin affichage du calque
calque.style.visibility="visible";
}
else { // Si le navigateur est IE
// Idem que ci-dessus pour le reste
if (xo==-1){xo=(document.body.clientWidth/2)-120;}
if (yo==-1){yo=(document.body.clientHeight/2)-120;}
document.all.postit.style.left=xo;
document.all.postit.style.top=yo;
document.all.contenu.innerHTML='<font color=#000000 size=2 face=verdana>'+texte+'</font>';
document.all.postit.style.visibility="visible";
}
}
function FermerPostit() {
if (!document.all) {
calque=document.getElementById('postit');
calque.innerHTML="";
calque.style.visibility="hidden";
}
else {
postit.innerHTML="";
document.all.postit.style.visibility="hidden";
}
}
//-->
</SCRIPT>
<META name="GENERATOR" content="MSHTML 10.00.9200.16686"></HEAD>
<BODY background="Visualisation du script n°33_fichiers/Forex.jpg" onload="AfficherPostit(-1,-1,RandomPostit())">
<P align="center">
<DIV id="postit" style="left: -240px; top: 0px; width: 240px; height: 240px; visibility: hidden; position: absolute;">
<TABLE width="240" height="240" background="Visualisation%20du%20script%20n°33_fichiers/33.postit.gif"
border="0" cellpading="0">
<TBODY>
<TR>
<TD align="center" valign="middle">
<DIV id="contenu"></DIV></TD></TR></TBODY></TABLE>
<DIV id="close" style="left: 100px; top: -230px; width: 21px; height: 21px; position: relative;"><A
href="javascript:FermerPostit()"><IMG src="Visualisation%20du%20script%20n°33_fichiers/33.punaise.gif"
border="0"></A> </DIV></DIV>
<P></P>
<P align="center"><A href="javascript:history.go(0);" class="titre_menu" style="font-size: 36px">Cliquez ici pour recharger
la page !</A></P></BODY></HTML>voici le fichier zip
Merci beaucoup de votre aide