XL 2013 création d'un fichier d'analyse

max59

XLDnaute Nouveau
Bonjour a tous,

Je me permet de faire appel a vous concernant la création d'un fichier d'analyse pour mon boulot. Ce fichier à pour but de lister les différents fichiers fermés se trouvant dans un répertoire afin de quantifié la "date du fichier", "le nom du fichier", "nombre de ligne totale", nombre de ligne contenant la valeur "x" et nombre de ligne contenant y( la valeur x et y se trouve dans la même colonne).
Pouvez-vous me dire si ce type de fichier existe déjà? si pas, pouvez-vous m'aider a effectuer le code?

Je vous remercie
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @max59, le Forum

Non à mon ma connaissance je n'ai jamais vu ce genre de fichiers d'analyses aussi complètes. Quand tu parles de fichiers ce ne sont que des Classeurs Excel ou bien ?

Et quand il y a plusieurs onglets il faut looper sur tous j'imagine aussi ?

Ce que j'entrevois c'est un mixte FSO et ADO pour y arriver et ca va être assez "coton" à développer... Tout dépend de tes compétences.

Bon Courage et bonne journée
@+Thierry

PS FSO = File Scripting Object // ADO = ActiveX Data Object
 

max59

XLDnaute Nouveau
Merci de ta reponse rapide.

Ce n'est que des fichiers excel. dans chaque fichier il y a qu'un onglet, c'est un renseignement de machine. A chaque pièces différentes, ça change de fichier. mes compétences sont niveau débutant, pratique pas beaucoup.

Peux tu m'aider?

Je te remercie


Bonjour @max59, le Forum

Non à mon ma connaissance je n'ai jamais vu ce genre de fichiers d'analyses aussi complètes. Quand tu parles de fichiers ce ne sont que des Classeurs Excel ou bien ?

Et quand il y a plusieurs onglets il faut looper sur tous j'imagine aussi ?

Ce que j'entrevois c'est un mixte FSO et ADO pour y arriver et ca va être assez "coton" à développer... Tout dépend de tes compétences.

Bon Courage et bonne journée
@+Thierry

PS FSO = File Scripting Object // ADO = ActiveX Data Object
 

max59

XLDnaute Nouveau
Désolé, mon responsable me demande de prendre directement le fichier source qui est en "ASC", pour pouvoir avoir plus d'info. Pouvez vous me dire quelle est le code pour lire directement les infos en vba des fichier ASC? Je vous remercie
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @max59, le Forum

As-tu essayé de l'ouvrir avec Note Pad (Windows Bloc Note) ?
Si il s'ouvre et que tu peux le lire alors il y a aura peut-être une solution.

Si il est encrypté par PGP, no way !!! (Ou alors c'est d'un niveaux extrême de faire faire ça par VBA)

Bon courage
@+Thierry
 

max59

XLDnaute Nouveau
Bonjour,

J'ai commencé mon code qui correspond bien à ma demande mais je suis bloqué sur la mise en place de la partie du code qui récupère le nombre de lignes non vides dans chaque fichier fermé du répertoire.

Mon besoin est d'avoir le nombre de ligne non vide et le nombre de ligne selon 1 condition.

voici le code que j'ai effectué pour l'instant.

Pouvez-vous m'aider à compléter mon code?

Je vous remercie

VB:
Option Explicit
 
Sub TestListeFichiers()
    Dim Dossier As String
 
    'Définit le répertoire pour débuter la recherche de fichiers.
    '(Attention à ne pas indiquer un répertoire qu contient trop de sous-dossiers ou de
    'fichiers, sinon le temps de traitement va être très long).
    Dossier = "C:\Users\Desktop\Nouveau dossier(3)"
 
    'Appelle la procédure de recherche des fichiers
    ListeFichiers Dossier
 
    'Ajuste la largeur des colonnes A:E en fonction du contenu des cellules.
    Columns("A:E").AutoFit
    MsgBox "Terminé"
    
End Sub
 
