Amatheux
Messages postés7Date d'inscriptiondimanche 10 janvier 2016StatutMembreDernière intervention10 janvier 2016
-
10 janv. 2016 à 16:16
NHenry
Messages postés15090Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 6 novembre 2023
-
11 janv. 2016 à 20:24
Bonjour tout le monde,
Je suis complètement novice en VBA, et à mes heures perdues j'essaie de m'amuser à apprendre comment faire des macros sous excel.
N'ayant pas de formation là dedans, j'arrive tant bien que mal à bidouiller, mais là je suis sur un problème dont je n'arrive pas résoudre:
" Modifier une partie d'une macro à partir d'une autre macro en utilisant un userform".
Je suis tombé dans un "vieux" forum donnant le code suivant:
Public Adresse_Serveur As String
__________________________________________
Sub Ma_Macro()
Dim Ttl As Long
Dim i As Integer
Ttl = 1
For i = 1 To 10
Ttl = Ttl * i
Next
Workbooks.Open Filename:="essai" & gmao & ".slk"
End Sub
___________________________________________
Sub usf()
UserForm1.Show
End Sub
En fait j'aimerai faire quelque chose d'équivalent :
1) Une première macro qui ouvre une page internet et qui la recopie sur une page excel comme celle-ci:
Sub import()
' import Macro
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.turfomania.fr/fiches/jockeys/gelormini-g.html?idjockey=7721", _
Destination:=Range("$A$1"))
.Name = "gelormini-g.html?idjockey=7721_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
2) Puis une deuxième macro qui, avec un userform, me permettrait d'exécuter la première macro mais avec la nouvelle adresse internet que j'aurai rentrée dans le userform.
Je ne sais pas si vous avez un peu de temps pour vous plonger dans ce problème?
En tout cas ça m'aiderai bien...!
J'ai essayé de faire ceci comme modifications sur les macros:
Sub Appel()
'
' Appel Macro
Dim adresse As String
import (adresse)
End Sub
__________________________
Sub import(adresse As String)
'
' import Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;adresse", _
Destination:=Range("$A$1"))
.Name = "gelormini-g.html?idjockey=7721_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Mais ça beugue....!
Puis en essyant de rajouter dans la première macro la ligne de commande: UserForm1.Show avant de faire appel à la deuxième macro, ça coince aussitôt....!!!!
Help me, please...!
EDIT : Ajout des balises de code (la coloration syntaxique). Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages.
NHenry
Messages postés15090Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 6 novembre 2023158 10 janv. 2016 à 17:48
adresse est une variable, il faut donc concaténer cette variable avec le teste précédent :
"URL;" & adresse
Amatheux
Messages postés7Date d'inscriptiondimanche 10 janvier 2016StatutMembreDernière intervention10 janvier 2016 10 janv. 2016 à 17:53
ça coince toujours !
Il me met en jaune la dernière ligne d'instructions ".Refresh BackgroundQuery:=False"
de la deuxième macro !
10 janv. 2016 à 16:42
Au niveau rédactionnel ça devrait donner quoi exactement ?
J'ai bien essayé, mais j'ai encore pas mal de choses à apprendre, je pense...!
10 janv. 2016 à 16:49
Sinon, une recherche avec : VBA Sub parametres
me donne :
https://msdn.microsoft.com/en-us/library/aa263527%28v=vs.60%29.aspx
Modifié par NHenry le 10/01/2016 à 17:47
Mais ça beugue....!
Puis en essyant de rajouter dans la première macro la ligne de commande: UserForm1.Show avant de faire appel à la deuxième macro, ça coince aussitôt....!!!!
Help me, please...!
Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages.
10 janv. 2016 à 17:48
"URL;" & adresse
10 janv. 2016 à 17:53
Il me met en jaune la dernière ligne d'instructions
".Refresh BackgroundQuery:=False"
de la deuxième macro !