Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Macro pour copie page internet

360 views
Skip to first unread message

Oblers

unread,
Jan 10, 2001, 2:39:04 PM1/10/01
to
Bonjour,

J'ai fait une petite macro VBA sous Excel 2000 pour piloter Internet
Explorer (v5) afin de récupérer (copier/coller) des pages... (il s'agit de
pages web avec 2 frames contenant un tableau que je souhaiterais copier)

Mais j'ai le problème suivant, lors de la copie de la page web,
celui-ci en fait ne copie rien...

Pour copier sous IntExplorer, j'utilise :
application.sendkeys "%Es",true 'Sélectionner toute la
page
application.sendkeys "%Ep",true 'copie de la sélection
Ensuite, au retour sous Excel, j'utilise
Activesheet.paste
(ou application.sendkeys "%Eo",true mais ça marche pas
mieux)
... et rien ne se passe. Aucun contenu n'est copié. (la commande
coller n'est même pas active !)

Existe t'il alors une façon de copier mes pages internet sous excel avec des
commandes spéciales ?

Merci
TA

Exusez moi, je ne sais pas si ma question relève plus du forum Excel ou
Internet Explorer... j'ai envoyé au deux !


Clément Marcotte

unread,
Jan 10, 2001, 7:48:37 PM1/10/01
to
Question subsidiaire: Est-ce qu'Internet Explorer accepte les macros? AMHA,
si IE n'accepte pas les macros, c'est une voie sans issue.
--
Clément Marcotte
"Être vraiment patient, c'est être patient quand vous ne pensiez plus qu'il
était possiblement concevable de l'être."
- Léonard de Vinci


"Oblers" <thierry...@wanadoo.fr> a écrit dans le message news:
93ivfv$g8s$1...@wanadoo.fr...

Oblers

unread,
Jan 10, 2001, 4:22:11 PM1/10/01
to

Clément Marcotte <clement....@sympatico.ca> a écrit dans le message :

| Question subsidiaire: Est-ce qu'Internet Explorer accepte les macros?
AMHA,
| si IE n'accepte pas les macros, c'est une voie sans issue.

Je ne pense pas...
Mais étant donné que j'arrive quand même à * piloter * IE à l'aide des
macros Excel(sendkeys, tab, ...), pourquoi alors pose t'il un problème pour
la copie d'une page Web ?

Ca ne viendrait pas du fait que la page web peut être protégée en copie
(CTRL+C) ?

TA


C. Serol

unread,
Jan 11, 2001, 12:56:55 PM1/11/01
to
Salut,
"Oblers" <thierry...@wanadoo.fr> a écrit dans le message news:
93ivfv$g8s$1...@wanadoo.fr...

> Bonjour,
>
> J'ai fait une petite macro VBA sous Excel 2000 pour piloter Internet
> Explorer (v5) afin de récupérer (copier/coller) des pages... (il s'agit de
> pages web avec 2 frames contenant un tableau que je souhaiterais copier)
>
> Mais j'ai le problème suivant, lors de la copie de la page web,
> celui-ci en fait ne copie rien...

je pense que tu essaies de copier le fichier de frames...
et si tu affiches une page de frames dans ie et que tu n'as encore cliqué
nulle part, edition selectionner tout ne sélectionne rien du tout (rien en
surbrillance) et si on fait edition copier, on ne copie rien , donc on n'a
rien à coller !
as-tu essayé avec une page sans frames ?
sinon il faudrait que tu trouves le moyen de donner le focus à un des cadres
(equivalent à cliquer dedans)

> Pour copier sous IntExplorer, j'utilise :
> application.sendkeys "%Es",true 'Sélectionner toute la
> page
> application.sendkeys "%Ep",true 'copie de la sélection
> Ensuite, au retour sous Excel, j'utilise
> Activesheet.paste
> (ou application.sendkeys "%Eo",true mais ça marche pas
> mieux)
> ... et rien ne se passe. Aucun contenu n'est copié. (la
commande
> coller n'est même pas active !)
>
> Existe t'il alors une façon de copier mes pages internet sous excel avec
des
> commandes spéciales ?
>

