PB pour écrire dans une cellule via VBA

pedrofabien1986

XLDnaute Nouveau
Bonjour,

Je suis nouveau dans ce forum et après recherche, je n'arrive pas à écrire dans une cellule via vba.

Ce que je veux faire et de vérifier si le fichier demander est existant.

voici le code dans ma cellule C9:

=TestFichier(D9)

Donc la je fais appel à la vba et je lui demande d'écrire dans la D9

et voici mon code dans mon module :

Function TestFichier$(ByVal CelRef As Range)

Dim Fichier$
If Dir("N:\Projets en cours\Divers\Divers-Checkliste.xlsm") = "" Then
Range(CelRef ).Select = ("Fichier existant")

Else
Range(CelRef ).Select = ("Pas de Fichier")
End If
End Function

Merci D'avance
 

Efgé

XLDnaute Barbatruc
Re : PB pour écrire dans une cellule via VBA

Bonjour pedrofabien1986,
Essai ceci dans un module standart:
VB:
Function TestFichier(ByVal CelRef As Range) As String
Application.Volatile
Dim fichier As String
fichier = CelRef.Value
If Dir(fichier) = "" Then
    TestFichier = "Pas de Fichier"
Else
    TestFichier = "Fichier existant"
End If
End Function
Cordialement

EDIt :
Et bienvenu sur le forum... ...je n'avais pas fais attention.
 

Pièces jointes

  • pedrofabien1986(1).xls
    18 KB · Affichages: 43

job75

XLDnaute Barbatruc
Re : PB pour écrire dans une cellule via VBA

Bonjour pedrofabien1986, bienvenue sur XLD, salut Efgé :)

Si dans la cellule il n'y a que le nom du fichier Excel, sans l'extension :

Code:
Function TestFichier$(CelRef As Range)
Dim chemin$
chemin = "N:\Projets en cours\Divers\" 'ThisWorkbook.Path & "\" (plus facile à tester)
If Dir(chemin & CelRef & ".xls*") <> "" Then
TestFichier = "Fichier existant"
Else
TestFichier = "Pas de Fichier"
End If
End Function
Permet de tester les fichiers .xls .xlsx .xlsm

A+
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : PB pour écrire dans une cellule via VBA

Re pedrofabien1986, Bonjour job75 :),
De mon coté, on peux réduire :
VB:
Function TestFichier(CelRef As Range) As String
On Error Resume Next 'si CelRef =""
TestFichier = IIf(Dir(CelRef.Value) = "", "Pas de Fichier", "Fichier existant")
End Function
Cordialement
 
Dernière édition:

TempusFugit

XLDnaute Impliqué
Re : PB pour écrire dans une cellule via VBA

Bonjour

Une variation de ce qui a été réduit pour tromper l'ennui d'un aprés-midi pluvieux.
Code:
Function TestFichier(CelRef As Range) As String
On Error Resume Next 'si CelRef =""
TestFichier = "Fichier " & IIf(Dir(CelRef.Text) = "", "in", "") & "existant."
End Function
 

Discussions similaires

Réponses
1
Affichages
144