Type de fichier

Résolu
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai créé un algorithme en VBA destiné à trier automatiquement toutes les séquences de données sortant des machines de mesure pour une grande entreprise.
Toutes les séquences de données sont du type "*.*" donc fichier de type fichier.
Cependant des fois...certains opérateurs ajoutent des fichier "*.txt" dans les dossiers destinés au mesures...et ne les enlève pas.
Mon alogorithme initial prend en compte tousl les types de fichier car un bout de la macro est comme-ceci :

CheminOpen = cheminMachine(i)
CheminOpendData = CheminOpen & "\*.*"
...

Donc le triage se fera sur TOUS les fichiers se trouvant des les répertoires.

Voila ma question :
Comment faire pour ne pas prendre en compte les fichiers d'une autre extension que les fichier type fichier ? qui n'ont pas.... d'extension...
Par conséquent exclure tous les fichier ".txt" ou autre qu'ils pourraient déplacer dans les répertroires ?

Sinon, normalement les fichiers parasites s'appelle souvent "Essai.txt", est il possible de les exlure lors dê la nomination du CheminOpendData ?

Genre en faisant :
variableName = AND("\*.*" NOT("\*.txt")
CheminOpenData = cheminOpen & variableName...

Merci bien !

Je vous souhaite une bonne journée.
Amicalement,

rEVOLV3r

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Si dans tes fichiers de tous types (*.*) tu n'as pas de fichiers txt, suffit d'écarter les txt :

    If Right(MonFichier.Name, 3) <> "txt" Then CheminOpenData = cheminOpen & MonFichier.Name

    0
    1. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
       
      Merci beaucoup pour votre réponse rapide !

      Je vais essayer cela :-)

      Amicalement,
      rEVOLV3r
      0
  2. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Bonjour,

    Vous allez me prendre pour une pive, mais je n'arrive pas à implémenter votre solution dans ma macro... :-(
    Si vous pouviez me dire ou la mettre la dedans, ca serait magnifique :-)

    For i = 0 To 17

    'Définition du chemin à tester
    Dim RetVal As Boolean

    CheminOpen = CheminMachine(i)
    CheminOpenData = CheminOpen & "\*.*"
    ChDir (CheminOpen)

    RetVal = Application.Dialogs(xlDialogOpen).Show(CheminOpenData) 'ouverture de la boite de dialogue
    If RetVal = True Then Exit Sub 'si "annulé" est pressé parce que le chemin est correct, alors on continue
    'Y a t'il des fichiers à déplacer ?

    Dim objOFS As Variant
    Set objOFS = CreateObject("Scripting.FileSystemObject")

    'Test si au moins un fichier present
    If Dir(CheminOpenData) <> "" Then

    fichier = Dir(CheminOpenData)
    Do While fichier <> ""

    'TRIAGE DES SEQUENCES
    'Commencement par la prise des informations
    Set wbsource = Workbooks.Open(CheminOpen & "\" & fichier) 'open the file
    nomdufichier = ActiveWorkbook.Name
    DateModif = FileDateTime(nomdufichier)
    EcartDates = DateDiff("h", DateModif, Now, vbMonday, vbFirstJan1)
    If EcartDates < Limite Then
    MsgBox ("OF " & nomdufichier & " EN COURS !" & Chr(10) & "Réessayez dans : " & Limite - EcartDates & "Heures")
    wbsource.Close False
    Exit Do
    End If

    Merci beaucoup !
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Perso, j'essaierai de la mettre ici :

      For i = 0 To 17
      
      'Définition du chemin à tester
      Dim RetVal As Boolean
      
      CheminOpen = CheminMachine(i)
      CheminOpenData = CheminOpen & "\*.*"
      ChDir (CheminOpen)
      
      RetVal = Application.Dialogs(xlDialogOpen).Show(CheminOpenData) 'ouverture de la boite de dialogue
      If RetVal = True Then Exit Sub 'si "annulé" est pressé parce que le chemin est correct, alors on continue
      'Y a t'il des fichiers à déplacer ?
      
      Dim objOFS As Variant
      Set objOFS = CreateObject("Scripting.FileSystemObject")
      
      'Test si au moins un fichier present
      If Dir(CheminOpenData) <> "" Then
      
      fichier = Dir(CheminOpenData)
      Do While fichier <> ""
          '************ ICI ************* ICI ************************
          If Right(fichier, 3) <> "txt" Then
          '*********************************************************
              'TRIAGE DES SEQUENCES
              'Commencement par la prise des informations
              Set wbsource = Workbooks.Open(CheminOpen & "\" & fichier) 'open the file
              nomdufichier = ActiveWorkbook.Name
              DateModif = FileDateTime(nomdufichier)
              EcartDates = DateDiff("h", DateModif, Now, vbMonday, vbFirstJan1)
              If EcartDates < Limite Then
                  MsgBox ("OF " & nomdufichier & " EN COURS !" & Chr(10) & "Réessayez dans : " & Limite - EcartDates & "Heures")
                  wbsource.Close False
                  Exit Do
              End If
      '** NE PAS OUBLIER D'AJOUTER END IF***********************
          End If
      '******************************************************************
       
      0
    2. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
       
      Je vais essayer cela de suite ! Merci bien
      0
    3. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
       
      MA - NI - FIQUE !

      Merci beaucoup !

      Passez une agréable après-midi !
      Bye
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Mais de rien.
      Bon aprème également.
      A+
      0