Sub ou function non définie

Bonjour,

j’ai un petit problème avec une macro
la voici:

Sub ExempleTestOuvertureClasseur()
'par: https://excel-malin.com
Dim Verification As Boolean
Dim MonClasseur As String
Dim NomClasseur As String

MonClasseur = "C:\Users\Michel\Desktop\Excel Forum\Calcule_en_Vba_v001.xlsm"
NomClasseur = "Calcule_en_Vba_v001.xlsm"
'd'abord le test si le fichier existe
If Len(Dir(MonClasseur)) = 0 Then 's'il n'existe pas, montrer un avertissement et quitter la macro
    MsgBox "ERREUR: Le Classeur: [" & MonClasseur & "] n'existe pas..."
    Exit Sub
Else
End If

'si le Classeur existe, vérifier s'il est déjà ouvert
Verification = EstClasseurOuvert(MonClasseur)

If Verification = True Then
    If MsgBox("Le Classeur: [" & NomClasseur & "] est déjà ouvert..., Voulez-vous le fermer ?", vbYesNo, "Demande de confirmation") = vbYes Then
    
      Workbooks(NomClasseur).Close False
    End If
Else
    MsgBox "Le Classeur: [" & NomClasseur & "] n'est pas ouvert..."
End If

End Sub

cette macro est déjà insérée dans un classeur excel et fonctionne parfaitement. je voudrais l’insérée dans un autre classeur, j’ai donc fait un copier coller, mais lorsque je lance la macro dans cet autre classeur j’ai un message d’erreur qui s’affiche « sub ou function non définie »
pouvez-vous m’aider sur cette erreur ?
merci d’avance

Bonjour,
Bien vérifier que le chemin du classeur soit correct
et que la fonction « EstClasseurOuvert() » soit dans un module du classeur d’où est lancé la macro

merci pour la réponse rapide :+1:

c’est apparemment le cas

« Verification = EstClasseurOuvert(MonClasseur) »
j’ai sur cette ligne « EstClasseurOuvert » qui est surligné en bleu

y a t’il une solution ?

Re,
Ta réponse est dans ma réponse
sur le classeur où la macro fonctionne tu as dans un module (le même ou un autre) une fonction « EstClasseurOuvert » qui doit être copier/coller également
C’est elle qui explore si le classeur existe et est ouvert

merci Mimimathy :grinning:

ça fonctionne…
encore une fois merci :wave:

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.