Erreur Automation - Défaillance irrémédiable

Bonjour,

20sec-pb.zip (1.03 Mo)

Lorsque j'ouvre mon fichier (Ci-joint) sur mon ordi perso je n'ai aucun souci (Excel 2021 version 2305 (build 16501.20210 Office)) mais lorsque que je l'ouvre sur l'ordi à mon travail (Excel 2016 (16.0.5408.1001)) j'ai un message "Erreur Automation - Défaillance irrémédiable" qui s'affiche et fait planter mon fichier.

PS : J'ai créé via Office RibbonX Editor un onglet "Secrétariat" contenant un menu perso.

Quelqu'un pourrait-il m'aider à trouver d'où vient le problème ?

Merci, cordialement

71305 5fcf4a70254f0776055617 pb

Bonjour Benoit

Voici quelques étapes que vous pouvez suivre pour essayer de résoudre ce problème :

  1. Vérifiez les paramètres de sécurité : Assurez-vous que les paramètres de sécurité d'Excel sur votre ordinateur de travail ne bloquent pas l'exécution de macros ou d'automatisations. Pour ce faire, allez dans "Fichier" > "Options" > "Centre de gestion de la confidentialité" > "Paramètres du Centre de gestion de la confidentialité" et assurez-vous que les options appropriées sont activées.
  2. Désactivez temporairement l'onglet "Secrétariat" : Si le problème persiste, essayez de désactiver temporairement l'onglet "Secrétariat" que vous avez créé pour voir si le fichier s'ouvre correctement sur l'ordinateur de travail. Si cela résout le problème, il se peut que quelque chose dans l'onglet "Secrétariat" ne soit pas compatible avec la version d'Excel utilisée au travail. Vous devrez peut-être revoir le code de cet onglet pour le rendre compatible.
  3. Mettez à jour Excel sur votre ordinateur de travail : La version d'Excel utilisée sur votre ordinateur personnel est plus récente que celle de votre ordinateur de travail. Essayez de mettre à jour Excel sur votre ordinateur de travail vers une version plus récente pour voir si cela résout le problème.
  4. Révisez le code de l'onglet "Secrétariat" : Si désactiver l'onglet "Secrétariat" ne résout pas le problème, examinez attentivement le code que vous avez ajouté à cet onglet. Assurez-vous qu'il ne contient pas de fonctions, de références ou de fonctionnalités qui ne sont pas disponibles dans la version d'Excel utilisée au travail.

Merci stepaustras, j'essaierai de suivre vos instructions dès lundi. Je reviendrai vers le forum à l'issue.

Cordialement

Bonjour,

Je reviens vers vous après vérification des instructions de stepaustras :

Vérifiez les paramètres de sécurité : Assurez-vous que les paramètres de sécurité d'Excel sur votre ordinateur de travail ne bloquent pas l'exécution de macros ou d'automatisations. Pour ce faire, allez dans "Fichier" > "Options" > "Centre de gestion de la confidentialité" > "Paramètres du Centre de gestion de la confidentialité" et assurez-vous que les options appropriées sont activées. Vérifiés et identiques.

Désactivez temporairement l'onglet "Secrétariat" : Si le problème persiste, essayez de désactiver temporairement l'onglet "Secrétariat" que vous avez créé pour voir si le fichier s'ouvre correctement sur l'ordinateur de travail. Si cela résout le problème, il se peut que quelque chose dans l'onglet "Secrétariat" ne soit pas compatible avec la version d'Excel utilisée au travail. Vous devrez peut-être revoir le code de cet onglet pour le rendre compatible. Onglet "Secrétariat" désactivé mais le problème persiste.

Mettez à jour Excel sur votre ordinateur de travail : La version d'Excel utilisée sur votre ordinateur personnel est plus récente que celle de votre ordinateur de travail. Essayez de mettre à jour Excel sur votre ordinateur de travail vers une version plus récente pour voir si cela résout le problème. Impossible car aucun droit Admin.

Révisez le code de l'onglet "Secrétariat" : Si désactiver l'onglet "Secrétariat" ne résout pas le problème, examinez attentivement le code que vous avez ajouté à cet onglet. Assurez-vous qu'il ne contient pas de fonctions, de références ou de fonctionnalités qui ne sont pas disponibles dans la version d'Excel utilisée au travail. Vérifié mais sans solution.

Après différents tests, je me suis aperçu que l'erreur n'arrivait que si enregistrement. Hors je n'ai aucune instruction ni à l'enregistrement , ni à la fermeture de se fichier.

Quelqu'un aurait-il une solution ? Merci.

Bonsoir Benoist,

Je pense que c'est cette macro d’événement qui pose problème dans la feuille secrétariat

