Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problèmes ATPVBAEN.XLAM

6 réponses
Avatar
rmillerlcxl
Bonjour,

Depuis un certain temps j'=C3=A9prouve des difficult=C3=A9s avec ATPVBAEN.X=
LAM. Je ne sais si cela pourrait avoir un lien avec la version du fichier o=
u le chemin du fichier qui diff=C3=A8re d'une version =C3=A0 l'autre selon =
les ordinateurs.

Lorsque cela se produit ... je vais d=C3=A9cocher la r=C3=A9f=C3=A9rence ma=
nquante dans le VBA qui est MANQUANT : ATPVBAEN.XLAM.

J'ai des usagers qui sont en Excel 2007, 2010, 2013 et 2016.

J'utilise 2016. Il semble que lorsque j'ai ouvert sur mon ordi le fichier e=
t que je le retourne =C3=A0 l'usager (que certains usagers) que la situatio=
n se produit lorsque celui-ci l'ouvre sur son ordinateur.

Pourquoi cela ne se produit que derni=C3=A8rement? Pourquoi cela se produit=
. Et comment pouvoir =C3=A9viter cela? Merci =C3=A0 l'avance.

Lorsque l'usager est en Excel 2007 ou 2010 j'active les macros compl=C3=A9m=
entaires Analysis Toolpak et Analysis Toolpak - VBA. Si l'usager est en 201=
3 ou 2016 ... alors seulement Analysis Toolpak est activ=C3=A9.

C'est que j'ai d=C3=A9j=C3=A0 eu la recommandation de d=C3=A9sactiver Analy=
sis Toolpak - VBA si on est en 2013 ou 2016.

Pourrait-il en =C3=AAtre la raison? Par exemple je re=C3=A7ois un fichier d=
ont l'utilisateur cette macro =C3=A9tait activ=C3=A9e et que moi je l'ouvre=
ensuite et qu'elle n'est pas activ=C3=A9e (VBA) et qu'alors lorsqu'il l'ou=
vre =C3=A0 nouveau =C3=A7a fait ceci?

Comment bien g=C3=A9rer tout ceci? Merci =C3=A0 l'avance.

6 réponses

