Importation de données externe via une Macro

  • Initiateur de la discussion Initiateur de la discussion eavan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eavan

XLDnaute Nouveau
Bonjour,

Je suis débutant en Macro donc c'est pour ça que je viens vers vous.
Voila ce que je cherche à faire:


Dans mon entreprise nous avons un PC de supervision des installations techniques, sur ce PC je fait un archivage toute les heures de la température extérieur et diverses autres données. Donc cela me crée un fichier .csv toute les heures.
Je cherche une façon automatique d'importer les données de ces fichiers dans un tableau afin d'en faire un graphique.
Actuellement je le fait manuellement mais c'est fastidieux (24 fichiers par jours à importer).

J'ai réussi à le faire pour un fichier avec l'enregistreur de macro.
Maintenant j'aimerais pouvoir choisir le fichier à importer ainsi que la colonne.mais là mes connaissances sont trop faibles
Ci dessous le code de ma macro:


Sub tempe()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Mes documents_local\GTC\R0006\BALLO44F.csv", Destination:=Range("C3" _
))
.Name = "BALLO44F"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1250
.TextFileStartRow = 4
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = """"
.TextFileColumnDataTypes = Array(9, 9, 1)
.TextFileDecimalSeparator = "."
.Refresh BackgroundQuery:=False
End With
End Sub
 
Re : Importation de données externe via une Macro

Merci ça marche bien, je l'ai un peu adapté notamment la partie importation de donnée.

Par contre est il possible de prendre plusieurs fichiers en même temps et de les placer dans les colonnes de façon chronologique ?
Ou bien se servir du nom de fichier qui commence toujours par BALLO***.csv où les 3 * représente un nombre en hexadécimal qui s'incrémente a chaque fois que j'ai un fichier de créé, 000,001,002,003,004,005,006,007,008,009,00A,00B,00C,00D,00E,00F,010 etc...
 
Re : Importation de données externe via une Macro

bonjour Eavan
userform1
un bouton pour choisir dossier et aller chercher les fichiers
les noms des fichiers sont mis triés dans listbox1
ensuite bouton valider,traitent les fichiers
tu as un résultat intermédiaire dans feuil3
module1 à 4 pour les différentes procédures
fait plusieurs essais concluants pour feuil1
Cijoint.fr - Service gratuit de dépôt de fichiers
à bientôt pour la suite
 
Re : Importation de données externe via une Macro

Bonjour,

Désolé de revenir si tard mais j'avais d'autres chantiers en cours.
@Bebere: entre temps j'ai changé la disposition de mon tableau car on ne peu pas dépasser 256 colonnes (en plus je n'avais pas vu ta réponse).
En fouillant sur internet j'ai réussi a bricoler une macro qui marche bien:

Sub importlignes()
Dim Fichier As String, Chemin As String
Dim i As Long

'Répertoire contenant les fichiers
Chemin = "D:\Circutor\GTC\R0006"
Fichier = Dir(Chemin & "\*.csv")

'Boucle sur les fichiers
Do While Fichier <> ""

i = Range("A65536").End(xlUp).Row + 1
ImportText Chemin & "\" & Fichier, Cells(i, 1)

Fichier = Dir
Loop
End Sub

Sub ImportText(NomFichier As Variant, Cible As Range)
Dim QT As QueryTable

Set QT = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
NomFichier, Destination:=Cible)

With QT
'Définit les séparateur de colonnes dans le fichier txt
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1250
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileOtherDelimiter = """"
.TextFileColumnDataTypes = Array(9, 9, 9, 9, 1, 9, 1, 9, 1, 9, 9, 9, 9, 9, 1, 9, 1, 9, 9, 9, 9, _
9, 1, 9, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 9, 9, 9, 9, 9, 9, 9, 9 _
, 9, 9, 9, 1, 9, 9, 9, 9, 9, 9)
.TextFileDecimalSeparator = "."
.Refresh
End With
End Sub

Par contre maintenant j'ai un nouveau problème:
cela arrive que le PC qui enregistre les fichiers plante (comme ce week-end pars exemple) donc je n'ai pas de fichiers depuis samedi 4h jusqu'à ce matin 7h.
Dons si j'applique ma macro je me retrouve décalé dans mes dates.
J'ai donc voulu insérer des fichiers dans mon dossier avec les dates et heures qu'il me manquait.
Le problème est que ma macro fait le tri dans mon dossier sur les noms de fichiers (ordre alphabétique je pense) je cherche donc à modifier ma macro pour faire le tri sur la date de modification du fichier (sub importlignes) mais je ne trouve pas la solution.
 
Dernière édition:
Re : Importation de données externe via une Macro

bonjour Eavan
importlignes n'a pas de tri
ton code prend tous les fichiers *.csv du dossier
il faut d'abord faire une liste ensuite la trier
faire une liste des fichiers traités où les mettre dans un autre dossier
c'est ce que je pense
à bientôt
 
Re : Importation de données externe via une Macro

Re,
Le problème est que si j'importe mes fichiers avec la date qui est dans le fichier .csv cela me fait 2 lignes par fichiers donc impossible (pour moi) de les trier.
Il n'est pas possible d'insérer dans sub importlignes un tri par date et heure de modification du fichier ou bien de lire la date et l'heure dans le fichier et de faire un tri ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
64
Retour