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 des fichiers en masse - Guide
- Explorateur de fichiers - Guide
7 réponses
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ???
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
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
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
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 !!!!!!!!!!!!!!!!!!!
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.