Excel question "excel 4.0 fonction stockée dans les noms définis"
je suis en train d'essayer d'isoler le problème causant l'
"excel 4.0 fonction stockée dans les noms définis"
ce que je suis incapable de comprendre est la raison derrière cela.
ce numéro a commencé à paraître récemment et n'a pas réussi à comprendre pourquoi.
7 réponses
Je ne voulais pas bousculer un vieux fil, mais j'avais aussi ce même problème et je voulais poster ma résolution au cas où quelqu'un d'autre expérimenterait la même chose que moi.
mon problème a fini par être causé par un MySQL Excel COM add-on qui était un composant inclus dans le paquet MySQL Workbench. La désactivation de cet ajout a fait disparaître l'invite macro lors de la sauvegarde des tableurs.
pour moi ce message a été causé par le MySQL pour Excel COM Add-In. Le message a cessé d'apparaître lorsque j'ai déchargé L'Add-In COM.
la solution déjà indiquée est correcte: désactiver le MySQL pour Excel COM Add-in.
la raison du message est que cet add-in ajoute des noms cachés pour le classeur. Ces noms ne sont pas visibles dans le Gestionnaire de noms Excel. Mais vous pouvez les voir dans la fenêtre VBA Direct si vous ajoutez ce code à un module de classeur:
Public Sub DEV_CheckNames()
Dim n As name
For Each n In ActiveWorkbook.Names
If Not n.Visible Then
Debug.Print n.NameLocal, n.RefersToLocal
'If you want to delete the name, uncomment this line:
'n.Delete
End If
Next
End Sub
Résultat (pour un allemand de l'instance d'Excel 2013):
LOCAL_DATE_SEPARATOR =INDEX(ARBEITSBEREICH.ZUORDNEN(37);17)
LOCAL_DAY_FORMAT =INDEX(ARBEITSBEREICH.ZUORDNEN(37);21)
LOCAL_HOUR_FORMAT =INDEX(ARBEITSBEREICH.ZUORDNEN(37);22)
LOCAL_MINUTE_FORMAT =INDEX(ARBEITSBEREICH.ZUORDNEN(37);23)
LOCAL_MONTH_FORMAT =INDEX(ARBEITSBEREICH.ZUORDNEN(37);20)
LOCAL_MYSQL_DATE_FORMAT =WIEDERHOLEN(LOCAL_YEAR_FORMAT;4)&LOCAL_DATE_SEPARATOR&WIEDERHOLEN(LOCAL_MONTH_FORMAT;2)&LOCAL_DATE_SEPARATOR&WIEDERHOLEN(LOCAL_DAY_FORMAT;2)&" "&WIEDERHOLEN(LOCAL_HOUR_FORMAT;2)&LOCAL_TIME_SEPARATOR&WIEDERHOLEN(LOCAL_MINUTE_FORMAT;2)&LOCAL_TIME_SEPARATOR&WIEDERHOLEN(LOCAL_SECOND_FORMAT;2)
LOCAL_SECOND_FORMAT =INDEX(ARBEITSBEREICH.ZUORDNEN(37);24)
LOCAL_TIME_SEPARATOR =INDEX(ARBEITSBEREICH.ZUORDNEN(37);18)
LOCAL_YEAR_FORMAT =INDEX(ARBEITSBEREICH.ZUORDNEN(37);19)
Ces noms sont ajoutés à l'actif cahier d'exercices au moment où vous cliquez sur le bouton de l'add-in (qui ouvre le taskpane). Malheureusement, je n'ai pas trouvé encore pourquoi MySQL ajouter-ajoute parfois ces noms par lui-même sans être activé.
Ajouté: ceci est un bug connu dans le MySQL pour L'Add-in Excel à partir de http://bugs.mysql.com/bug.php?id=73467
J'ai le même problème dans Excel 2013 et j'ai été résolu en déchargeant le MySQL Add in - je l'ai fait en allant dans FILE - OPTIONS - Add Ins
comme dans la réponse de ChipsLetten, même solution ici sur mon ordinateur: sur la sauvegarde de certains (en fait macro libre) classeur, je reçois une alerte "Excel 4.0 fonction stockée dans des noms définis", et une option pour enregistrer le classeur comme "macrop-enabled". En désactivant le COM-Add-in" MySQL pour Excel", l'alerte n'apparaît plus.
pour désactiver L'add-in" MySQL for Excel "(si vous l'avez déjà installé): onglet "Developper", puis bouton "COM Add-Ins", et vous obtenez une liste d'add-ins que vous pouvez activer ou désactiver par marque.
avez-vous installé un connecteur pour excel?, peut-être que c'est la cause du problème, juste désinstaller et l'erreur sera parti.
si vous avez des feuilles de travail avec des gammes cachées comme décrit dans la réponse de domke consulting, vous pouvez utiliser le code suivant pour les supprimer:
Public Sub Remove_Hidden_MySQL_Names()
Dim n As Name
For Each n In ActiveWorkbook.Names
If Not n.Visible Then
'Delete Names added by MySQL for Excel add-in
If (InStr(n.NameLocal, "LOCAL_") <> 0 And (InStr(n.NameLocal, "_FORMAT") <> 0 Or _
InStr(n.NameLocal, "_SEPARATOR") <> 0)) Then
Debug.Print "Would delete", n.NameLocal, n.RefersToLocal
'If you want to delete the name, uncomment this line:
'n.Delete
Else
Debug.Print "Keeping", n.NameLocal, n.RefersToLocal
End If
End If
Next
End Sub