Rechercher l'existence d'un classeur

gianluca

XLDnaute Occasionnel
Hello les gens...

Bon, j'ai cherché, et j'ai trouvé un peu, mais il me reste un blème.

Je voudrais tester l'existence d'un fichier. Mes recherches dans cette mine d'or qu'est le forum m'on permis de trouver la fonction FileExiste
Function FileExiste(FileName As String) As Boolean
FileExiste = Dir(FileName) <> ""
End Function

qui hier me donnait bien ce que je voulais.

Mais voilà... boum badaboum... aujourd'hui j'ai un souci. Comment indiquer dans quel répertoire tester l'existence du fichier recherché. (Ce matin je me retrouve dans mes documents au lieu de D:\Temp)

Ce qui m'intéresse c'est de savoir si on peut indiquer un Répertoire de travail à Dir... (J'avoue l'aide de VBA m'a semblée barbare.... en fit j'ai rien pané ;) )

mon PB: si le fichier existe, je l'écrase, sinon je lui donne un nom et je l'enregistre.

Voili, Voilou....

j'ai donc bien besoin de votre aide...:eek:

Merci à vous et bonne journée

Gianluca
 

ChTi160

XLDnaute Barbatruc
Re : Rechercher l'existence d'un classeur

Salut
Bonjour le forum

une autre façon en indiquant le chemin
Test_Chemin_Fichier peut avoir comme valeur une constante
"C:\" etc etc
Test_Chemin_Fichier peut avoir comme valeur le chemin du fichier d'ou est lancé la recherche
Test_Chemin_Fichier=ThisWorkBook.path & "\ Nom du fichier à rechercher"
un extrait d'une procèdure qui utilise cette méthode qui vérifie l'existance d'un fichier s'il n'hexiste pas message s'il existe on l'ouvre .

Code:
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'inibe 'l alerte si classeur déjà ouvert
           [COLOR=Blue]Fichier_Existe[/COLOR] = [COLOR=Red]False[/COLOR]
[I][B]Test_Chemin_Fichier[/B][/I] = ThisWorkbook.Path & "\Matos_en_Equipe_Local.xls"
           Test_Existe Test_Chemin_Fichier, Fichier_Existe
If Fichier_Existe = [COLOR=Red]False[/COLOR] Then 's'il n'existe pas [COLOR=Blue]message[/COLOR] et sortie

   MsgBox "Le Classeur BdB.xls n'hexiste pas": Exit Sub
   Else  's'il existe on l'ouvre
       [COLOR=Blue]Workbooks.Open[/COLOR] ([B][I]Test_Chemin_Fichier[/I][/B])
    
  End If
Application.DisplayAlerts = True 'remise en service de l'alerte
Application.ScreenUpdating = True  'remet en fonction le défilement des fenêtres
Code:
Public Sub Test_Existe(Chemin_Classeur As String, Existe As Boolean)
If Dir(Chemin_Classeur, vbNormal) = "" Then
  Existe =[COLOR=Red]False[/COLOR] '[COLOR=Green]le fichier n'existe pas[/COLOR]
   Else
  Existe = [COLOR=Red]True[/COLOR]  '[COLOR=Green]le fichier existe[/COLOR]
End If
End Sub
en espèrant avoir pu t'aider
Arfff pas vu Salut Wilfried Excuse
Bonne Journée
 

gianluca

XLDnaute Occasionnel
Re : Rechercher l'existence d'un classeur

Bonjour Wilfried, Bonjour Jean-Marie,
Re le forum

Merci à vous de vos réponses.
J'avais bien vu dans l'aide l'utilisation de Dir avec le chemin mais je ne comprenais pas trop le fonctionnement.
C'est la solution que je vais utiliser, (Pardon Wilfried, mais j'avais oublié de préciser que D:\Temp n'est que temporaire et que je ne sais pas où ma petite soeur (Eh oui... :) , c'est pour elle) rangera le fichier sur son PC...).

Bonne journée à vous, je vais de ce pas mettre en application...

Amicalement

Gianluca.
 

gianluca

XLDnaute Occasionnel
Re : Rechercher l'existence d'un classeur

Re everybody...


Pffttt.... l'orage a fait explosé le cinéma. Mais me revoilou.

Impec pour tester l'existence du fichier. (Merci les amis)

un autre souci maintenant :) la sauvegarde.

la procédure ci-dessous n'est pas appréciée par VBA :D (Passage en gras)
et je ne fais pas la différence entre entre SaveCopyAs et SaveAs :confused:
et (ben oui, on ne m'arrête plus) j'ai toujours le souci de récupérer le path pour sauvegarder dans le même repertoire...

et.... ben je rame...:p


Private Sub Sauvegarde()
Dim NomFichier As String
Dim FileName As String
Dim RepArchivage As Integer
Dim i As Integer
Dim Derligne As Long


RepArchivage = MsgBox(" OK pour lancer la procédure d'archivage des données." _
& Chr(10) & Chr(10) & "Les présences seront effacées pour l'année en cours." _
& Chr(10) & "Procédure à utiliser en fin d'année scolaire. " _
, vbOKCancel + vbQuestion + vbDefaultButton2, "Suivi de Facturation - Garderie")

Select Case RepArchivage
Case 1
CBSaisies.Enabled = False
CBModifications.Enabled = False
CBEAjouter.Enabled = False
CBEModifier.Enabled = False
CBESupprimer.Enabled = False
CBArchivages.Enabled = False

NomFichier = "Garderie" & " " & Sheets("Menu").Range("G11") & ".xls"
Sheets("Menu").Range("E13").Select
With Selection
.Value = "ARCHIVES"

' là il me faut trouver les commandes pour formater la cellule...

End With

If Existe Then 'le fichier de sauvegarde existe déjà

'là il me faut sauvegarder le classeur.

Else: ActiveWorkbook.SaveCopyAs FileName:=ThisWorkBook.Path \ NomFichier
End If

' For i = 4 To ThisWorkbook.Sheets.Count 'efface les données des
différentes feuilles
' With Sheets(i)
' Derligne = .Range("A65536").End(xlUp).Row
' .Range("C4:F" & Derligne).Select
' .Selection.Clear
' Next i
' End With

CBSaisies.Enabled = True
CBModifications.Enabled = True
CBEAjouter.Enabled = True
CBEModifier.Enabled = True
CBESupprimer.Enabled = True
CBArchivages.Enabled = True

Case 3
Exit Sub
End Select
End Sub


Merci à vous...
Amicalement

Gianluca
 

gianluca

XLDnaute Occasionnel
Re : Rechercher l'existence d'un classeur

Arf.... re Tout le monde

Je remonte le fil pour une petite dernière question avant l'apéro...

Je m'arrache les cheveux avec ce code

For i = 4 To ThisWorkbook.Sheets.Count
'efface les données des différentes feuilles
With Sheets(i)
Derligne = .Range("A65536").End(xlUp).Row
.Range("C4:F" & Derligne).Select
Selection.Clear
End With
Next i

Marche pas.... et je comprneds pas pourquoi... :mad:

A l'aide les amis... :)
 

ChTi160

XLDnaute Barbatruc
Re : Rechercher l'existence d'un classeur

Salut gianluca
Bonsoir le Forum
j'espère que tu as terminé l'apero Lol

voilà ce que j'ai mis et qui fonctionne
Code:
With Sheets(i)
Derligne = .Range("A65536").End(xlUp).Row
             [COLOR=blue] .Range("A1:C" & Derligne).ClearContents[/COLOR]
Bonne Nuit
 

Statistiques des forums

Discussions
312 590
Messages
2 090 040
Membres
104 354
dernier inscrit
Chass