à la main, ça marche (mais le résultat graphique n'est pas terrible), à
condition de sélectionner frame par frame
espérant t'avoir été utile
(si jamais tu finalises ta macro, ça m'intéresse , comment fais-tu pour
indiquer quelle page tu veux copier ?)
cordialement
Ch. Sérol

Oblers

unread,
Jan 11, 2001, 2:56:32 PM1/11/01
to
| je pense que tu essaies de copier le fichier de frames...
| et si tu affiches une page de frames dans ie et que tu n'as encore cliqué
| nulle part, edition selectionner tout ne sélectionne rien du tout (rien en
| surbrillance) et si on fait edition copier, on ne copie rien , donc on n'a
| rien à coller !
| as-tu essayé avec une page sans frames ?
| sinon il faudrait que tu trouves le moyen de donner le focus à un des
cadres
| (equivalent à cliquer dedans)

La procédure "Edition"->"Sélectionner tout" fonctionne bien, car j'ai le
tableau de la page Web en surbrillance (du moins le contenu). Pour aller
dans la bonne frame (contenant le tableau), je passe par des sendkeys
"{TAB}",true qui m'y amène. C'est alors que je veut faire la copie...

Mais je pense que ça viendrait d'un pb d'IE5... j'ai essayé ma macro
Excel en utilisant IE4 et la ça marche ! Je ne comprend pas très bien les
raisons...
Aussi, lorsque je copie ma page à la souris (je rentre dans la bonne
frame itou itou) et que je fait un collé sous excel, celui-ci me reconnecte
à internet. Apparamment il télécharge la page pour la copier (il me copie
même les listes de choix déroulantes, les images etc).

Merci pour vos conseils
TA

C. Serol

unread,
Jan 12, 2001, 7:12:18 AM1/12/01
to
bonjour,

"Oblers" <thierry...@wanadoo.fr> a écrit dans le message news:

93mqcj$psa$1...@wanadoo.fr...


> Aussi, lorsque je copie ma page à la souris (je rentre dans la
bonne
> frame itou itou) et que je fait un collé sous excel, celui-ci me
reconnecte
> à internet. Apparamment il télécharge la page pour la copier (il me copie
> même les listes de choix déroulantes, les images etc).
>

après quelques tests, si la partie sélectionnée comprend des images, (là
c'est sûr) ou (peut-être) des liens , il veut se connecter. (je l'ai bloqué
avec za donc je le vois).
si on n'a que du texte il ne cherche pas à se connecter.
A la main, une manip tordue pour se débarrasser des indésirables : faire le
copier-coller dans wordpad, resélectionner tout, faire le copier-coller dans
excel. Il garde la mise en page du tablau.
Mais je ne sais vraiment pas si on peut manipuler wordpad avec des macros !
cordialement
C. Sérol
.

Match

unread,
Jan 12, 2001, 7:21:20 PM1/12/01
to
Bonjour,
il faudrait que tu passe par un collage spécial, valeur,
ça devrait marcher (du moins c'est ce que je te souhaite).

Match


"Oblers" <thierry...@wanadoo.fr> a écrit dans le message news:

93mqcj$psa$1...@wanadoo.fr...

Oblers

unread,
Jan 13, 2001, 4:12:57 AM1/13/01
to
Salut,

| après quelques tests, si la partie sélectionnée comprend des images, (là
| c'est sûr) ou (peut-être) des liens , il veut se connecter. (je l'ai
bloqué
| avec za donc je le vois).

Même problème, Excel se bloque pendant un bon bout de temps en essayant de
télécharger la page web au lieu de la copier... (avec IE4, ça ne le fait
pas)

| si on n'a que du texte il ne cherche pas à se connecter.
| A la main, une manip tordue pour se débarrasser des indésirables : faire
le
| copier-coller dans wordpad, resélectionner tout, faire le copier-coller
dans
| excel. Il garde la mise en page du tablau.
| Mais je ne sais vraiment pas si on peut manipuler wordpad avec des macros
!

En effet... ! merci pour la technique. Ca m'évitera en effet d'avoir les
images.
Mais le problème reste le même, je n'arrive à rien copier dans wordpad car
la fonction COLLER est indisponible.
Sous internet, j'ai bien mon tableau sur la frame 2 qui est en inversion
(bleu), je fais COPIER et dans les autres appli, je ne peux pas faire
COLLER.

Remarque, en sélectionnant à la souris le tableau (c'est à dire, sans
passer par le SELECTIONNER TOUT), là ça marche (de temps en temps). Comme
quoi, la copie de la page doit être possible.

Pour Wordpad, j'utilise les macro Excel qui vont piloter Wordpad.
shell( "c:\toto\wordpad.exe",1) pour l'exécuter
application.sendkeys "%ES",true pour sélectionner tout
application.sendkeys "%Ep",true pour copier
application.sendkeys "%El",true pour coller
application.sendkeys "%{F4}N",true pour fermer
... etc

TA

Mon petit programme pour IE5... (attention, avec la version de IE... ce ne
sont pas les même manips à faire)


Sub auto_open()

Sheets("MENU").Select 'Permier onglet de démarrage pour la présentation
et montrer l'avancement des copies
Range("A1").Select

End Sub

Sub Programmes()

Dim logiciel
Dim Excel
Dim chaine As Integer
Dim jour As Integer
Dim feuille As Variant

Excel = ActiveWorkbook.Name
feuille = Array(0, 9, 24, 13, 3, 22, 23, 10, 12, 18, 7, 15, 14, 17, 26,
17, 16, 20, 27, 8, 25, 6, 4, 11, 5, 21, 19, 28) 'Numéro des feuilles
jour = Sheets("MENU").Range("B3").Value '1=lundi, 2=mardi etc... prise
par =JOURSEM(MAINTENANT();2)

'Effacement de l'ancien programme
For chaine = 2 To 28 'de l'onglet 2 à 28, j'efface le contenu
(bordures de tableaux, textes...)
Sheets(chaine).Select
Range("B3:D100").Select
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Interior.ColorIndex = xlNone
Selection.UnMerge
Selection.Font.ColorIndex = 0
Next chaine

Sheets("MENU").Select
Range("H11:H37").ClearContents

'Extraction des programmes sous Internet
logiciel = Shell("c:\Program Files\Accessoires\WORDPAD.EXE", 1)
'exécution de Wordpad et d'internet
logiciel = Shell("c:\Program Files\Internet Explorer\IEXPLORE.EXE", 1)
Pause (30) 'attente que les logiciels soient démarrés
Application.SendKeys "{TAB}www.csat-antilles.com~", True 'change
l'adresse URL
Pause (30) 'attente du chargement (grosso modo)
Application.SendKeys "{TAB 16}~", True 'choisi les programmes TV ! !
Pause (10) 'attente du chargement
Application.SendKeys "{TAB 15}", True 'se positionne sur le choix de la
chaine

For chaine = 1 To 1 '27
Application.SendKeys "{DOWN}", True 'sélection de la chaine
Application.SendKeys "{TAB}", True (se positionne sur le jour de la
semaine

If chaine = 1 Then
Application.SendKeys "{DOWN " & jour & "}", True 'sélection du
jour de la semaine
End If

Application.SendKeys "{TAB}~", True 'validation

AppActivate "Microsoft Excel"
auto_open
Range("H" & feuille(chaine) + 9).Value = "En cours..."
Range("H" & feuille(chaine) + 9).Select
Selection.Font.ColorIndex = 50
Pause (20)

AppActivate "CANAL SATELLITE ANTILLES-GUYANE"
Application.SendKeys "%ES", True 'selection de la grille des
programmes (tableau)
Pause (1)
Application.SendKeys "%Ep", True 'copie

AppActivate "Document" 'sous wordpad, collé et copie pour supprimer
les images
Application.SendKeys "%ES", True
Application.SendKeys "%EE", True
Application.SendKeys "%El", True
Application.SendKeys "%ES", True
Application.SendKeys "%Ep", True

AppActivate "Microsoft Excel" 'sous excel, copie du programme tv sur
la bonne feuille
Pause (2)
Sheets(feuille(chaine)).Select
If chaine = 15 Then
Range("B50").Select
Else
Range("B3").Select
End If
Application.SendKeys "%Eo", True
Range("A3").Select
auto_open
Range("H" & feuille(chaine) + 9).Value = "Terminé"
Range("H" & feuille(chaine) + 9).Select
Selection.Font.ColorIndex = 46

AppActivate "CANAL SATELLITE ANTILLES-GUYANE"
Application.SendKeys "%{LEFT}", True 'chaine suivante
Pause (3)
Application.SendKeys "{TAB 16}", True
Next chaine

'AppActivate "Document"
'Application.SendKeys "%{F4}N", True
'AppActivate "CANAL SATELLITE ANTILLES-GUYANE"
'Application.SendKeys "%{F4}", True

auto_open

End Sub

Sub Atteindre() 'pour une liste de choix du formulaire (permet d'atteindre
la chaine voulue)

Dim chaine As Integer

chaine = Sheets("MENU").Range("B11").Value
Sheets(chaine + 1).Select
Range("A1").Select

End Sub

Sub Pause(T)

Application.Wait Now + TimeValue("00:00:" & T)

End Sub


C. Serol

unread,
Jan 15, 2001, 11:53:18 AM1/15/01
to
Salut,

--
C. Sérol


"Oblers" <thierry...@wanadoo.fr> a écrit dans le message news:

93pnvo$bef$1...@wanadoo.fr...
> .......


> En effet... ! merci pour la technique. Ca m'évitera en effet d'avoir les
> images.
> Mais le problème reste le même, je n'arrive à rien copier dans wordpad car
> la fonction COLLER est indisponible.
> Sous internet, j'ai bien mon tableau sur la frame 2 qui est en inversion
> (bleu), je fais COPIER et dans les autres appli, je ne peux pas faire
> COLLER.
>
> Remarque, en sélectionnant à la souris le tableau (c'est à dire, sans
> passer par le SELECTIONNER TOUT), là ça marche (de temps en temps). Comme
> quoi, la copie de la page doit être possible.
>

j'ai fait d'autres tests de copier-coller de ie5 sur wordpad : de manière
générale, s'il y a des liens sur la sélection il les copie en les mettant
entre < > , s'il y a des images il les ignore...

après quelques tests sur les programmes télé en question, le sélectionner
tout suivi de copier permet bien de coller ensuite toute la page sur wordpad
et ça
marche à tous les coups (à la main)
as-tu essayé de réparer ton ie 5 ?
une autre idée toute bête : as-tu vérifié dans l'onglet sécurité (menu
outils:options internet) de ie5 que tu autorisais les scripts, les active-X
et le collage pour la zone internet (niveau par défaut : moyen) ?

quant à ta macro, j'ai essayé de la tester "bêtement" avec un classeur excel
neuf, elle bloque à l'auto_open, et si on lance "programmes" elle plante
après ouverture des deux softs, elle n'arrive pas à écrire l'url ni à
changer de page...
je n'ai pas très bien compris ton tableau d'entiers, ni combien d'onglets le
classeur doit avoir : menu + 28 autres ?
en plus cette macro désactive régulièrement mon verrou numérique...
en tout cas merci pour le code, ça fera progresser mon visual basic qui en a
bien besoin (moi, à part le vbscript ...)
Cordialement
C. Sérol


0 new messages