Type de fichier

Résolu/Fermé
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 12 juil. 2013 à 13:58
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 12 juil. 2013 à 14:55
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


A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
12 juil. 2013 à 14:06
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
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juil. 2013 à 14:11
Merci beaucoup pour votre réponse rapide !

Je vais essayer cela :-)

Amicalement,
rEVOLV3r
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juil. 2013 à 14:31
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
12 juil. 2013 à 14:39
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
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juil. 2013 à 14:41
Je vais essayer cela de suite ! Merci bien
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
12 juil. 2013 à 14:48
MA - NI - FIQUE !

Merci beaucoup !

Passez une agréable après-midi !
Bye
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
12 juil. 2013 à 14:55
Mais de rien.
Bon aprème également.
A+
0