Importation Automatique

Fermé
Framan - 10 avril 2015 à 11:44
Framandiop Messages postés 2 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 10 avril 2015 - 10 avril 2015 à 18:20
Bonjour à tous,
Je veux importer automatiquement des fichiers Csv dans ACCESS avec un code VBA.
Les fichiers sont sont enregistrés dans un répertoire sous le format exemple: TACHES_GE_E0D441_D150331_T2055.CSV; quelque soit le fichier la partie TACHES_GE_E0D441 ne change pas, c'est la partie D150331 qui change(Date du 31/03/2015): c'est la date ou le ficher est enregistré dans le répertoire.
Chaque jour je dois importer de manière automatique le dernier fichier, c'est dire le fichier de la veille pour pouvoir automatiser mes tableaux de bord.
Pour aujourd'hui c'est:TACHES_GE_E0D441_D150409_....csv.(D150409=Date du 09/04/2015).

Mon code vba pour l'importation automatique:

Public Sub ImportationAutomatique()
Dim strFichier As String
'Demander confirmation
If MsgBox("Confirmez-vous l'importation de la table Tache?", vbQuestion + vbYesNo) = vbNo Then
Exit Sub
End If
'Initialisation
strFichier = "D:\TACHES_GE_I4D212_D150409_T2044.CSV"
'Verifier que le fichier existe bien
If Dir(strFichier) = "" Then
MsgBox "le fichier" & strFichier & " est introuvable!", vbExclamation
Exit Sub
End If
'Vider la Table temporaire si elle existe
'(elle est de toute façon crée automatiquement si elle n'existe pas)
On Error Resume Next
CurrentDb.Execute "DELETE*FROM[TOTO];"
'Importer le fichier csv
DoCmd.TransferText acImportDelim, "TableModel", "TOTO", strFichier, True
DoCmd.SetWarnings False
'Tansfert de données vers R1
DoCmd.OpenQuery "R1"
'Tansfert de données vers R2
DoCmd.OpenQuery "R2"
'Transfer des données vers R3
DoCmd.OpenQuery "R3"
'Terminé!
DoCmd.SetWarnings True
MsgBox " Importation terminée !", vbInformation
End Sub

Ma question c'est comment importer seulement de manière automatiquement le fichier de la veille avec ce code vba (strFichier = "D:\TACHES_GE_I4D212_D150331_T2044.CSV") ou avec un autre code qui me permettra de lire ce format date( D150409) qui change tous les jours?

Merci par avance pour vos aides.


2 réponses

Bonjour,
Je ne connais pas du tout CSV et j'espère ne pas dire de bêtise, mais si ton soucis n'est que dans la lecture l'adresse, il faut que tu écrives qqch du genre:
MaDate ="XXX"
strFichier = "D:\TACHES_GE_I4D212_" & MaDate &"_T2044.CSV"

Dans tous les cas, il faut que tu introduises ta chaîne de caractères dans ton adresse. J'avais eu à le faire et ça passe très bien après qq tâtonnements. Il ne faut pas hésiter à faire la descente de la procédure en pas à pas pour vérifier que la valeur MaDate est bien prise en compte.
Bonne suite
0
Framandiop Messages postés 2 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 10 avril 2015
10 avril 2015 à 14:45
Bonjour Tessel75,

Merci pour la réponse, cette méthode marche bien!
Y a pas une autre solution pour la lecture automatiquement, sans mettre à chaque fois la date (MaDate ="XXX") ?
Je veux, par simple clic bouton lancer l'importation de manière automatique, sans pour autant modifier à chaque fois la date.

un autre souci aussi T2044 change aussi, est-que, c'est possible de lire le fichier avec seulement la première partie et la date, en ignorant la dernière partie (T2044)?
Merci encore par avance!

Cdt
0
Re-Bjr,
Tu peux évidement mettre le calcul du paramètre MaDate directement dans l'adresse, mais tu contrôles moins la descente de la procédure puisque tu ne peux pas vérifier que la valeur est correctement calculée.
Dans ce cas tu auras :
strFichier = "D:\TACHES_GE_I4D212_" & XXX &"_T2044.CSV"
Pour le reste, c'est exactement la même technique. Si tu l'as fait une fois, tu peux le faire partout, mais encore faut-il que le nom du fichier à lire soit complet sinon il te répondra que le fichier est introuvable.
Bonne suite
0
Framandiop Messages postés 2 Date d'inscription vendredi 10 avril 2015 Statut Membre Dernière intervention 10 avril 2015
10 avril 2015 à 18:20
Re-Bjr

J'ai pas compris ce que tu veux dire par là.
Je peux avoir plus de détail ou un exemple stp?
Merci.
0