[VBA] Liste en fonction de fichierS .csv
Fermé
yoy91
-
30 sept. 2016 à 15:13
yoyoyo91 Messages postés 14 Date d'inscription vendredi 30 septembre 2016 Statut Membre Dernière intervention 5 octobre 2016 - 1 oct. 2016 à 14:54
yoyoyo91 Messages postés 14 Date d'inscription vendredi 30 septembre 2016 Statut Membre Dernière intervention 5 octobre 2016 - 1 oct. 2016 à 14:54
A voir également:
- [VBA] Liste en fonction de fichierS .csv
- Liste déroulante excel - Guide
- Fonction si et - Guide
- Liste déroulante en cascade - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Wetransfer gratuit fichiers lourd - Guide
7 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
30 sept. 2016 à 17:03
30 sept. 2016 à 17:03
Bonjour,
A essayer car je n'ai pas 2000 fichiers csv
A essayer car je n'ai pas 2000 fichiers csv
Sub Macro_RTlist() 'Macro permettant la génération de la liste des rapports Dim Start, Ending, Temps As Date Dim wb_CSV As Workbook Dim Rep, fichier, var_report As String Dim cpt_file, cpt_lin, var_car As Integer Call ScreenUpdating_Off Start = Time var_dashyear = "Dashboard_" & Worksheets("DASH").Range("DASH_Year").Value Rep = "M:\Jambon\# Mettre à jour\WKND-37\#_2017\" & Worksheets("DASH").Range("DASH_Year").Value & "\" fichier = Dir(Rep) ' & "*.csv") cpt_file = 7 Do While fichier <> "" cpt_file = cpt_file + 1 'Nom de fichier SANS extention var_report = Left(fichier, Len(fichier) - 4) Sheets("RT_list").Range("A" & cpt_file) = var_report ThisWorkbook.Names.Add "plage", RefersTo:="='" & Rep & "[" & fichier & "]" & var_report & "'!$A$1:$F$1" 'ajoutez une feuille et changez le nom en dessous 'il est possible de la faire par programme, mais je ne sais pas quel classeur est ouvert avec cette macro !!! With Sheets("Feuil2") .[A1:F1] = "=plage" TInfos = .[A1:F1] With Workbooks(var_dashyear & ".xlsm").Worksheets("RT_list") .Cells(cpt_file, 2).Value = TInfos(1, 1) .Cells(cpt_file, 5).Value = TInfos(1, 2) .Cells(cpt_file, 7).Value = TInfos(1, 3) .Cells(cpt_file, 8).Value = TInfos(1, 4) .Cells(cpt_file, 9).Value = TInfos(1, 5) .Cells(cpt_file, 3).Value = TInfos(1, 6) End With .[A1:F1].Clear End With fichier = Dir Loop ActiveWorkbook.Worksheets("RT_list").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("RT_list").AutoFilter.Sort.SortFields.Add Key:=Range("A7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("RT_list").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Call ScreenUpdating_On Ending = Time Temps = Ending - Start MsgBox (Temps) Exit Sub FIN: Call ScreenUpdating_On End Sub
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
30 sept. 2016 à 17:35
30 sept. 2016 à 17:35
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
30 sept. 2016 à 17:59
30 sept. 2016 à 17:59
Avec ceci (ligne 23-25) ça marche, mais ça re-devient très long...
Sub Macro_RTlistgnh() 'Macro permettant la génération de la liste des rapports Dim Start, Ending, Temps As Date Dim wb_CSV As Workbook Dim Rep, fichier, var_report As String Dim cpt_file, cpt_lin, var_car As Integer Call ScreenUpdating_Off Start = Time var_dashyear = "Dashboard_" & Worksheets("DASH").Range("DASH_Year").Value Rep = "M:\Jambon\# Mettre à jour\WKND-37\#_2017\" & Worksheets("DASH").Range("DASH_Year").Value & "\" fichier = Dir(Rep) cpt_file = 7 Do While fichier <> "" cpt_file = cpt_file + 1 var_report = Left(fichier, Len(fichier) - 4) Sheets("RT_list").Range("A" & cpt_file) = var_report ThisWorkbook.Names.Add "RANGE", RefersTo:="='" & Rep & "[" & fichier & "]" & var_report & "'!$A$1:$F$1" Workbooks.Open Filename:="M:\Jambon\# Mettre à jour\WKND-37\#_2017\" & Worksheets("DASH").Range("DASH_Year").Value & "\" & var_report & ".csv", Local:=True Workbooks("Dashboard_2017.xlsm").Activate With Sheets("Feuil2") .[A1:F1] = "=RANGE" TInfos = .[A1:F1] With Workbooks(var_dashyear & ".xlsm").Worksheets("RT_list") .Cells(cpt_file, 2).Value = TInfos(1, 1) .Cells(cpt_file, 5).Value = TInfos(1, 2) .Cells(cpt_file, 7).Value = TInfos(1, 3) .Cells(cpt_file, 8).Value = TInfos(1, 4) .Cells(cpt_file, 9).Value = TInfos(1, 5) .Cells(cpt_file, 3).Value = TInfos(1, 6) End With .[A1:F1].Clear End With fichier = Dir Workbooks(var_report & ".csv").Close (False) Loop ActiveWorkbook.Worksheets("RT_list").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("RT_list").AutoFilter.Sort.SortFields.Add Key:=Range("A7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("RT_list").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Call ScreenUpdating_On Ending = Time Temps = Ending - Start MsgBox (Temps) Exit Sub FIN: Call ScreenUpdating_On End Sub
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
>
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
30 sept. 2016 à 18:04
30 sept. 2016 à 18:04
Re,
Ben oui, si vous ouvrez les fichier csv, ça redevient long !!!!!!!
Serait-t-il possible d'avoir un de vos fichiers csv ???
Ben oui, si vous ouvrez les fichier csv, ça redevient long !!!!!!!
Serait-t-il possible d'avoir un de vos fichiers csv ???
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
30 sept. 2016 à 18:24
30 sept. 2016 à 18:24
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
30 sept. 2016 à 18:25
30 sept. 2016 à 18:25
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
Modifié par f894009 le 30/09/2016 à 18:44
Modifié par f894009 le 30/09/2016 à 18:44
Re,
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Dans votre repertoire, il y a que des fichiers csv ???
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Dans votre repertoire, il y a que des fichiers csv ???
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
1 oct. 2016 à 10:16
1 oct. 2016 à 10:16
https://www.cjoint.com/c/FJbioC3frKU
https://www.cjoint.com/c/FJbipdxTh2U
Voici les liens vers le fichier à remplir et un exemple de fichier csv.
Oui, il n'y a que des fichiers csv
Merci pour votre aide
https://www.cjoint.com/c/FJbipdxTh2U
Voici les liens vers le fichier à remplir et un exemple de fichier csv.
Oui, il n'y a que des fichiers csv
Merci pour votre aide
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
1 oct. 2016 à 10:24
1 oct. 2016 à 10:24
Bonjour,
Je recupere vos fichiers. Pourquoi recuperez-vous les donnees csv en partant d'une liste et une instruction dir qui ne confirme pas la presence des fichiers ??????
Je recupere vos fichiers. Pourquoi recuperez-vous les donnees csv en partant d'une liste et une instruction dir qui ne confirme pas la presence des fichiers ??????
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
1 oct. 2016 à 10:27
1 oct. 2016 à 10:27
Euh....peut être parce que je ne m'y connais pas tant que çe en VBA.
Pour l'instant j'essaie juste de résoudre ma problématique principale, il y aura surement des ajustements et de controles à faire après...mais je n'y ai pas encore réfléchi.
De plus, je collecte surtout des informations sur internet et j'essaie d'en sortir quelque chose...
Merci
Pour l'instant j'essaie juste de résoudre ma problématique principale, il y aura surement des ajustements et de controles à faire après...mais je n'y ai pas encore réfléchi.
De plus, je collecte surtout des informations sur internet et j'essaie d'en sortir quelque chose...
Merci
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
>
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
1 oct. 2016 à 10:39
1 oct. 2016 à 10:39
Re,
En effet, avec votre fichier csv il y a probleme, si je le reenregistre plus de probleme.
Je cherche le pourquoi
En effet, avec votre fichier csv il y a probleme, si je le reenregistre plus de probleme.
Je cherche le pourquoi
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
1 oct. 2016 à 10:41
1 oct. 2016 à 10:41
Je vous communique le code qui me permet de créer le fichier csv :
'== Boucle 3 : Créer le fichier .csv == CSV = "F:\Jambon\# Mettre à jour\WKND-37\#_2017\" & Worksheets("NUM").Range("Num_Year").Value & "\" & var_report & ".csv" Open CSV For Output As #1 'Ouvre le fichier en écriture Print #1, var_technician & ";" & var_customer & ";" & var_project & ";" & var_phase & ";" & var_DVP & ";" & var_test Close #1
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
1 oct. 2016 à 10:48
1 oct. 2016 à 10:48
Re,
C'est peut-etre la le pourquoi !!!!!
Je regarde la chose
C'est peut-etre la le pourquoi !!!!!
Je regarde la chose
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
>
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 oct. 2016 à 11:51
1 oct. 2016 à 11:51
Re,
En changeant de methode pour recuperer les infos avec une boucle de 2000, temps d'execution=90s. Methode Referto=66s, mais pour le moment marche pas avec vos fichiers
Je planche pour voir avec la Methode Referto
En changeant de methode pour recuperer les infos avec une boucle de 2000, temps d'execution=90s. Methode Referto=66s, mais pour le moment marche pas avec vos fichiers
Je planche pour voir avec la Methode Referto
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
1 oct. 2016 à 13:45
1 oct. 2016 à 13:45
Merci encore pour l'aide.
Uniquement avec mes fichiers ?
Si vous avez une autre méthode, je ne suis pas fermé non plus sur la méthode de création de ces fichiers csv.
Uniquement avec mes fichiers ?
Si vous avez une autre méthode, je ne suis pas fermé non plus sur la méthode de création de ces fichiers csv.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
>
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
Modifié par f894009 le 1/10/2016 à 14:08
Modifié par f894009 le 1/10/2016 à 14:08
Re,
C'est aussi une appli excel qui cree les csv ????
Uniquement avec mes fichiers ?
Eh ben non! Ce matin, ce qui marchait hier avec "mes" fichiers csv, ne marche plus, c'est pour cela que j'ai change de methode.
90s pour 2000 fichiers, ca doit le faire ou pas, car je viens de voir que votre fichier xlsm a 5000 lignes en RT_List !!!!!!!!!!!!!!!!!!!
C'est aussi une appli excel qui cree les csv ????
Uniquement avec mes fichiers ?
Eh ben non! Ce matin, ce qui marchait hier avec "mes" fichiers csv, ne marche plus, c'est pour cela que j'ai change de methode.
90s pour 2000 fichiers, ca doit le faire ou pas, car je viens de voir que votre fichier xlsm a 5000 lignes en RT_List !!!!!!!!!!!!!!!!!!!
yoyoyo91
Messages postés
14
Date d'inscription
vendredi 30 septembre 2016
Statut
Membre
Dernière intervention
5 octobre 2016
1 oct. 2016 à 14:17
1 oct. 2016 à 14:17
Oui
En fait, je vous explique en détail.
J'ai un fichier qui me sert de support pour créé les fichier .csv et un fichier qui doit lire les noms de ces fichiers et me créer une liste avec les informations contenues dans tous ces fichiers.
Ce système représente un peu un système de ticket où mes utilisateurs (une multitude) prennent à leur tout un ticket et renseigne les données de base (nom, ...).
Et j'ai besoin d'un listing centralisant ces informations (qui a pris le ticket n°1,2,...).
90s pour 2000 fichiers est largement OK pour moi.
En fait, je vous explique en détail.
J'ai un fichier qui me sert de support pour créé les fichier .csv et un fichier qui doit lire les noms de ces fichiers et me créer une liste avec les informations contenues dans tous ces fichiers.
Ce système représente un peu un système de ticket où mes utilisateurs (une multitude) prennent à leur tout un ticket et renseigne les données de base (nom, ...).
Et j'ai besoin d'un listing centralisant ces informations (qui a pris le ticket n°1,2,...).
90s pour 2000 fichiers est largement OK pour moi.