Requete sur le web

Le
René Delcourt
Bonjour,
J'ai une requête web qui fonctionne très bienaprès avoir fourni le userid
et mot de passe et coché le cadre qui m'intéresse.
Je voudrais automatiser ces étapes préalables par un script VBA qui
contiendrait l'url, le userid, le mot de passe et le cadre à cocher.
J'ai essayé avec sendkeys mais avec peu de succès

Merci de votre aide.
--
René Delcourt
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4551331
As-tu essayé quelque chose dans le genre :

.WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Exemple complet de Stephen Bullen
'--------------------------------
Sub Test()

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.lesite.com/getdata.asp", _
Destination:=Range("A1"))
.PostText = "UserID3&Password=xyz"

.Name = "USD"
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is opened
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With
End With
End Sub
'--------------------------------



"René Delcourt"
Bonjour,
J'ai une requête web qui fonctionne très bien...après avoir fourni le userid
et mot de passe et coché le cadre qui m'intéresse.
Je voudrais automatiser ces étapes préalables par un script VBA qui
contiendrait l'url, le userid, le mot de passe et le cadre à cocher.
J'ai essayé avec sendkeys mais avec peu de succès...

Merci de votre aide.
--
René Delcourt
René Delcourt
Le #4545881
Merci pour le script.
Cela ne fonctionne pas encore.
Le login reprend 3 zones que j'ai adaptées; j'ai repris le nom de ces zones
dans le javascript de la source de la page.
Cependant, je ne comprend pas le .Name? USD dans ton exemple.
Merci de m'éclairer.
--
René Delcourt



As-tu essayé quelque chose dans le genre :

..WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Exemple complet de Stephen Bullen
'--------------------------------
Sub Test()

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.lesite.com/getdata.asp", _
Destination:=Range("A1"))
.PostText = "UserID3&Password=xyz"

.Name = "USD"
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is opened
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With
End With
End Sub
'--------------------------------



"René Delcourt"
Bonjour,
J'ai une requête web qui fonctionne très bien...après avoir fourni le userid
et mot de passe et coché le cadre qui m'intéresse.
Je voudrais automatiser ces étapes préalables par un script VBA qui
contiendrait l'url, le userid, le mot de passe et le cadre à cocher.
J'ai essayé avec sendkeys mais avec peu de succès...

Merci de votre aide.
--
René Delcourt





MichDenis
Le #4545871
USD = Nom du QueryTable dans l'exemple.
Tu peux choisir celui qui te convient. Ceci, c'est
pour Excel et cela n'a rien à voir avec les noms
des objet du site internet.

Est-ce que tu as réussi à te connecter au site ?
.PostText existe sous Excel 2003, mais je ne sais pas
si cette propriété est présente sous les autres versions

| .WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Le chiffre 5 représente le tableau No 5 de la page Web. Évidemment il
faut adapter selon la page. Sur certains sites web, cette façon de faire
ne convient pas à cause du design du site web.

Sur ce site, http://jacxl.free.fr/cours_xl/cadres.html?ex tu trouveras des info. pour permettre à Excel d'interagir
avec un site web.





"René Delcourt"
Merci pour le script.
Cela ne fonctionne pas encore.
Le login reprend 3 zones que j'ai adaptées; j'ai repris le nom de ces zones
dans le javascript de la source de la page.
Cependant, je ne comprend pas le .Name? USD dans ton exemple.
Merci de m'éclairer.
--
René Delcourt



As-tu essayé quelque chose dans le genre :

..WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Exemple complet de Stephen Bullen
'--------------------------------
Sub Test()

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.lesite.com/getdata.asp", _
Destination:=Range("A1"))
.PostText = "UserID3&Password=xyz"

.Name = "USD"
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is opened
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With
End With
End Sub
'--------------------------------



"René Delcourt"
Bonjour,
J'ai une requête web qui fonctionne très bien...après avoir fourni le userid
et mot de passe et coché le cadre qui m'intéresse.
Je voudrais automatiser ces étapes préalables par un script VBA qui
contiendrait l'url, le userid, le mot de passe et le cadre à cocher.
J'ai essayé avec sendkeys mais avec peu de succès...

Merci de votre aide.
--
René Delcourt





René Delcourt
Le #4545151
Merci pour les précisions.
Je ne parviens cependant pas à automatiser le login de ce site
http://www.swisscom-acd.ch/swisscom_old/index.asp
Lorsque je le fais manuellement , je suis tranquille pour toute la journée...
Si tu vois unélément intéressant dans la source de cette page, fais m'en
part.
En attendant je te livre le code utilisé...avec les informations
confidentielles en xxxxx.
Merci de ton aide.
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.swisscom-acd.ch/swisscom_old/main.asp",
Destination:=Range( _
"A1"))
.PostText = "Account=xxxxx&Benutzername=xxxxxx&Kennwort=xxxxx"
.Name = "main_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "6"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:úlse
End With
--
René Delcourt



