par , 29/07/2023 � 09h39 (10137 Affichages)
Introduction
Lorsqu'on travaille avec des fichiers dans un environnement de programmation, une question fondamentale se pose souvent : comment savoir si un fichier existe avant de tenter d'y acc�der ? Cette interrogation, bien que simple en apparence, est cruciale pour �viter les erreurs et les exceptions inattendues dans nos programmes. Dans le monde de la programmation VBA (Visual Basic for Applications), cette question prend une importance particuli�re. En effet, VBA est souvent utilis� pour automatiser des t�ches li�es aux fichiers dans des applications comme Excel, Word et Access.
Dans cet article, nous allons explorer une fonction g�n�rique en VBA qui permet de v�rifier l'existence d'un fichier avant d'essayer de l'ouvrir, de le lire, de l'�crire ou de le supprimer. Cette fonction renvoie simplement True si le fichier existe, et False dans le cas contraire. Bien que petite, cette fonction est incroyablement utile et peut grandement am�liorer la robustesse de vos scripts VBA. Alors, plongeons dans le code et voyons comment cela fonctionne.
Petite pr�cision et merci � Laurent_Ott de m'avoir signal� cet oubli, si un fichier est cach�, la fonction IsFileExistFullName renverra False
Code de la fonction
L'argument FullName doit contenir le nom et le chemin complet du fichier
1 2 3 4
| Function IsFileExist(FullName As String) As Boolean
' Vérifie l'existence d'un fichier
IsFileExist = Dir(FullName) <> ""
End Function |
Exemple d'une proc�dure VBA Excel qui l'invoque
Dans cet exemple, nous allons invoquer la fonction IsFileExist pour v�rifier l'existence du fichier nomm� "Bilan". Ce fichier doit �tre sauvegard� dans le r�pertoire o� se trouve le fichier Excel contenant le code VBA. Si le fichier existe d�j�, une bo�te de dialogue s'ouvrira pour demander � l'utilisateur s'il souhaite remplacer le fichier existant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Sub Main()
Const FileName As String = "Bilan.xlsx"
Const Message As String = "Voulez-vous remplacer le fichier"
Dim fn As String ' Nom complet du fichier
Dim fl As Boolean
Dim e As Byte
fn = ThisWorkbook.Path & Application.PathSeparator & FileName
'
fl = Not IsFileExist(fn)
If Not fl Then
fl = (MsgBox(Message, vbYesNo + vbDefaultButton2) = vbYes)
End If
If fl Then
' Code pour exporter ou sauver le fichier
End If
End Sub |
Explorez davantage la fonction Dir avec mes autres billets