Automatiser une tache
Je voudrai telecharger le meme fichier toute les 30 seconde (par exemple), l'enregistrer dans le meme endroit avec le meme nom ( pour qu'il ecrase la version précedente )
comment le programmer ?? pouvez m'aider svp
40 réponses
La problématique porte sur l’automatisation du téléchargement récurrent d’un même fichier toutes les 30 secondes, avec écrasement du fichier existant dans le même répertoire et sous le même nom. Des propositions basées sur VBA Excel suggèrent d’utiliser Application.OnTime pour programmer des exécutions répétées et de lancer le téléchargement, afin de maintenir le fichier à jour automatiquement. La solution évoquée inclut aussi la gestion du chemin et du nom du fichier, et peut reposer sur des méthodes complémentaires comme l’écriture dans un fichier texte ou le rafraîchissement de données. En pratique, la solution peut s’accompagner d’un fichier de configuration précisant l’URL du fichier, l’intervalle et les paramètres d’accès, afin de limiter les risques de surcharge réseau et d’échec de téléchargement.
-
Bonjour,
Si vous etes toujours avec du VBA excel, regardez dans l'aide excel pour application.ontime et http://www.mdf-xlpages.com/modules/publisher/item.php?itemid=14
Bonne suite -
Bonjour,
J'ai une interface web dont ci-joint son image:
https://www.cjoint.com/c/CEplE6vpjR3
les valeurs numeriques se reinitialise chaque seconde, y'a t'il moyen de les importer sur mon tableau Excel?-
-
hakoko
25 avril 2013 à 14:17
merci ça marche
Ajouter un commentaire - Lien (#31)
Bonjour,
toujours, dans le meme sujet j'aimerai importé des fichier d'extension ".csv" quelle est le code que je doit ajouté a ma macro.
merci bien
.......
si tu cherche ds mes discution tu trouve pleins de merci
hakoko 67Messages postés x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x lundi 11 mars 2013Date d'inscription x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 15 mai 2013Dernière intervention x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 18 mars 2013 à 17:23
merci infiniment!!
ça a marché pour un premiere essay. je trouve cette solution tres ingenieuse, merci bcp -
Contributeurok, on va dire très souvent alors...
Mais c'est toi que ça regarde.
Personnellement je me désintéresse lorsque c'est comme ça. Nous sommes très nombreux ainsi et c'est normal.
Lorsque tu prends ta baguette de pain te ne dis pas merci ? En plus tu paies, et ici c'est gratuit.
A toi de voir si désires avoir moins de personnes qui s'intéressent à ton problème.
eric -
-
-
Re,
ligne a ajouter:
'Efface le contenu de toutes les cellules de l'onglet actif
If UCase(Dir(Chemin_Complet)) = UCase(Fichier_Ext) Then
avant:
Cells.ClearContents
et
End If
avant:
'positionne sur cellule A1
Range("A1").Select -
quand je debug il m'indique la fleche dans cette ligne:
.Refresh BackgroundQuery:=False
End With
je pense qu'il faut insérer une boucle if "le fichier n'existe pas" then "ne rien importer" -
Re,
a quel endroit du code ?? il suffit peut-etre de synchronser. -
quand le fichier a03052013.txt par exemple n'est pas crée ''il me dit qu'il na pas trouvé le fichier . verifier l'orthographe ou essayer un autre chemin d'accès
-
Bonjour,
Votre macro ne rafraichit pas en permanance vos donnees!!!!!!! -
Bonjour,
ma macro rencontre quelque problemes, parmis ces problemes, quant la macro ne trouve pas de fichier du jour J, je souhaiterai qu'elle n'importe rien, c'est à dire que le fichier Excel reste vide jusqu'a ce que le fichier texte ce crée. d'autre part concernant ce problème :
"f894009 :Vous renommez ou vous supprimez le fichier une fois le traitement fait."
disant que je telecharge un fichier via le web chaque 10 min , la 9 eme minute je supprime le fichier existant pour laisser place au nouveau fichier. je voudrai neaumoins que pendant la minute ou il n'ya pas de fichier , ma macro me garde les anciennes données. -
Bonjour,
Vous renommez ou vous supprimez le fichier un fois le traitement fait. -
non
-
Bonjour,
si vous "deletez" ou renommez le fichier, est-ce-qu'il y a toujours une incrementation de la version?? -
Bonjour,
j'ai un fichier qui se telecharge chaque 10 min, la version la plus recente n'ecrase pas la premiere dans le fichier telechargement, mais elle prend le meme nom avec un indice, genre download puis download(1) puis download(2) ecs, comment je pourai adapté mon proramme à ce probleme? de tel sorte kil importe les données du dernier fichier telechargé?
merci pour votre aide -
SVP, urgent!!
j'a une partie d'un code en VB que je voudrai addapté à mon probleme, j'ai une interface web qui affiche les données d'un onduleurs ci-joint la page:
https://www.cjoint.com/?CDAlC5Afr1z
ces dates se remettent a jour chaque 24h automatiquement, il suffit juste d'actualisé la page.
je voudrai actualisé cette page chaque 24h et appuillé sur le boutton "telecharger le fichier" chaque 10 min.
ci-joint le code source de la page:
https://www.cjoint.com/?CDAlIbJLSAD
et voici la page :
https://www.cjoint.com/?CDAlLCdtqVD
et voici mon code sous VB:
URL ="http://193.50.118.164/cgi-bin/download.cgi"
Set ie = CreateObject("InternetExplorer.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
ie.Navigate(URL)
ie.Visible=false
DO WHILE ie.busy
wscript.sleep 100
LOOP
HTML = ie.document.documentElement.innerText
ie.Quit
Set ie = Nothing
MsgBox HTML,64,"Récupération des Données !
merci de bien vouloir me donner un coup de mains
ya aussi ce code qui pourais aidé peut etre:
Code :Sélectionner tout - Visualiser dans une fenêtre à part12345678910111213141516171819202122232425262728293031323334353637 Sub piloterPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "http://mail1.voila.fr/webmail/login.html?REDIRECTION_INIT=TRUE"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop 'attend la fin du chargement
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")
'exemple de boucle pour lister les objets type "select"(listes de choix) dans la page
'Dim Hsel As IHTMLElementCollection
'Set Hsel = maPageHtml.getElementsByTagName("select")
'For i = 0 To Hsel.Length - 1
'MsgBox Hsel(i).getAttribute("name") & " / " & Hsel(i).getAttribute("value")
'Next i
'(boucle pour lister les objets type "input" de la page)
'For i = 0 To Helem.Length - 1
'MsgBox Helem(i).getAttribute("name") & " / " & Helem(i).getAttribute("value")
'une autre possibilité pour déclencher le clic ( non utilisable dans cet exemple)
'If Helem(i).getAttribute("value") = "texte du bouton" Then Helem(i).Click
'Next i
Helem(7).innerText = "piloter page internet VB" 'champ de saisie mots clés
Helem(8).Click 'simulation clic
End Sub -
merci ça marche
-
Bonjour,
N'ayant pas le fichier, code pour un csv de chez moi, adapter le a votre fichier
'importation 'adapter chemin et nom de fichier With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\_cles\Trace.CSV", _ Destination:=Range("$A$1")) 'adapter nom de fichier .Name = "Trace" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = True .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False 'mettre autant de 1 que de colonnes dans le ficher csv .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With
Bonne suite -
Bonjour,
toujours, dans le meme sujet j'aimerai importé des fichier d'extension ".csv" quelle est le code que je doit ajouté a ma macro.
merci bien -
celle ci:
Sub Import_Fichier()
Dim Fichier, Fichier_Ext, Repertoire, Chemin, Chemin_Complet
Dim Ma_Feuille As Worksheet
Dim Type_Fichier As String
'fige ecran
Application.ScreenUpdating = False
For Each Ma_Feuille In Worksheets
Ma_Feuille.Select
Fichier = Range("A1").Value
Type_Fichier = Range("B1").Value
Chemin = Range("C1").Value
'Efface le contenu de toutes les cellules de l'onglet actif
Cells.ClearContents
Range("A1").Value = Fichier
Range("B1").Value = Type_Fichier
Range("C1").Value = Chemin
If Fichier = "" Then
' il faut calculer en fonction de la date
Fichier = "a" & Format(Date, "yyyymmdd")
End If
Fichier_Ext = Fichier & Type_Fichier
Chemin_Complet = Chemin & Fichier_Ext
If Type_Fichier = ".TXT" Then
'Importation du fichier texte a afficher, premiere cellule a remplir: A2
'la base du code est obtenu avec l'enregistreur de macro et travaile en fonction
'du besoin: noms de ficher et repertoire changeant en fonction de la date
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Chemin_Complet, Destination:= _
Range("$A$2"))
.Name = Fichier
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ElseIf Type_Fichier = ".XLSX" Then
Application.DisplayAlerts = False
Workbooks.Open Filename:=Chemin_Complet
Range("A2:AM250000").Copy
ThisWorkbook.Activate
Range("A2").Select
ActiveSheet.Paste
Workbooks(Fichier_Ext).Close
Application.DisplayAlerts = True
End If
'Selection Donnees importees
Range("A2:AM8643").Select
'RAZ tri
ActiveSheet.Sort.SortFields.Clear
'Selection tri cle A2 descendant
ActiveSheet.Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortTextAsNumbers
'Tri Donnees
With ActiveSheet.Sort
.SetRange Range("A3:AM250000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next Ma_Feuille
'positionne sur cellule A1
Range("A1").Select
'Parametrage interval temps import: ici 3 secondes
Next_Scan = Now() + TimeValue("00:00:03")
Application.OnTime Next_Scan, "Import_Fichier"
Application.ScreenUpdating = True
End Sub
puis celle la:
Sub Import_Fichier()
Dim Fichier, Fichier_Ext, Repertoire, Chemin, Chemin_Complet
Dim Ma_Feuille As Worksheet
Dim Type_Fichier As String
'fige ecran
Application.ScreenUpdating = False
For Each Ma_Feuille In Worksheets
Ma_Feuille.Select
Fichier = Range("A1").Value
Type_Fichier = Range("B1").Value
Chemin = Range("C1").Value
'Efface le contenu de toutes les cellules de l'onglet actif
Cells.ClearContents
Range("A1").Value = Fichier
Range("B1").Value = Type_Fichier
Range("C1").Value = Chemin
If Fichier = "" Then
' il faut calculer en fonction de la date
Fichier = "a" & Format(Date, "yyyymmdd")
End If
Fichier_Ext = Fichier & Type_Fichier
Chemin_Complet = Chemin & Fichier_Ext
If Type_Fichier = ".TXT" Then
'Importation du fichier texte a afficher, premiere cellule a remplir: A2
'la base du code est obtenu avec l'enregistreur de macro et travaile en fonction
'du besoin: noms de ficher et repertoire changeant en fonction de la date
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Chemin_Complet, Destination:=Range("$A$1"))
.Name = Fichier
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False 'pas d'ajustement des colonnes
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMSDOS 'format txt msdos
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSpaceDelimiter = True 'delimiteur espace
.TextFileColumnDataTypes = Array(xlTextFormat) 'definition format colonnes
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ElseIf Type_Fichier = ".XLSX" Then
Application.DisplayAlerts = False
Workbooks.Open Filename:=Chemin_Complet
Range("A2:AM250000").Copy
ThisWorkbook.Activate
Range("A2").Select
ActiveSheet.Paste
Workbooks(Fichier_Ext).Close
Application.DisplayAlerts = True
End If
'Selection Donnees importees
Range("A2:AM8643").Select
'RAZ tri
ActiveSheet.Sort.SortFields.Clear
'Selection tri cle A2 descendant
ActiveSheet.Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortTextAsNumbers
'Tri Donnees
With ActiveSheet.Sort
.SetRange Range("A3:AM250000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next Ma_Feuille
'positionne sur cellule A1
Range("A1").Select
'Parametrage interval temps import: ici 3 secondes
Next_Scan = Now() + TimeValue("00:00:03")
Application.OnTime Next_Scan, "Import_Fichier"
Application.ScreenUpdating = True
End Sub -
Re,
jexecute la macro sans apporter les modif de quelle macro parlez-vous -
Biensur , je parametre, jexecute la macro sans apporter les modif pour voir si je me suis pas trompé de chemin, il importe, des que j'apporte les modif il n'affiche plus rien,
-
Re,
blague a part, vous parametrez bien le bon chemin pour le bon fichier???????
- 1
- 2