test existence fichier

  • Initiateur de la discussion Initiateur de la discussion titus
  • 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 !

T

titus

Guest
Bonjour


Quelle macro pour savoir si un fichier excel existe?

Voila ou j'en suis et c'est pas top
Sub Enregis()
pn = Worksheets("JANVIER").Range("C5").Value
ChDrive "C"
ChDir "C:\dossiers"
On Error GoTo gError
ThisWorkbook.Sheets.Copy
ActiveWorkbook.SaveAs Filename:=pn & ".xls"
ActiveWorkbook.Close
MsgBox "Le classeur ""Planning de :" & pn & " a été enregistré." & Chr(13) & "Vous pouvez quitter Excel.", vbInformation, "INFORMATION"
gError:
Application.DisplayAlerts = False
'ActiveWorkbook.Close
Exit Sub
End Sub

Si quelqu'un a une idée, merci
 
Bonjour Titus, le forum

Il y a plus simple

Dir$(chemin&nomfichier, vbNormal) renvoie une chaine vide si le fichier n'existe pas et le nom complet si celui ci existe.
Tu peux également utiliser
Dir$(chemin&nomdossier, vbDirectory)
pour tester l'existence d'un répertoire

Cordialement, A+
 
Re bonjour Titus, le forum

Et voila ta macro modifiée, j'ai ajouté une incrémentation automatique du nom.

Cordialement, A+

Sub Enregis()
pn = Worksheets("JANVIER").Range("C5").Value
ChDrive "C"
ChDir "C:\dossiers"
ThisWorkbook.Sheets.Copy

for compteur=1 to 999
if Dir$(chemin & "\" & pn & right("00" & compteur,3) & ".xls", vbNormal)="" then
ActiveWorkbook.SaveAs Filename:=pn & right("00" & compteur,3) & ".xls"
ActiveWorkbook.Close
MsgBox "Le classeur ""Planning de :" & pn & right("00" & compteur,3) & " a été enregistré." & Chr(13) & "Vous pouvez quitter Excel.", vbInformation, "INFORMATION"
exit for
end if
next compteur
End Sub
 
Merci pour votre aide
Mais lorsque que j'éxécute votre code
Message d'erreur suivant
Erreur d'éxécution '1004'
La méthode 'SaveAs' de l'objet' _Workbook' a échoué

(Cela se produit si un fichier existe déja et que je réponds
Non au message d'Excel "Un ficher nommé xxxx.xls existe déja à cet emplacement.Voulez le remplacer)

L'incrémentation ne se fait pas.
Le fichier est ecrasé si je réponds oui

Ce que j'essaye de demander à VBA
si xxxx.xls existe alors message d'excel "un fichier nommé...."
si réponse oui, fichier écrasé
si réponse non sortie de la procédure.

Je ne vois pas le pourquoi de l'erreur 1004
 
Salut Titus, le Forum

il fallait remplacer chemin par "c:\dossiers" pour que le test fonctionne. Du coup, j'ai récrit la macro en enlevant l'inutile, en déclarant les variables et en ajoutant un test s'il n'y a plus d'incrémentation possible pour le fichier

désolé, j'essaierai d'être plus clair dorénavant

Cordialement, A+

Sub Enregis()
Dim PN As String, Chemin As String
Dim Compteur As Integer, Test As Boolean
Chemin = "C:\dossiers"
PN = Worksheets("JANVIER").Range("C5").FormulaR1C1
ThisWorkbook.Sheets.Copy
For Compteur = 1 To 999
If Dir$(Chemin & "\" & PN & Right("00" & Compteur, 3) & ".xls", vbNormal) = "" Then
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & PN & Right("00" & Compteur, 3) & ".xls"
ActiveWorkbook.Close
MsgBox "Le classeur Planning de :" & PN & Right("00" & Compteur, 3) & " a été enregistré." & Chr(10) & "Vous pouvez quitter Excel.", vbInformation, "INFORMATION"
Test = True
Exit For
End If
Next Compteur
If Test = False Then MsgBox "Le classeur Planning de :" & PN & " n'a pu être enregistré." & Chr(10) & "Vérifier le dossier " & Chemin & Chr(10) & "Vérifiez qu'il reste une incrémentation possible de 001 à 999", vbInformation, "INFORMATION"
End Sub
 
Re : Re: test existence fichier

Salut Titus, le Forum

il fallait remplacer chemin par "c:\dossiers" pour que le test fonctionne. Du coup, j'ai récrit la macro en enlevant l'inutile, en déclarant les variables et en ajoutant un test s'il n'y a plus d'incrémentation possible pour le fichier

désolé, j'essaierai d'être plus clair dorénavant

Cordialement, A+

Sub Enregis()
Dim PN As String, Chemin As String
Dim Compteur As Integer, Test As Boolean
Chemin = "C:\dossiers"
PN = Worksheets("JANVIER").Range("C5").FormulaR1C1
ThisWorkbook.Sheets.Copy
For Compteur = 1 To 999
If Dir$(Chemin & "\" & PN & Right("00" & Compteur, 3) & ".xls", vbNormal) = "" Then
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & PN & Right("00" & Compteur, 3) & ".xls"
ActiveWorkbook.Close
MsgBox "Le classeur Planning de :" & PN & Right("00" & Compteur, 3) & " a été enregistré." & Chr(10) & "Vous pouvez quitter Excel.", vbInformation, "INFORMATION"
Test = True
Exit For
End If
Next Compteur
If Test = False Then MsgBox "Le classeur Planning de :" & PN & " n'a pu être enregistré." & Chr(10) & "Vérifier le dossier " & Chemin & Chr(10) & "Vérifiez qu'il reste une incrémentation possible de 001 à 999", vbInformation, "INFORMATION"
End Sub

Merci !
C'est exactement ce que je cherchais, à quelques adaptations près...

Nathalie
 
Re : test existence fichier

Bonjour Solonath

Cela fait plaisir de se faire remercier pour des codes qui datent de neuf ans, comme quoi rien ne se perd sur XLD et tout le monde peut y trouver son bonheur en cherchant un peu.

Cordialement
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
12
Affichages
2 K
soffianne
S
Réponses
13
Affichages
2 K
R
Réponses
0
Affichages
3 K
R
L
Réponses
1
Affichages
1 K
Lucien31
L
Réponses
0
Affichages
703
R
Réponses
15
Affichages
5 K
razorlight
R
M
Réponses
2
Affichages
890
michel90
M
Réponses
6
Affichages
1 K
Retour