1
votes

Les macros d'un autre classeur ont cessé de fonctionner après la mise à jour Office

J'ai un classeur Excel avec des macros (master.xlsm) et ces macros sont accessibles par d'autres classeurs via la barre d'outils personnalisée d'Excel. précédemment, lorsqu'un classeur normal s'ouvre et accède à l'une de ces macros dans la barre d'outils personnalisée,

  1. si master.xlsm n'est pas encore ouvert, il s'ouvre en arrière-plan et exécute la macro dans le classeur normal
  2. si master.xlsm est déjà ouvert, exécutez la macro directement dans le classeur normal.

Désormais, avec une mise à jour récente d'Office 365, la méthode (1) est bloquée. donc je dois ouvrir manuellement le master.xlsm pour exécuter les macros.

maintenant dans (1) cela montre,

[impossible d'exécuter la macro "C: \ Main \ master.xlsm '! macro1" La macro peut ne pas être disponible ou toutes les macros peuvent être désactivées]

Essayé sur un autre PC, avec Windows 10 à jour et Office 365 à jour. cela fonctionne, et la version intégrée d'Office 365 dans le PC de travail est MSO (16.0.11328 ....) et le PC défectueux est MSO (16.0.11727 ....) cela peut être une raison évidente, mais les deux versions d'Office 365 sont à jour.

Les deux PC ont les mêmes niveaux de sécurité macro et l'emplacement master.xlsm a été ajouté comme emplacement de confiance dans les emplacements des centres de confiance Excel.

également une mise à jour il y a un PC défectueux a également fonctionné, donc tous les fichiers et paramètres sont identiques.

Ma question a-t-elle changé les critères de sécurité d'Excel VBA? ou comment résoudre sans rétrograder la version bureautique.

sous l'image 1 lorsque master.xlsm n'est pas ouvert, il donne donc l'erreur image 2 lorsque master.xlsm est ouvert pour qu'il exécute une macro et insère du texte dans le book1.xlsx

lorsque le maître xlsm n'est pas ouvert

lorsque master xlsm est ouvert


2 commentaires

Tout d'abord, vérifiez si les macros s'exécutent. Ajoutez un test Sub dans ce fichier et laissez-le lancer une boîte de message par exemple MsgBox "I run!" et exécutez la procédure. Si vous ne voyez pas la boîte, il y a un problème de sécurité des macros. Si vous voyez la boîte, il y a un problème avec votre fichier ou votre code.


Les macros s'exécutent si le fichier source des macros est ouvert. ce qui est arrivé automatiquement avant. maintenant il devient manuel.


3 Réponses :


0
votes

Eh bien, je commencerais par vérifier si les macros "ouvertes" fonctionnent dans "master.xlsm" quelque chose comme ceci:


 Thisworkbook_open


Cela ne résoudra probablement pas votre problème, mais pourrait vous montrer où se trouve le problème

Publier ici aussi une partie du code de master.xlsm aiderait


1 commentaires

ajouté quelques captures d'écran, confirme que les macros sont correctes et exécutables lorsque le fichier source est ouvert. mais auparavant, si le fichier source n'est pas ouvert, il s'ouvre d'abord en arrière-plan et s'exécute. semble perdre un certain niveau d'autorisation avec la mise à jour



0
votes

Eh bien, vous ne pouvez exécuter une macro dans master.xlsm que lorsqu'elle est ouverte. S'il est fermé, vous ne pouvez pas y exécuter la macro, vous devez d'abord l'ouvrir. Par exemple, utilisez la méthode Workbooks.Open pour ouvrez-le d'abord.

Dim MasterWb As Workbook

On Error Resume Next 'test if master.xlsm is already open
Set MasterWb = Workbooks("master.xlsm")
On Error Goto 0

If MasterWb Is Nothing Then 'if it was closed open/run/close it
    Set MasterWb = Workbooks.Open("C:\Main\master.xlsm")
    Application.Run "master.xlsm!macro1"
    MasterWb.Close SaveChanges:=False
Else 'if it was already opened just run macro and don't close it (or you might loose changes that were already made)
    Application.Run "master.xlsm!macro1"
End If


5 commentaires

non, les classeurs normaux ne sont pas activés pour les macros, je ne peux donc pas y placer de codes vba. la barre d'outils personnalisée tente d'accéder directement aux macros. n'oubliez pas que cela a fonctionné avant pendant plus de 2 ans.


Si votre code s'exécute à partir d'une barre d'outils personnalisée, vous devriez envisager de le placer dans PERSONAL.XLSB pour que cela fonctionne: voir Copiez vos macros dans un classeur de macros personnelles • Je suppose que vous aviez le chargement automatique de master.xlsm au démarrage d'Excel dans votre installation précédente sans vous en souvenir.


cette approche pour s'assurer que les macros sont visibles pour tous les classeurs chaque excel ouvert, je comprends cela. de cette façon, je ne peux pas exporter la barre d'outils personnalisée et travailler dans un autre PC car il doit transférer manuellement toutes les macros sur le nouveau PC et les placer dans un dossier itinérant et modifier tout le chemin de macro de la barre d'outils personnalisée vers le dossier itinérant du nouvel utilisateur. c'était la raison pour laquelle le fichier maître était dans le dossier c: \ master afin que tous les utilisateurs de cette barre d'outils et de cette macro puissent l'adopter facilement.


@MaheshUddama alors vous devriez probablement créer un complément ou utiliser ceci la technique


dans le pire des cas, je vais essayer, en ce moment je m'attends à trouver un correctif pour la différence faite dans une mise à jour récente, probablement une exception de sécurité, une modification du registre ou un changement de politique. car cela a fonctionné pendant longtemps même avec Office 365 à partir d'Office 2013.



1
votes

Après tout, Microsoft a accepté qu'il s'agissait d'un problème dans les canaux mensuels et mensuels (ciblés) d'Office 365, et ils l'ont déjà résolu dans le canal ciblé mensuel et en attente du correctif de canal mensuel. apparemment, les chaînes semestrielles et annuelles n'ont pas été affectées par ce problème en premier lieu car elles apportent les mises à jour les plus stables des chaînes mensuelles aux chaînes semestrielles et annuelles. Je pense qu'il est bon de choisir un canal de mise à jour semestrielle ou annuelle si vous êtes une petite entreprise et n'attendez pas avec impatience chaque mise à jour immédiatement chaque mois.

Réponse https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_ros-win10-mso10-mso d'un autre classeur a cessé de fonctionner après / 9779bd5f-e858-4213-9ea6-95597e867a07? messageId = 4d2e3ce7-350d-4bfd-82b2-f54c8654016e & page = 1

Présentation des canaux de mise à jour https://docs.microsoft.com/en-us/deployoffice/overview-of-update-channels-for-office-365-proplus#visual-representation- des-canaux-de-mise à jour-pour-office-365-proplus


0 commentaires