Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

13 réponses
Avatar
Apitos
Bonsoir =E0 tous,

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

'-------------------------------------
Sub ChercheFichier()
Set fs =3D Application.FileSearch
With fs
=2ELookIn =3D "C:\Fichiers"
=2EFileName =3D "P*"
If .Execute > 0 Then
MsgBox .FoundFiles.Count & " Fichier(s) ont =E9t=E9 trouv=E9s."
For I =3D 1 To .FoundFiles.Count
MsgBox .FoundFiles(I)
Next I
Else
MsgBox "Aucun fichier n'a =E9t=E9 trouv=E9."
End If
End With
End Sub
'-----------------------------------

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


Merci.

10 réponses

1 2
Avatar
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" a écrit dans le message de news:


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.
Avatar
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" a écrit dans le message de news:

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" a écrit dans le message de news:


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.
Avatar
MichDenis
Je suppose que cette ligne de code :
Fichier = Dir("c:" & "*.xls")

devrait surtout se lire comme suit :

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



"MichDenis" a écrit dans le message de news:
%
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" a écrit dans le message de news:

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" a écrit dans le message de news:


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.
Avatar
Apitos
Merci MichDenis,
Avatar
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.
Avatar
MichDenis
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" a écrit dans le message de news:

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.
Avatar
Apitos
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" ....
Avatar
MichDenis
| 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.
Avatar
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.
Avatar
MichDenis
| 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" a écrit dans le message de news:

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.
1 2