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 f894009,
alors j'en pense avoir terminé avec Excel pour importer les données du moins jespers, mon nouveau souci porte sur des données que je doit importer d'un autre ordinateur.
cette ordinateur contient un logiciel qui procur une interface graphique, sur la quelle je peu choisir un certains nombre d'option tel que afficher les données sous fichier text, sauf que pour cette ordinateur il stoque pas les données ou je pourais les recuperer, il me les envoi via le web)
alors manuellement je fais par exemple: brows->data record->(choisir la date)-> l'afficher ou l'enregistrer. alors ce qui me faut c'est de plannifier cette action chaque instnant donné. afin d'avoir à chaque foi le fichier le plus recent.
mon gro souci c'est comment automatiser c'es taches ?? -
Bonjour,
justement avec d'autre logiciel, j'ai pu le paramétrer à faire cette tache, sauf que pour d'autres ce n'est pas faisable, il faut à chaque foie le faire manuellement.
il me reste deux logiciels:
le premier stock des données sous format ".wlk" sauf que celui-ci ne donne pas de chemin pour les récupérer en entier , il faut a chaque foie importer les données, les enregistrer sous fichier.wlk ou bien les copier sous fichier texte .
le second, permet de télécharger les données via le web, sauf que la dernière url que j'ai , c'est celle de la page qui permet de choisir la date et l'heur, et donc même en VB j'ai pas encore réussi à automatiser le téléchargement des données temps réel. -
Re, j'ai trouver ou le premier stock les données. ils sont d'extension ".wlk" et il les stock ainsi :
2012-09.wlk
2012-10.wlk
2012-11.wlk
.................
et chaque fichier contient les données du mois.
est ce que je peut les importé sur mon classeur Excel? -
Bonjour,
Ce n'est pas des plus simple, de ce que j'ai pu voir sur internet. Pouvez-vous en mettre un a dispo sur https://www.cjoint.com/ que je puisse faire des tests
Merci
A+ -
-
Bonjour,
j'ai finalement pu automatiser la sauvegarde des fichiers .wlk en fichiers texte par le logciel qui les generent. -
Bonjour,
Il faut toujours commencer par: comment est generer le fichier et est-ce parametrable.
Vos avez fait preuve de reflexion et perceverance. Mais juste pour mettre un peu d'ambiance avec vos collegues (mirage23 en particulier), fin 2012 elle avait demande a afficher des infos et le fichier etait un fichier .txt, donc peut-etre qu'elle savait, mais elle n'a rien dit.
A+ -
Bonjour,
En fait je suis au courant de ce qu'elle fait vu que chaque probleme nous le traittons ensemble. ya bien un logiciel qui en effet stock les données sous fichiers texte et que nous recuperons deja ses données sur Excel.sauf que celui la, nous avons été induit en erreur dabor par le technicien qui tien le laboratoire puis par l'assitance technique au USA puis au forum du logiciel meteo tout le monde nous a dis que ca ne se fait que manuellement. alors que ce matin j'ai mis la main sur le manuel et il suffisait de taper "ctr+L" pour qu'il se mette à enregister sous fichier texte. ne vous inquietez pas mirage23 a bien galeré avec moi :). cependant maintenant j'ai un autre souci:
https://forums.commentcamarche.net/forum/excel-145/new#p27456894 -
Bonjour,
j'ai mis la main sur le manuel Eh! oui.
cependant maintenant j'ai un autre souci: Oui, lequel
http://www.commentcamarche.net/forum/excel-145/new#p27456894 qu'est-ce!!! -
Bonjour,
j'ai recu une reponse sur ce dernier lien , je vais l'essayer.
pour le fichier texte que le logiciel m'affiche, les colonnes ne sont pas bien delimitées et du coup, le fichier Excel les placent tous sur une meme colonne. ya t'il une solution à ca? -
Re,
pouvez-vous mettre un fichier txt a dispo?? -
-
Re,
manip, ouverture fichier .txt avec espace en delimiteur de separation de colonnes, faite avec enregistreur de macro.
Workbooks.OpenText Filename:="D:\_cles\download.txt", Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(8, _
1), Array(15, 1), Array(22, 1), Array(29, 1), Array(36, 1), Array(43, 1), Array(49, 1), _
Array(55, 1), Array(62, 1), Array(68, 1), Array(75, 1), Array(80, 1), Array(87, 1), Array( _
94, 1), Array(101, 1), Array(109, 1), Array(115, 1), Array(122, 1), Array(130, 1), Array( _
138, 1), Array(144, 1), Array(151, 1), Array(158, 1), Array(165, 1), Array(171, 1), Array( _
179, 1), Array(185, 1), Array(191, 1), Array(199, 1)), TrailingMinusNumbers:=True
vous pouvez aussi vous inspirer du fichier de mirage23 pour ses imports .txt
genre:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Chemin_Complet, Destination:=Range("$A$2"))
ensuite, vous faite votre programme comme si c'etait un fichier excel
A+ -
Bonjour,
Je l'ai essayé ca a marché. maintenant comment l'integrer sur cette macro de telle sorte que quand je lui demande d'importer les données depuis ce fichier texte il les importe avec delimiteur de separation.
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
A+ -
Re,
code pour recevoir le fichier en colonne et format txt
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
A+ -
Bonjour,
j'ai remplacé une partie de la macro par celui la. mais ca beugue -
Bonjour,
Ben oui, mais ou??? -
ce qui se trouve entre ( with et end with)
-
Re,
quel est le message d'erreur???
- 1
- 2