Bonjour à tous,
1. Je souhaite lancer une macro depuis une feuille excel et que le résultat de la macro s'affiche dans une autre feuille.
2. Est-il possible de lancer 2 macros à la suite à partir d'un même bouton
Merci pour votre aide .
Bonjour à tous,
1. Je souhaite lancer une macro depuis une feuille excel et que le résultat de la macro s'affiche dans une autre feuille.
2. Est-il possible de lancer 2 macros à la suite à partir d'un même bouton
Merci pour votre aide .
bonjour,
tu dois programmer tout ça en VBA.
je te conseille de potasser la doc microsoft :
http://msdn2.microsoft.com/en-us/lib...ffice.11).aspx
(dans mon immense bonté je t'ai positionné à la page qui répond à ta question 1 )
J'ai la macro suivante qui récupère des données du web dans Excel:
J'ai dupliqué cette macro par ce que j'ai 2 adresses web
Je souhaite créer un bouton et coller les 2 macros dessus. Le bouton sera placé dans une autre feuille que celle ou j'attends le résultat. Et je lancerai la macro depuis cette feuille.
Merci d'avance.
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
36
37
38
39
40
41
42
43
44
45
46 Sub Importer_Average_tableauPageWeb() 'Activez les références 'Microsoft HTML Objects Library 'et 'Microsoft Internet Controls Dim IE As InternetExplorer Dim maPageHtml As HTMLDocument Dim Htable As IHTMLElementCollection Dim maTable As IHTMLTable Dim j As Integer, i As Integer Set IE = CreateObject("InternetExplorer.Application") IE.Visible = False IE.navigate "http://www.banque-france.fr/fr/poli_mone/taux/html/4.htm" Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop Set maPageHtml = IE.document 'objet type table Set Htable = maPageHtml.getElementsByTagName("table") '12ème tableau dans la page Web Set maTable = Htable(11) Application.ScreenUpdating = False 'boucle sur toutes les lignes du tableau For i = 1 To maTable.Rows.Length 'boucle sur les cellules dans chaque ligne For j = 1 To maTable.Rows(i - 1).Cells.Length Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText Next j Next i Columns("A:G").AutoFit Application.ScreenUpdating = True MsgBox "Opération terminée." IE.Quit Set IE = Nothing End Sub
Plutôt que de dupliquer la macro (imagine, si tu dois l'adapter, ce sera galère pour corriger des deux côtés), Passe un paramètre à ta macro, adapte le code à l'intérieur de la macro pour qu'il utilise la variable passée ne paramètre
et lance deux fois la macro en adaptant le lien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sub Importer_Average_tableauPageWeb(Lien1 as string) ...
Ok?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sub Importer() Importer_Average_tableauPageWeb "http://www.lien1.com" Importer_Average_tableauPageWeb "http://www.lien2.com" end sub
mais je souhaite avoir le résultat de chaque macro sur une feuille différente et lancer les macros d'une autre feuille.
Merci beaucoup pour ton aide
J'ai exposé le principe... A toi d'adapter.
Rien n'empêche, à l'intérieur de la macro, de choisir les feuilles en fonction du lien passé en paramètre, voire de passer un deuxième paramètre avec le nom de la feuille à utiliser...
Vois-tu comment faire?
Merci pour le principe mais je suis pas spécialiste du code j'apprends.
Si tu veux bien m'aider ci-joint la macro à ajuster
Les deux adresses sont les suivantes :
http://www.banque-france.fr/fr/poli_...aux/html/3.htm
http://www.banque-france.fr/fr/poli_...aux/html/4.htm
Merci d'avance
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
36
37
38
39
40
41
42
43
44
45
46
47 Sub Importer_Average_tableauPageWeb() 'Activez les références 'Microsoft HTML Objects Library 'et 'Microsoft Internet Controls Dim IE As InternetExplorer Dim maPageHtml As HTMLDocument Dim Htable As IHTMLElementCollection Dim maTable As IHTMLTable Dim j As Integer, i As Integer Set IE = CreateObject("InternetExplorer.Application") IE.Visible = False IE.navigate "http://www.banque-france.fr/fr/poli_mone/taux/html/4.htm" Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop Set maPageHtml = IE.document 'objet type table Set Htable = maPageHtml.getElementsByTagName("table") '12ème tableau dans la page Web Set maTable = Htable(11) Application.ScreenUpdating = False 'boucle sur toutes les lignes du tableau For i = 1 To maTable.Rows.Length 'boucle sur les cellules dans chaque ligne For j = 1 To maTable.Rows(i - 1).Cells.Length Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText Next j Next i Columns("A:G").AutoFit Application.ScreenUpdating = True MsgBox "Opération terminée." IE.Quit Set IE = Nothing End Sub
Essaie d'expliquer, en français (sans code vba) ce que tu souhaites réaliser. Dans ton précédent message, tu ne dit pas ce qu'il en est des différentes feuilles que tu souhaites utiliser.
Si tu souhaites une aide pertinente, sois pertinent dans tes explications...
Et pense aux balises CODE. Lorsque tu as copié-collé ton texte dans le message, sélectionne-le puis clique sur le bouton # de la barre d'outils. Cela encadrera ton code et le rendra plus lisible
Ok désolé,
Je souhaite récupéreé la table des taux moyens et taux de clôture de la banque de france (données du web).
La macro ci-dessus me permet de la faire.
Ensuiste, une fois récupérer ces données je fais des calculs excel. Une feuille excel correspond à une table taux. J'ai donc 2 feuilles excel une pour les calculs en taux moyens, une pour les calculs en taux de clôture. Tous les calculs sont automatiques.
Je rapatrie mes résultats sur une 3ème feuille excel (lien excel).
Ce que je souhaite c'est pouvoir lancer les macros depuis cette feuille pour éviter de naviguer dans les autres.
Pour celà je dois être capable dire en VB ou je souhaite récupérer les données taux.
Enfin, je souhaite affecter la macro à un bouton donc indéxé l'url.
J'espère que celà te permettra de m'aider.
Merci encore
J'ai trouvé merci à tous.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager