Tester Presence Classeur

  • Initiateur de la discussion Initiateur de la discussion whooki
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

whooki

XLDnaute Occasionnel
Bonjour à tous,

Je souhaiterais réaliser une macro pour tester la présence d’un fichier dans un dossier. Si le classeur est déjà crée dans ce dossier, je souhaiterais avoir une MSGBOX qui m’indiquerais la présence de celui-ci et me proposerais l’ouverture ou non du fichier. En cliquant sur non, je souhaiterais qu’il sauvegarde ce fichier sous un autre nom que le premier classeur toto.xls, par exemple= toto(2).xls.
A savoir que je dois vérifier la présence de ce classeur depuis une cellule de ma feuille en A1, et mon dossier par défaut serait alors c:\ devis.

Merci par avance de votre aide.
 
Re : Tester Presence Classeur

Bonjour whooki,

Pour vérifier l'existence d'un fichier :

Code:
Function FicExiste(CheminComplet As String) As Boolean
Dim fs
    FicExiste = False
    Set fs = CreateObject("Scripting.FileSystemObject")
    FicExiste = fs.fileExists(CheminComplet)
End Function

tu pourras l'appeler ensuite comme ça :
Code:
if FicExiste("c:\devis\toto.xls") then
 
Re : Tester Presence Classeur

Merci de ta réponse cependant je ne sais pas trop ou mettre ce code.
En faite je souhaiterais avoir un bouton nommé test, qui vérifie la présence du classeur dans le dossier DEVIS sur c:\, depuis la cellule A1 de ma feuille 1. Et je ne sais pas du tout ou placer le code que tu écrit ci-dessus.
Merci encore de ton aide.
 

Pièces jointes

Re : Tester Presence Classeur

Bonjour le fil,

Voici une proposition avec "FileSearch":

Code:
[FONT=Arial][SIZE=2][FONT=Arial]Sub rechfich()[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]rep = "C:\devis"[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]With Application.FileSearch[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]    .LookIn = rep[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]    .SearchSubFolders = False[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]    .Filename = Range("A1").Value & ".xls"[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]    .FileType = msoFileTypeExcelWorkbooks[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]    If .Execute > 0 Then[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][/SIZE][/FONT][FONT=Arial][SIZE=2][FONT=Arial]ans = MsgBox("Le fichier " & .FoundFiles(1) & " existe dans " & rep & ". Cliquez sur ""oui"" pour l'ouvrir ou ""non"" pour faire une copie.", vbYesNo + vbInformation)[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][/SIZE][/FONT][FONT=Arial][SIZE=2][FONT=Arial]If ans = vbYes Then[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]          Workbooks.Open .FoundFiles(1)[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]        Else[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]          FileCopy .FoundFiles(1), rep & "\" & Range("A1").Value & "(2).xls"[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][/SIZE][/FONT][FONT=Arial][SIZE=2][FONT=Arial]End If[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]    Else[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]      MsgBox "Le fichier " & .Filename & " n'existe pas dans " & rep & ".", vbExclamation[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][/SIZE][/FONT][FONT=Arial][SIZE=2][FONT=Arial]End If[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]End With[/FONT][/SIZE][/FONT]
[FONT=Arial][SIZE=2][/SIZE][/FONT]
[FONT=Arial][SIZE=2][FONT=Arial]End Sub[/FONT][/SIZE][/FONT]

NB: la cellule doit avoir le nom du fichier sans l'extension ".xls"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
494
Retour