Bonjour tout le monde.
Je m´excuse pour les accents manquants. Ici en Suede on ne connait que les claviers qwerty...

Voici une macro qui utilise la fonction FileSearch. Elle vient scruter un dossier Data a la recherche d´un fichier ref. Si elle le trouve alors, elle ouvre ce fichier. Sinon, elle le cree.

Pour la plupart des ref cherches mon Filesearch retourne 1 (car elle trouve ce fichier et l´ouvre donc). Cependant pour certaines ref qu´elle ne trouve pas (exemple la reference 11) elle retourne un autre nombre (125,6,27..et jamais 0). J´ai donc remplace dans mon IF " > 0 " par "=1"

Le probleme: Pour la reference 11,
1er lancement de la macro: la reference 11 n´est pas trouve (filsearch retourne 125). La macro cree donc le fichier du nom de la reference 11

2eme lancement: la reference 11 n´est toujours pas trouve et filsearch retourne 126). Il est normal qu´il ne la trouve pas puisque ma condition est "1". Mais alors, Comment puis-je faire? que la macro trouve ou ne trouve pas le fichier, filesearch retourne toujour un entier >0. de plus cet entier est variable selon les des reference cherchees.

J´espere que mes explications sont claires. J´avoue qu´apres 2 jours passes dessus, je suis totalement perdu. Si quelqu´un a une idee...


Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub chercher_data(ref As String)
 
Dim fs
Set fs = Application.FileSearch
With fs
 
    .LookIn = "N:\PLAN\Plan\Supply chain utskick\Min_Max\Data"
    .Filename = ref  
     If .Execute() > 0 Then
 
 
    Workbooks.Open Filename:="N:\PLAN\Plan\Supply chain utskick\Min_Max\Data\" & ref
 
'mon code
 
    Windows(ref).Close
 
 
    Else
'        MsgBox "There were no files found."
        Workbooks.Add
        Chemin = ThisWorkbook.Path & "\Data"
        ActiveWorkbook.SaveAs Filename:="N:\PLAN\Plan\Supply chain utskick\Min_Max\Data\" & ref
        ActiveWorkbook.Close
    End If
End With
 
End Sub