J'ai une macro qui synthétise les données de classeurs d'un dossier. Je la lance depuis mon classeur "Récap", qui est dans ce dossier.
La partie du code permettant de sélectionner les classeurs est la suivante :
Code:
Chemin = ThisWorkbook.Path & "\"
monfichier = Dir(Chemin & "*.xls")
classeur1 = ActiveWorkbook.Name
Application.DisplayAlerts = False
Do Until monfichier = ""
If monfichier <> classeur1 Then
Mais j'ai un problème : l'utilisation de la macro va changer. Maintenant, le dossier est alimenté en permanence et il faudrait que la macro puisse ne rajouter les onglets que des machines qu'elle n'a pas (et modifier quelques autres bricoles).
-> Quelle procédure utiliser pour tester que monfichier est différent de ceux déjà traités ?
Rebonjour Moulinois,
Désolé de vous le dire mais votre message est incompréhensible. Le code n'apporte pas grand'chose, et il ne sélectionne rien... A+
Do Until monfichier = "" permet de faire les actions de la suite pour tous les fichiers du répertoire. If monfichier <> classeur1 Then permet de faire les actions pour tous les fichiers QUI NE SONT PAS LE CLASSEUR ACTUEL.
Je voudrais éviter aussi de faire ces actions pour les fichiers sur lesquels je les ai déjà faites (dont les noms sont les onglets de mon classeur).
Bonsoir Moulinois,
Bon maintenant je comprends ce que vous voulez.
Je vous propose d'ajouter les lignes de code en rouge :
Chemin = ThisWorkbook.Path & "\"
monfichier = Dir(Chemin & "*.xls")
classeur1 = ActiveWorkbook.Name
Application.DisplayAlerts = False On Error Resume Next
Do Until monfichier = "" test = ""
test = Sheets(monfichier).Name
If monfichier <> classeur1 And test = "" And monfichier <> "" Then
'--------------
End If
monfichier = Dir 'cela va sans dire...
Loop