Macro bug sur un poste

Bonjour à tous !

J'ai une macro qui fonctionne sur la plupart des postes sauf 1, je ne comprends pas pourquoi car même versions d'Excel...

Sub actualisation()

Windows("SUIVI DES FICHES D'ANOMALIE").Activate
' Si le classeur est en lecture seul on sort
If ThisWorkbook.ReadOnly Then Exit Sub
' Sinon
Sheets("RECENSEMENT").Select
ActiveWorkbook.RefreshAll
Application.OnTime Now + TimeValue("01:00:00"), "actualisation"

End Sub

Avez-vous une idée d'où peut provenir le problème ?

La ligne qui plante semble être

Windows("SUIVI DES FICHES D'ANOMALIE").Activate

Cordialement,

Charles CARON

Bonjour,

À priori si ça plante c'est que le fichier "SUIVI DES FICHES D'ANOMALIE" n'est pas ouvert, ou qu'il s'appelle un peu différemment.

Bonjour,

Cette macro se lance à l'ouverture du fichier "SUIVI DES FICHES D'ANOMALIE" et toutes les heures.

Elle marche correctement sur 10 postes mais pas sur celui-là.

Je pensais que c'était parce que sur le poste en question les extensions était affichées et donc le fichier s'appelait "SUIVI DES FICHES D'ANOMALIE.xlsm"

J'ai désactivé l'affichage des extensions mais le bug persiste...

Une idée ? Réparation Excel ?

Cordialement,

Charles CARON

Bonjour,

Cette macro se lance à l'ouverture du fichier "SUIVI DES FICHES D'ANOMALIE"

Dans ce cas peut être que vous pouvez tout simplement supprimer la ligne

Windows("SUIVI DES FICHES D'ANOMALIE").Activate

Puisque ce classeur sera activé par défaut a l'ouverture si je ne dit pas de sotises. à tester

A+

Bonjour

La version excel sur lequel cette macro buggue est supérieure à 2007 ?

Cordialement

Oui Office 2019. Néanmoins, 2019 pour les postes fonctionnels aussi...

Peut être à essayer comme ceci

Sub actualisation()
With ThisWorkbook
    If .ReadOnly Then Exit Sub
    .RefreshAll
    Application.OnTime Now + TimeValue("01:00:00"), "actualisation"
End With
End Sub

en supposant que la macro actualisation est dans le fichier qui la lance à l'ouverture

Le problème est que si je bosse sur un autre fichier, au bout d'une heure, la macro se lance et bug puisque lancée sur le mauvais ThisWorkbook car je ne suis pas positionné sur le bon fichier Excel.

D'où l'utilité d'activer le bon fichier avant le lancement h+1.

Donc si je met le code sans me positionner au bon endroit :

Sub actualisation()

' Si le classeur est en lecture seul on sort
If ThisWorkbook.ReadOnly Then Exit Sub
' Sinon
ActiveWorkbook.RefreshAll
Application.OnTime Now + TimeValue("00:00:30"), "actualisation"

End Sub

La macro ne fonctionne que si je me positionne sur le fichier de droite :

image

Alors que si je reste sur celui de gauche, seul le code suivant fonctionne pour forcer l'actualisation toutes les 30 secondes même si on travaille autre part :

Sub actualisation()

Windows("SUIVI DES FICHES D'ANOMALIE").Activate
' Si le classeur est en lecture seul on sort
If ThisWorkbook.ReadOnly Then Exit Sub
' Sinon
Sheets("RECENSEMENT").Select
ActiveWorkbook.RefreshAll
Application.OnTime Now + TimeValue("00:00:30"), "actualisation"

End Sub

Ce que je comprends pas, c'est que ça marche niquel sur 10 postes mais pas sur 1 seul, où la ligne suivante plante :

Windows("SUIVI DES FICHES D'ANOMALIE").Activate

Cordialement,

Charles CARON

Bon, sur le poste incriminé, la macro marche lorsque je copie le fichier sur mon bureau...

Je ne comprends pas pourquoi ça marche selon où se situe le fichier...

Re

Le code bugue sur quelle ligne en fait ?

Sinon, cette ligne ne sert pas dans le code

Sheets("RECENSEMENT").Select

Sur l'autre poste, quels sont les fichiers ouverts et y a-t-il un autre fichier ouvert avec un code ?

Rechercher des sujets similaires à "macro bug poste"