Recherche de fichiers qui ne contiennent pas une lettre précise

Le
Apitos
Bonsoir à tous,

Cette macro est pour rechercher tous les fichiers dont leurs noms
commencent par "P" :

'-
Sub ChercheFichier()
Set fs = Application.FileSearch
With fs
.LookIn = "C:Fichiers"
.FileName = "P*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
MsgBox .FoundFiles(I)
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
'--

Alors comment faire pour trouver dans un répertoire tous les fichiers
qui ne contiennent pas dans leurs noms la lettre "P" par exemple ?


Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5143191
Cette procédure est sensible à la case...
elle élimine les fichiers qui débutent par "P"

La fonction Split() utilisée dans cette procédure
requiert la version excel 2000 ou plus récent.

Sub ChercheFichier()
Dim Zz As String
Set fs = Application.FileSearch
With fs
.LookIn = "C:"
'.Filename = "*c*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
Zz = Split(.FoundFiles(I), "")(UBound(Split(.FoundFiles(I), "")))
If Mid(Zz, 1, 1) <> "P" Then
MsgBox zz
End If
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub



"Apitos"

Bonsoir à tous,

Cette macro est pour rechercher tous les fichiers dont leurs noms
commencent par "P" :

'-------------------------------------
Sub ChercheFichier()
Set fs = Application.FileSearch
With fs
.LookIn = "C:Fichiers"
.FileName = "P*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
MsgBox .FoundFiles(I)
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
'-----------------------------------

Alors comment faire pour trouver dans un répertoire tous les fichiers
qui ne contiennent pas dans leurs noms la lettre "P" par exemple ?


Merci.
MichDenis
Le #5143181
Ceci est plus simple et plus rapide :

'--------------------------
Sub test()

Dim Repertoire As String
Dim Fichier As String

Repertoire = "C:Fichiers" ' à déterminer

'si tu veux avoir tous les fichiers nonobstant le type d'extention
'Fichier = Dir("c:" & "*.*")

Fichier = Dir("c:" & "*.xls")
Do While Fichier <> ""
If Mid(Fichier, 1, 1) <> "P" Then
MsgBox Fichier
End If
Fichier = Dir()
Loop
End Sub
'--------------------------



"MichDenis"
Cette procédure est sensible à la case...
elle élimine les fichiers qui débutent par "P"

La fonction Split() utilisée dans cette procédure
requiert la version excel 2000 ou plus récent.

Sub ChercheFichier()
Dim Zz As String
Set fs = Application.FileSearch
With fs
.LookIn = "C:"
'.Filename = "*c*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
Zz = Split(.FoundFiles(I), "")(UBound(Split(.FoundFiles(I), "")))
If Mid(Zz, 1, 1) <> "P" Then
MsgBox zz
End If
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub



"Apitos"

Bonsoir à tous,

Cette macro est pour rechercher tous les fichiers dont leurs noms
commencent par "P" :

'-------------------------------------
Sub ChercheFichier()
Set fs = Application.FileSearch
With fs
.LookIn = "C:Fichiers"
.FileName = "P*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
MsgBox .FoundFiles(I)
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
'-----------------------------------

Alors comment faire pour trouver dans un répertoire tous les fichiers
qui ne contiennent pas dans leurs noms la lettre "P" par exemple ?


Merci.
MichDenis
Le #5143101
Je suppose que cette ligne de code :
Fichier = Dir("c:" & "*.xls")

devrait surtout se lire comme suit :

Fichier = Dir(Repertoire & "*.xls")



"MichDenis" %
Ceci est plus simple et plus rapide :

'--------------------------
Sub test()

Dim Repertoire As String
Dim Fichier As String

Repertoire = "C:Fichiers" ' à déterminer

'si tu veux avoir tous les fichiers nonobstant le type d'extention
'Fichier = Dir("c:" & "*.*")

Fichier = Dir("c:" & "*.xls")
Do While Fichier <> ""
If Mid(Fichier, 1, 1) <> "P" Then
MsgBox Fichier
End If
Fichier = Dir()
Loop
End Sub
'--------------------------



"MichDenis"
Cette procédure est sensible à la case...
elle élimine les fichiers qui débutent par "P"

La fonction Split() utilisée dans cette procédure
requiert la version excel 2000 ou plus récent.

Sub ChercheFichier()
Dim Zz As String
Set fs = Application.FileSearch
With fs
.LookIn = "C:"
'.Filename = "*c*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
Zz = Split(.FoundFiles(I), "")(UBound(Split(.FoundFiles(I), "")))
If Mid(Zz, 1, 1) <> "P" Then
MsgBox zz
End If
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub



"Apitos"

Bonsoir à tous,

Cette macro est pour rechercher tous les fichiers dont leurs noms
commencent par "P" :

'-------------------------------------
Sub ChercheFichier()
Set fs = Application.FileSearch
With fs
.LookIn = "C:Fichiers"
.FileName = "P*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont été trouvés."
For I = 1 To .FoundFiles.Count
MsgBox .FoundFiles(I)
Next I
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
'-----------------------------------