Private Sub Worksheet_Change(ByVal Target As Range)
'Rafraichit le bouton personnalisé
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton1"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton2"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton3"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton4"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton5"
End Sub

Tu pourrais essayer ça

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    ' Rafraîchit le bouton personnalisé
    If Not objRuban Is Nothing Then
        objRuban.InvalidateControl "Verifbutton1"
        objRuban.InvalidateControl "Verifbutton2"
        objRuban.InvalidateControl "Verifbutton3"
        objRuban.InvalidateControl "Verifbutton4"
        objRuban.InvalidateControl "Verifbutton5"
    End If
    On Error GoTo 0
End Sub

Bonjour,

Perso, et à voir la 1ère photo, je n'aurais qu'une solution, tout refaire.

Le fichier est "vérolé", et va à court, voire très court, terme, ne plus du tout s'ouvrir...

Tant que tu peux, fais une copie de tes onglets encore "sains"

Une image des "CodeName" tels qu'ils devraient apparaître...

image

Bon courage

Dans la même feuille celle ci aussi

Private Sub Worksheet_Activate()
Sheets("SECRETARIAT").Cells.Delete Shift:=xlUp
'Rafraichit le bouton personnalisé
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton1"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton2"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton3"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton4"
If Not objRuban Is Nothing Then objRuban.InvalidateControl "Verifbutton5"
End Sub

par

Private Sub Worksheet_Activate()
    On Error Resume Next ' Ignore les erreurs temporairement

    ' Supprimer les cellules de la feuille "SECRETARIAT" en décalant vers le haut
    Sheets("SECRETARIAT").Cells.Delete Shift:=xlUp

    On Error GoTo 0 ' Réactive la gestion des erreurs

    ' Rafraîchir le bouton personnalisé
    If Not objRuban Is Nothing Then
        objRuban.InvalidateControl "Verifbutton1"
        objRuban.InvalidateControl "Verifbutton2"
        objRuban.InvalidateControl "Verifbutton3"
        objRuban.InvalidateControl "Verifbutton4"
        objRuban.InvalidateControl "Verifbutton5"
    End If
End Sub

Fait une copie de ton fichier chez toi, applique les modifications énoncées et essai le a ton travail.

Si cela ne fonctionne pas:

Ouvre la fenêtre de l'éditeur de code VBA,
Barre des menus / outils / références /

Si tu as des références marquées "Manquantes", tu les décoches.

Il y en avait-il?

Sinon c'est sur une formule d'une autre feuille qu'il peux y avoir le problème

Je t'ai refais ton classeur avec les modif avec excel 2016 et bizarrement j'obtiens la même erreur

10nouveau-classeur.zip (447.55 Ko)

Re

J'ai fini par trouver c'est quoi qui mettait le trouble, c'est dans le module des fonctions

Function SupprAccent(chaine As String)
'On supprime les accents
Dim VarCtrl As String * 1
Dim VarRempl As String * 1
Dim i As Integer
Const Accent = "àáâãäåéêëèìíîïðòóôõöùúûüç"
Const SansAccent = "aaaaaaeeeeiiiioooooouuuuc"
For i = 1 To Len(Accent)
    VarCtrl = Mid(Accent, i, 1)
    VarRempl = Mid(SansAccent, i, 1)
    chaine = Replace(chaine, VarCtrl, VarRempl)
Next
chaine = UCase(chaine)
SupprAccent = chaine
End Function

je l'ai remplacé par ça

Option Explicit

Function fnSupprAccents(TEXTE As String)

Dim i As Long
Dim A As String, B As String, str As String
Const AccChars = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"

str = TEXTE
For i = 1 To Len(AccChars)
    A = Mid(AccChars, i, 1)
    B = Mid(RegChars, i, 1)
    str = Replace(str, A, B)
Next
fnSupprAccents = str

End Function

du coup j'en est profité pour te faire un fichier tout neuf t'as plus qu'a le tester

13nouveau-fichier.zip (459.94 Ko)

Bonjour stepaustras,

J'ai essayé avec la modification de fonction mais je problème persiste. Mais maintenant que je sais d'où vient l'erreur je vais pouvoir la gérer autrement.

Un grand merci à vous pour votre aide et le temps passé sur mon problème.

Cordialement,


Benoist.

Bonjour Benoist, donc cela vient de la fonction qui gère les accents et autres caractères ?

Bonjour stepaustras,

Effectivement, l'erreur venait de la fonction "accents". J'ai effectué quelques modifications et je réessaierai demain afin de voir si tout fonctionne.

Un grand merci à vous car sans votre aide, mes heures passées à créer mon fichier n'auraient servies à rien.

Cordialement,

Benoist.

Bonne soirée Benoist

Rechercher des sujets similaires à "erreur automation defaillance irremediable"