Erreur de compilation sub ou function non definie

Dremzer66 -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai crée une macro, de part magie elle ne marche plus, lorsque je veux enregister des données.
La page du language VBA s'ouvre et m'affiche, le message suivant:

Erreur de compilation
Sub ou Function non définie

Mais le plus etrange c'est que Excel me surligne en bleu ESTOUVERT

Si oui, enregistrement de la demande dans la BDD
If Corr = vbYes Then
ThisWorkbook.Worksheets("Création de la demande").Range("B22:G22").Select
Selection.Cut
If Not EstOuvert("V:\Condition_Stand\Fiche_conditionnement\Ficher Matrice.xlsx") Then
Workbooks.Open Filename:= _
"V:\Condition_Stand\Fiche_conditionnement\Fichier Matrice.xlsx"
Else: Application.Wait Now + TimeValue("0:00:10")
ActiveWorkbook.Worksheets("BDD Demandes").Range("A1").Select
k = Selection.End(xlDown).Row
ActiveSheet.Cells(k + 1, 1).Select
ActiveSheet.Paste
ActiveSheet.Cells(k + 1, 9).Select
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
ActiveWorkbook.Save
ActiveWindow.Close

1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Ta macro ne devait pas être seule dans son module...
    Il devait y avoir une fonction EstOuvert...
    Un peu comme ceci :

    Sub TaProcedure()
    
    'Si oui, enregistrement de la demande dans la BDD
    If Corr = vbYes Then
    ThisWorkbook.Worksheets("Création de la demande").Range("B22:G22").Select
    Selection.Cut
    If Not EstOuvert("V:\Condition_Stand\Fiche_conditionnement\Ficher Matrice.xlsx") Then
    Workbooks.Open Filename:= _
    "V:\Condition_Stand\Fiche_conditionnement\Fichier Matrice.xlsx"
    Else: Application.Wait Now + TimeValue("0:00:10")
    ActiveWorkbook.Worksheets("BDD Demandes").Range("A1").Select
    k = Selection.End(xlDown).Row
    ActiveSheet.Cells(k + 1, 1).Select
    ActiveSheet.Paste
    ActiveSheet.Cells(k + 1, 9).Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    ActiveWorkbook.Save
    ActiveWindow.Close
    End Sub

    Function EstOuvert(Fichier As String) As Boolean
    On Error Resume Next
    Workbooks(Fichier).Activate
    If Err <> 0 Then EstOuvert = False Else EstOuvert = True
    On Error GoTo 0
    End Function
    0