Alors comment faire pour trouver dans un répertoire tous les fichiers
qui ne contiennent pas dans leurs noms la lettre "P" par exemple ?


Merci.
Apitos
Le #5143071
Merci MichDenis,
Apitos
Le #5143051
Merci MichDenis,

Dans mon répertoire, j'ai un fichier Excel qui utilise d'autres
fichiers DOS (Sans extension).

Les fichiers DOS se trouvent forme de :

- B* (B5, B6, B7)
- P* (P B5, P B6, P B7, P TI)
- TI

Comme les fichiers B* et TI contiennent les mêmes sortes de données.
Alors ils devront être décomptés ensemble.

De mme pour les fichiers P*.

(Soit 4 fichiers entre les B* et TI et 4 autres fichiers pour les P*)

Comment devra être le code dans ce cas ?

Merci.
MichDenis
Le #5143021
Si tu veux dénombrer les fichiers qui débutent par les lettres "D" et "P"
et ce nonobstant l'extension du fichier, procéde de cette façon en adaptant
la procédure selon ce que tu désires.


'----------------------------------------------
Sub test()

Dim Repertoire As String
Dim Fichier As String, A As Integer
Dim Arr(), TypeFichier as string

' la première lettre des fichiers à retnir
Arr = Array("D", "P")

'Le répertoire où la procédure doit scanner les fichiers
Repertoire = "c:ATravail" ' à déterminer

For Each elt In Arr
'Tu modifies la ligne suivante si tu veux une extension particulière de fichier
typefichier = elt & "*.*"
Fichier = Dir(Repertoire & typefichier)

Do While Fichier <> ""
a = a + 1
MsgBox Fichier
Fichier = Dir()
Loop
Next
MsgBox a & " fichiers "

End Sub
'----------------------------------------------




"Apitos"
Merci MichDenis,

Dans mon répertoire, j'ai un fichier Excel qui utilise d'autres
fichiers DOS (Sans extension).

Les fichiers DOS se trouvent forme de :

- B* (B5, B6, B7)
- P* (P B5, P B6, P B7, P TI)
- TI

Comme les fichiers B* et TI contiennent les mêmes sortes de données.
Alors ils devront être décomptés ensemble.

De mme pour les fichiers P*.

(Soit 4 fichiers entre les B* et TI et 4 autres fichiers pour les P*)

Comment devra être le code dans ce cas ?

Merci.
Apitos
Le #5143011
Re,

Avec ton code, je n'aurais pas de problème pour ceux qui débuteront
par un "P*" ou un "B*"

Mais avec celui qui commence par un "TI" ....
MichDenis
Le #5143001
| Mais avec celui qui commence par un "TI" ....

Faut quand même faire un petit effort de compréhension :

Regarde cette ligne de code dans la procédure :
' la première lettre des fichiers à retnir
Arr = Array("D", "P")

Tu n'as qu'à modifier le "D" pour "TI" ou tout autre combinaison de lettre !
Tu peux allonger la liste de 2 à 25 ou 50 ou réduire à liste à 1 si tu le
désires en autant que tu respectes la syntaxe de base.

N'oublie pas que la limitation se situé au lettre de départ des noms de fichiers !

La procédure n'est pas sensible à la casse des caractères que tu choisis.
Apitos
Le #5140731
Bonjour MichDenis,

Oui je t'ai bien compris.

Mais comme je te l'ai déjà dis, je dois comptabiliser le fichier "TI"
avec ceux des fichiers "B*" parce qu'ils ont la même structure est les
mêmes types de données.

Pour les fichiers "P*", le problème est réglé puisqu'il commencent
tous par la même lettre.

J'utilise les nombres de chaque groupe de fichiers dans des boucles
pour afficher les données extraites, un tableau pour chaque fichier,
dans deux colonnes différentes.

Une colonne pour les "B*" + TI

Une autre pour ceux des "P*"

As-tu une idée pour résoudre ce problème ?

Merci.
MichDenis
Le #5140681
| Mais comme je te l'ai déjà dis, je dois comptabiliser le fichier "TI"
| avec ceux des fichiers "B*" parce qu'ils ont la même structure est les
| mêmes types de données.

Qu'est-ce que cela veut dire ? Donne un exemple et ce que tu attends
comme réponse.... moi je n'y comprends rien !






"Apitos"
Bonjour MichDenis,

Oui je t'ai bien compris.

Mais comme je te l'ai déjà dis, je dois comptabiliser le fichier "TI"
avec ceux des fichiers "B*" parce qu'ils ont la même structure est les
mêmes types de données.

Pour les fichiers "P*", le problème est réglé puisqu'il commencent
tous par la même lettre.

J'utilise les nombres de chaque groupe de fichiers dans des boucles
pour afficher les données extraites, un tableau pour chaque fichier,
dans deux colonnes différentes.

Une colonne pour les "B*" + TI

Une autre pour ceux des "P*"

As-tu une idée pour résoudre ce problème ?

Merci.
Publicité
Poster une réponse
Anonyme