USD = Nom du QueryTable dans l'exemple.
Tu peux choisir celui qui te convient. Ceci, c'est
pour Excel et cela n'a rien à voir avec les noms
des objet du site internet.

Est-ce que tu as réussi à te connecter au site ?
.PostText existe sous Excel 2003, mais je ne sais pas
si cette propriété est présente sous les autres versions

| .WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Le chiffre 5 représente le tableau No 5 de la page Web. Évidemment il
faut adapter selon la page. Sur certains sites web, cette façon de faire
ne convient pas à cause du design du site web.

Sur ce site, http://jacxl.free.fr/cours_xl/cadres.html?ex > tu trouveras des info. pour permettre à Excel d'interagir
avec un site web.





"René Delcourt"
Merci pour le script.
Cela ne fonctionne pas encore.
Le login reprend 3 zones que j'ai adaptées; j'ai repris le nom de ces zones
dans le javascript de la source de la page.
Cependant, je ne comprend pas le .Name? USD dans ton exemple.
Merci de m'éclairer.
--
René Delcourt



As-tu essayé quelque chose dans le genre :

..WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Exemple complet de Stephen Bullen
'--------------------------------
Sub Test()

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.lesite.com/getdata.asp", _
Destination:=Range("A1"))
.PostText = "UserID3&Password=xyz"

.Name = "USD"
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is opened
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With
End With
End Sub
'--------------------------------



"René Delcourt"
Bonjour,
J'ai une requête web qui fonctionne très bien...après avoir fourni le userid
et mot de passe et coché le cadre qui m'intéresse.
Je voudrais automatiser ces étapes préalables par un script VBA qui
contiendrait l'url, le userid, le mot de passe et le cadre à cocher.
J'ai essayé avec sendkeys mais avec peu de succès...

Merci de votre aide.
--
René Delcourt










MichDenis
Le #4544361
Pour te connecter à un site web demandant un login et mot de passe,
il y a ceci sur le site de Frédéric Sigonneau :
http://frederic.sigonneau.free.fr/code/Excel/RequeteWeb.txt

Je n'ai jamais eu l'occasion de tester ce type de procédure !




"René Delcourt"
Merci pour les précisions.
Je ne parviens cependant pas à automatiser le login de ce site
http://www.swisscom-acd.ch/swisscom_old/index.asp
Lorsque je le fais manuellement , je suis tranquille pour toute la journée...
Si tu vois unélément intéressant dans la source de cette page, fais m'en
part.
En attendant je te livre le code utilisé...avec les informations
confidentielles en xxxxx.
Merci de ton aide.
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.swisscom-acd.ch/swisscom_old/main.asp",
Destination:=Range( _
"A1"))
.PostText = "Account=xxxxx&Benutzername=xxxxxx&Kennwort=xxxxx"
.Name = "main_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "6"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:úlse
End With
--
René Delcourt



USD = Nom du QueryTable dans l'exemple.
Tu peux choisir celui qui te convient. Ceci, c'est
pour Excel et cela n'a rien à voir avec les noms
des objet du site internet.

Est-ce que tu as réussi à te connecter au site ?
.PostText existe sous Excel 2003, mais je ne sais pas
si cette propriété est présente sous les autres versions

| .WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Le chiffre 5 représente le tableau No 5 de la page Web. Évidemment il
faut adapter selon la page. Sur certains sites web, cette façon de faire
ne convient pas à cause du design du site web.

Sur ce site, http://jacxl.free.fr/cours_xl/cadres.html?ex > tu trouveras des info. pour permettre à Excel d'interagir
avec un site web.





"René Delcourt"
Merci pour le script.
Cela ne fonctionne pas encore.
Le login reprend 3 zones que j'ai adaptées; j'ai repris le nom de ces zones
dans le javascript de la source de la page.
Cependant, je ne comprend pas le .Name? USD dans ton exemple.
Merci de m'éclairer.
--
René Delcourt



As-tu essayé quelque chose dans le genre :

..WebTables = "5" : modifie 5 pour qu'il corresponde à ton tableau

Exemple complet de Stephen Bullen
'--------------------------------
Sub Test()

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.lesite.com/getdata.asp", _
Destination:=Range("A1"))
.PostText = "UserID3&Password=xyz"

.Name = "USD"
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is opened
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With
End With
End Sub
'--------------------------------



"René Delcourt"
Bonjour,
J'ai une requête web qui fonctionne très bien...après avoir fourni le userid
et mot de passe et coché le cadre qui m'intéresse.
Je voudrais automatiser ces étapes préalables par un script VBA qui
contiendrait l'url, le userid, le mot de passe et le cadre à cocher.
J'ai essayé avec sendkeys mais avec peu de succès...

Merci de votre aide.
--
René Delcourt










Publicité
Poster une réponse
Anonyme