Sub ListeFichiers(Repertoire As String)
    '
    'Nécessite d'activer la référence "Microsoft Scripting RunTime"
        'Dans l'éditeur de macros (Alt+F11):
        'Menu Outils
        'Références
        'Cochez la ligne "Microsoft Scripting RunTime".
        'Cliquez sur le bouton OK pour valider.
 
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.File
    Dim i As Long
 
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)
 
 'Mise à zero de la page
    Cells.Select
    Selection.ClearContents
    
 'Titre des colonnes
    Range("a1").Value = "Nom du fichier"
    Range("b1").Value = "Date de modification"
    Range("c1").Value = "Nombre de données fichier"
    Range("d1").Value = "Nombre de Ligne total du fichier"    '-> LE BUT est de pouvoir créer un pourcentage et graphique par la suite
    Range("e1").Value = "Nombre de Ligne contenant un '1'"    '-> LE BUT est de pouvoir créer un pourcentage et graphique par la suite
    Range("f1").Value = "Nombre de Ligne contenant un '2'"    '-> LE BUT est de pouvoir créer un pourcentage et graphique par la suite
    
 'Mise en forme 1er ligne
 
    Rows("1:1").Select
    Selection.Font.Bold = True
    Selection.Font.Size = 12
 
    'Récupère le numéro de la dernière ligne vide dans la colonne A.
    i = Range("A65536").End(xlUp).Row + 1
 
    'Boucle sur tous les fichiers du répertoire
    For Each FileItem In SourceFolder.Files
        'Inscrit le nom du fichier dans la cellule
        Cells(i, 1) = FileItem.Name
        'Ajoute un lien hypertexte vers le fichier
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
            Address:=FileItem.ParentFolder & "\" & FileItem.Name
      
        'Indique la date de dernière modification
        Cells(i, 2) = FileItem.DateLastModified
        
 
        i = i + 1
    Next FileItem
 
    '--- Appel récursif pour lister les fichier dans les sous-répertoires ---.
    For Each SubFolder In SourceFolder.subfolders
        ListeFichiers SubFolder.Path
    Next SubFolder
    
 Range("a1").Select
 
End Sub
 

max59

XLDnaute Nouveau
Merci Thierry de ta réponse.

Voici le fichier.

Mon besoin est :
-> le nombre de ligne total
-> le nombre de ligne de la colonne "Code" contenant le chiffre "1"
-> le nombre de ligne de la colonne "Code" contenant le chiffre "2"

Je te remercie
 

Pièces jointes

  • test1.zip
    2.6 KB · Affichages: 10

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @max59 , le Forum

Voilà un zip qui contient mes essais, à décompresser dans un répertoire de test. Ce zip contient des Folders et et un Sub-Folder et des "ASC" et aussi le programme "XLD_ Max59_Loop_FSO_Open_Input_ASC_Files_Stats_v00.xlsm"

Je pense que ca fait le Job ! ;)

Bien à toi, à vous
@+Thierry
 

Pièces jointes

  • Max59_Read_Txt.zip
    39.1 KB · Affichages: 6

max59

XLDnaute Nouveau
Merci thierry pour ta rapidité.
ça correspond bien à ma demande, j'ai juste un petit problème au niveau du comptage de ligne total du document, je voudrais le comptage des ligne en dessous des titres des colonnes. (a partir de la ligne 8), je me suis mal exprimé pour ma demande. desolé.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Max

Pas de souci, voicu une v01 qui fait donc ce que tu veux... Enfin j'espère !
Pour moi c'est à partir de ligne 7 selon le sample ASC

@+Thierry
 

Pièces jointes

  • XLD_ Max59_Loop_FSO_Open_Input_ASC_Files_Stats_v01.xlsm
    34 KB · Affichages: 3

max59

XLDnaute Nouveau
Pour une question d'amélioration,je voudrais mettre une condition de date pour lancer le code que tu m'a fourni. Est-ce possible d'avoir que les données de fichiers dont la date de modification correspond à l'année en cours ? ( ma liste des tests sont dans un répertoire machine sur le réseau de ma société. si machine à 10 ans, il y a 10 ans de fichier de le répertoire. très long a gérer)
Avec mes remerciements.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Max

Essaies cette v02, je n'ai pas les moyens de simuler des ASC plus vieux que cette année, mais ca devrait fonctionner...

Dis-moi...

@+Thierry
 

Pièces jointes

  • XLD_ Max59_Loop_FSO_Open_Input_ASC_Files_Stats_v02.xlsm
    34 KB · Affichages: 7

Discussions similaires

Réponses
3
Affichages
263

Statistiques des forums

Discussions
312 176
Messages
2 085 965
Membres
103 069
dernier inscrit
jujulop