Tester Presence Classeur

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.
 

tototiti2008

XLDnaute Barbatruc
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
 

whooki

XLDnaute Occasionnel
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

  • toto.xls
    34.5 KB · Affichages: 59
  • toto.xls
    34.5 KB · Affichages: 71
  • toto.xls
    34.5 KB · Affichages: 73

skoobi

XLDnaute Barbatruc
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"
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 947
Membres
103 404
dernier inscrit
sultan87