Avatar
Michd
Bonjour,
La procédure suivante a été élaborée par Frédéric Sigonneau. Pour tester ce
type de procédure, il faudrait que j'aie un fichier dont l'une des
références du projetVBA du classeur est "Manquante". Je travaille
actuellement avec Excel 2016. Le chemin de la macro complémentaire sous
Excel 2016 est :
"C:Program Files (x86)Microsoft
OfficerootOffice16LibraryAnalysisATPVBAEN.XLAM"
Dans le Thisworkbook du fichier, copie la procédure suivante dans le
ThisWorkbook du projetVBA du classeur.
Elle n'a pas été testée.
'------------------------------------------------
Private Sub Workbook_Open()
Dim LesRefs As Object, i&, Msg$, Cpt&, Rep&, Mnq&, Chemin$, Nom$
Set LesRefs = ThisWorkbook.VBProject.References
For i = 1 To LesRefs.Count
With LesRefs(i)
If .IsBroken Then
Mnq = Mnq + 1: Chemin = .FullPath: Nom = .Name
LesRefs.Remove LesRefs.Item(.Name)
If Dir(Chemin) = "" Then
Msg = "La librairie " & Nom & " est manquante et le fichier"
& vbLf
Msg = Msg & "'" & Chemin & "'" & vbLf
Msg = Msg & "ne peut être trouvé pour l'installer."
MsgBox Msg, vbCritical
Cpt = Cpt + 1
Else
LesRefs.AddFromFile Chemin
Rep = Rep + 1
End If
End If
End With
Next i
If Mnq > 0 Then
If Cpt > 0 Then Msg = Cpt & " référence(s) toujours manquante(s)"
If Rep > 0 Then Msg = Msg & Rep & "référence(s) réinstallée(s)"
End If
End Sub
'------------------------------------------------
Tu as un article de Microsoft sur le sujet (en anglais) :
https://support.microsoft.com/en-gb/help/244167/writing-automation-clients-for-multiple-office-versions
N.B. Si tu as un fichier dont une référence est marquée "manquante", ne
décoche pas cette référence et publie le classeur en utilisant le site
"Cjoint.com". Tu peux effacer les données dans les feuilles si tu le
désires. Retourne-nous l'adresse obtenue ici.
MichD
Avatar
rmillerlcxl
Parfait et merci.
Je serai assurément en mesure de vous revenir sous peu.
Avatar
rmillerlcxl
Bonjour,
J'ai testé le code et ... cela n'a malheureusement pas fonctionné .
Mais ... lorsque le fichier était ouvert je suis aller dans le Private Sub Workbook_Open() et j'ai lancé l'exécution.
La macro a arrêté sur "& vbLf".
Aussi ... il arrive que lorsque je vais manuellement décocher la case ATPVBAEN .. qu'il est inscrit MANQUANT ... et qu'à d'autres occasions il n'y a aucune mention MANQUANT ... la case est cochée comme si tout était OK. Je décoche tout de même la case et je ferme avec e nregistrement ... ensuite le problème est réglé.
Je suis aussi aller lire ce qui est écrit à ce propos en cliquant sur le line que vous avez inscrit ... je comprend en gros ... mais je ne s ais pas comment appliquer ceci. Late Binding?? Quoi aller cocher ou sé lectionner ou écrire comme code???
Peut-être qu'il ne s'agirait que d'apporter un ajustement au code que vous m'aviez procurer? Un grand merci à l'avance.
Avatar
Michd
Cette section représente 3 lignes de code.
Msg = "La librairie " & Nom & " est manquante et le fichier" & vbCrLf
Msg = Msg & "'" & Chemin & "'" & vbCrLf
Msg = Msg & "ne peut être trouvé pour l'installer."
Le service de messagerie peut avoir coupé la ligne de manière inopportune.
Si c'est le cas, il faut replacer le tout.
MichD
Avatar
rmillerlcxl
Bonjour,
Je n'ai pas réussi à régler la situation. Lorsque cela arriv e je dois manuellement intervenir.
Si le fichier est ouvert sur un poste ... et qu'il est ensuite ouvert sur u n autre poste la situation se produit. Il y a donc quelque chose entre les 2 postes. Car aussi après avoir été corrigé sur le post e dont cela arrive ... si le fichier est ouvert à nouveau sur l'autre poste et qu'il est ensuite réouvert sur le poste dont le problème survient ... le problème se produit à nouveau.
Mais j'ai détecté une information additionnelle. Peut-être q ue cela mènera à une solution?
En fait j'ai 2 fichiers. Il me faut d'abord ouvrir un premier fichier et en suite je clique sur un bouton pour ouvrir le 2ème.
La macro complémentaire n'est utilisée que dans le premier fichie r. Pas dans le 2ème. Lorsque j'ouvre le 1er fichier je vais voir dans les références et la case de ce fichier atpvbaen... est bien coch ée et là pas de problèmes.
Mais lorsque je clique pour aller dans le 2ème fichier la case demeure cochée et affiche manquant. Car la macro n'est pas utilisée dans ce 2ème fichier.
Sur les postes qui ne causent pas de problèmes dans le 2ème fichi er cette case n'est pas cochée et le fichier n'apparait pas dans les r éférences.
Alors sur les postes problèmes c'est comme si Excel ne parvient pas à enlever la référence ou ??? quelque chose du genre que moi ... je comprend mal.
Mais ... il doit avoir quelque chose de différent entre les 2 postes?
J'ai enlevé tous autres compléments COM. Les mises à jour on t été effectuées pour Office et ... Windows. Et ... ce sont exactement les mêmes versions sur les 2 postes ... soit Office 2016 (3 65) et Windows 7.
Ce ue vous avez écrit ... je ne le co,prend pas bien et ce dont je dev rais faire. Voir en bas de ce texte.
Pourriez-vous avoir une autre suggestion? Merci à l'avance.
************************************************************************
Cette section représente 3 lignes de code.
Msg = "La librairie " & Nom & " est manquante et le fichier" & vbCrLf
Msg = Msg & "'" & Chemin & "'" & vbCrLf
Msg = Msg & "ne peut être trouvé pour l'installer."
Le service de messagerie peut avoir coupé la ligne de manière ino pportune.
Si c'est le cas, il faut replacer le tout.
Avatar
Michd
Bonjour,
Dans le Thisworkbook de ton classeur, place cette procédure.
Attention, ce code est adapté pour Office 16.
Pour charger la macro complémentaire, le chemin est
probablement différent selon la version de Microsoft Office.
Seule la version 2016 est installée sur mon ordinateur. Tu dois
compléter le code. Pour ce faire, tu devras trouver pour chacune
des versions, le chemin et l'indiquer dans la procédure.
'-----------------------------------------------------------------
Private Sub Workbook_Open()
Dim Ver As Long
On Error Resume Next
''******Cette section coche les 2 macros compléments
'dans Fichiers/Options/Compléments
'J'ai mis français/anglais selon les versions ???
With Application
.AddIns("Utilitaire d'analyse").Installed = True
.AddIns("Utilitaire d'analyse - vba").Installed = True
.AddIns("Analysis Toolpak").Installed = True
.AddIns("Analysis Toolpak - VBA").Installed = True
End With
'*******Cette section charge la référence atpvbaen.xls
'*******Le chemin de la macro complémentaire est peut-être
'*******différent selon la version de Microsoft Office
Ver = Val(Application.Version)
Select Case Ver
Case Is = 16
Ver = "office" & CLng(Application.Version)
ThisWorkbook.VBProject.References.AddFromFile ("C:Program Files (x86)" & _
"Microsoft OfficeRoot" & Ver & "LibraryAnalysisATPVBAEN.XLAM")
Case Is = 16
'même code que précédemment mais on adapte le chemin
'Chemim pour chacune des version
Case Is = 15
Case Is = 14
End Select
End Sub
'-----------------------------------------------------------------
MichD