Bonjour à tous !

Je me suis mis à étudier VBA pour un projet depuis quelques semaines et j'ai créer une macro me permettant de nettoyer mes fichiers des cellules contenant une valeur spécifique.
Cette macro me demande quel dossier traiter et traite un à un chacun des fichiers de ce dossier. A chaque fois que la macro ouvre un fichier, je dois inscrire la valeur à effacer.
J'aimerais effectuer une modification et je n'y arrive pas, je souhaite indiquer la valeur une fois au début du lancement de ma macro et non pas à chaque ouverture de fichier.

Voici l'ensemble de ma macro, cela pourra aussi servir à d'autres qui pourraient en avoir besoin. Merci de votre aide par avance !!

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Public Chemin, Fich As String, ReponseMsgBox As Variant
                                        .
'routine d'appel depuis le bouton sur feuille
'                                           .
Public Sub SelectionnerRepertoire()
Chemin = FLoadNomDuREP: Chemin = Trim(Chemin): If Chemin = "" Then Exit Sub
If Right(Chemin, 1) <> "\" Then Chemin = Chemin & "\"
DoEvents
'demande de confirmation
M$ = "Traiter tous les Fichiers xls du répertoire suivant :" & vbLf & Chemin & vbLf & vbLf & "Veuillez confirmer ?"
ReponseMsgBox = MsgBox(M$, vbQuestion + vbYesNo, "Traitement des fichiers")
If ReponseMsgBox = vbYes Then
   BoucleDeTraitement ' appel la routine de traitement des fichiers
   MsgBox "Traitement terminé !", vbInformation
Else
   MsgBox "Traitement abandonné !", vbExclamation
End If
End Sub
 
' , &H1&)=avec bouton "créer un nouveau dossier" ... , $H201&)=sans le bouton
'objShell.BrowseForFolder(&H0&, "Sélectionnez un dossier", &H201&, RepDefaut)
Private Function FLoadNomDuREP() As String
Dim objShell As Object, objFolder As Object, REP As String
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Sélectionnez un dossier", &H201&)
If Not objFolder Is Nothing Then
   REP = objFolder.Items.Item.Path
   If Right(REP, 1) <> "\" Then REP = REP & "\"
End If
FLoadNomDuREP = REP
Set objShell = Nothing: Set objFolder = Nothing
End Function
 
'                                                                                         .
 
Private Sub BoucleDeTraitement()            ' la boucle de traitement des fichiers
Application.ScreenUpdating = False
ChDir Chemin
Fich = Dir(Chemin & "*.xls")
Do While Fich <> ""                         ' On effectue la boucle tant qu'il y a un fichier à traiter
  Workbooks.Open Chemin & Fich
  auto_open                                 ' On appel notre macro auto_open
  ActiveWorkbook.Close SaveChanges:=True    ' On ferme le fichier et on sauvegarde les modifications
  Fich = Dir
Loop
Application.ScreenUpdating = True
End Sub
 
Public Sub auto_open()
Dim resultat As String
resultat = InputBox("Valeur contenue dans cellules à nettoyer", "Nettoyage de cellules")
If resultat <> "" Then
    Application.ScreenUpdating = False
    Cells.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Replace What:=resultat, Replacement:="", LookAt:=xlWhole, MatchCase:=True
    Application.ScreenUpdating = True
    End If
End Sub