Erreur de compilation sub ou function non definie

Fermé
Dremzer66 - 15 nov. 2013 à 11:41
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 15 nov. 2013 à 15:23
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

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
15 nov. 2013 à 15:23
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