Erreur compil sub ou funciton non définie

Bonjour,

Et bonne année à tous.

Il y a plusieurs années, vous m'avez bien aidé sur plusieurs macro (Excel 2003). Aujourd'hui, j'ai été amenée à apporter des modifications très simples à l'une d'entre elle puisqu'il ne s'agit que de modifier la désignation de certaines cellules d'un fichier source (ex : à la place de B6, la modif donnera E6).

Mais comme l'ancienne macro reste d'actualité pour les anciens dossiers, j'en ai modifié le nom ; l'ancienne macro nommée déclaration devient "déclaration new".

Losrque mon classeur s'ouvre et que j'appuie sur le bouton "activer les macros", j'ai le message d'erreur suivant : "Erreur de compilation – Sub ou Function non définie". La page de code qui apparait est la suivante : Private sub workbook_open - déclaration (ancien nom de ma macro) – End sub.

Je ne sais pas comment faire cette modification.

Quelqu'un pourrait-il m'aider à nouveau ?

Connaissant bien votre efficacité, je vous remercie par avance.

Cordialement.

Nyre

Bonjour,

Si tu cites du code, copie-le à partir du module pour le coller dans le post, et mets-le sous balise Code !!!

Si tu appelles une procédure qui n'existe plus, l'erreur est inévitable !

Bonjour,

Il te suffit de mettre le nouveau nom que tu as donné à la macro

Bonjour MFerrand et M12,

Et merci de réagir aussi vite. MFerrand, je joins les code macro : l'original et le modifié.

M12 lorsque la page "private sub workbook" appararait avec le message d'erreur, si je modifie le nom, à la première ouverture suivante du classeur, j'ai une erreur 9. et la macro qui s'exécute, ne me donne pas les résultats escomptés. Je me demande si ce n'est pas l'ancienne macro qui tourne...

Sur quelle ligne ?

En attendant, une version plus compacte de ta macro :

Sub Calcul_déclaration_NEW()
    Dim fOrig As Worksheet, plS, plC, fD%, i%, ch$, fich$
    ch = "E:\Mes documents\Comptes\Prévision salaires indiv\Impôts\Déclaration\" 'à vérifier
    fich = "Récap déclaration NEW.xls"
    plS = Split("E6 K6 Q6 E24 K24 Q24 W24")
    plC = Split("B8 D8 C8")
    Application.ScreenUpdating = False
    Set fOrig = Workbooks.Open(ch & fich).Worksheets("Base NEW")
    With ThisWorkbook
        For fD = 1 To 7
            With .Worksheets(fD)
                .Unprotect '?
                For i = 0 To 2
                    .Range(plC(i)).Resize(12).Value = fOrig.Range(plS(fD - 1)) _
                     .Offset(, i).Resize(12).Value
                Next i
                .Protect '?
            End With
        Next fD
    End With
    Workbooks(fich).Close False
End Sub

Pour ton erreur 9, le problème pourrait venir de là :

("E:\DOC E\Mes documents\Comptes\Prévision salaires indiv\Impôts\Déclaration\Récap déclaration NEW.xls")

Ce chemin paraît curieux !

Pour MFerrand,

Suite à ta question, j'ai corrigé l'erreur 9 dans mon code.

toutefois sur le nouveau code que tu me propose (et qui est beaucoup trop technique pour que je comprenne), l'erreur 9 apparait sur la ligne suivante : Set fOrig = Workbooks.Open(ch & fich).Worksheets("Base NEW").

a +

Ce que je disais ! Tu as vérifié l'exactitude du chemin et du nom de fichier dans le code ?

Oui, le nom du dossier dans lequel est placé le fichier change tous les ans, il prend le numéro de l'année concernée, je l'ai changé.

("E:\DOC E\Mes documents\Comptes\Prévision salaires indiv\Impôts\Déclaration\Récap déclaration NEW.xls")

Ce chemin paraît curieux !

oui, ce n'est pas super propre, mais le chemin est bon. Je l'ai corrigé dans ton code et cette fois ça fonctionne très bien.

Alors si ces 2 codes sont identiques pourquoi celui que j'avais ne marche pas.

En dehors des 2 détails que tu mentionnais, est-ce que tu aurais corrigé une erreur de mon code précédent dans ta nouvelle version, parce que si je dois le modifier une autre fois, le langage utilisé m'est complètement incompréhensible, alors qu'avec le précédent j'arrivais encore à traduire quelques lignes...

Y aurait il un secret

Non je n'ai pas corrigé de références (je les calcule autrement sans énumérer dans la macro que j'ai proposé, mais ce sont tes références). C'est pour ça que (erreur 9 = erreur d'indice) comme aucun indice de tableau je ne vois qu'une erreur dans le nom, quelque part (ça peut être une espace en plus ou en moins, ça suffit...

Ok, j'essaierai de regarder plus en détail plus tard.

En tous cas ta proposition fonctionne parfaitement

Toujours aussi efficaces les intervenants du site...

Rechercher des sujets similaires à "erreur compil sub funciton definie"