arrêt impromptu de macros et actualisation combobox à l'ouverture

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

Ce n'est pas dans mes habitudes de mettre pareil libellé, mais là, j'avoue, je suis dans la m...

Voilà bien 2 mois que j'essaie, laborieusement et avec l'aide indispensable du forum, de faire un programme de contrôles des glycémies pour mon fils (tous les soi-disant programmes que j'ai pu voir jusqu'à présent à ce sujet m'ont laissé perplexe, et je parle en connaissance de cause : médecin père d'un diabétique insulino-dépendant). Je dois reconnaître que d'achever un programme avec Excel tient de la gageure. Il y a toujours quelque chose qui ne va pas ! Mais en l'occurrence je ne vois pas quoi !!
La manière dont j'ai monté ce programme ferait certainement sourire n'importe quel ténor du forum, mais il montre l'essentiel et c'est ce qui compte !

Le programme est dense sans être très lourd, mais nettement supérieur aux fatidiques 48 Ko. Pas mal de fonctions et quelques macros. Beaucoup de formules y compris matricielles.
Manifestement toutes les fonctions et autres macros marchent bien individuellement, mais ensemble il y a problème.
Dernier problème apparu et pas des moindres : si je demande à une macro (mais curieusement pas toutes...) d'exécuter une série d'actions, de façon impromptue ça s'arrête.
Exemple, prenons la boucle élémentaire suivante :

Sub Macro5()

Dim cell As Range

'[ColonneResultsISO] plage de cellules nommée

For Each cell In [ColonneResultsISO]
cell.Value = 1
Next cell

End Sub

1 apparaîtra uniquement dans la 1ère cellule, puis STOP !

2ème exemple. Je veux actualiser des ComboBox lors de l'ouverture du fichier (pour des raisons techniques que j'ai fini par comprendre c'est indispensable). Dans le Private Sub Workbook_Open() j'écris ce qui doit se passer. Et bien il ne se passe jamais rien ! Pourtant les mêmes sentences déclenchées par une macro à part actualisent bien ces ComboBox !!

Si l'un d'entre vous a déjà rencontré pareil problème, son avis me sera des plus précieux.

Merci d'avance.
 

Modeste

XLDnaute Barbatruc
Re : Situation catastrophique

Bon dimanche à vous tous aussi !

Réponse à Modeste : tout est absolument cohérent et juste.
Magic_Doctor, comprends-moi bien: mon interrogation ne portait pas sur le fait que le code pourrait être erroné (j'ai vu les nombreuses références que tu citais dans les fonctions et procédures). Simplement, je suis incapable, ne connaissant pas ton fichier, de déterminer si les résultats affichés sont cohérents, en fonction du mois et/ou du moment de la journée.

J'espère avoir éclairci mon propos.

Modeste
 
C

Compte Supprimé 979

Guest
Re : arrêt impromptu de macros et actualisation combobox à l'ouverture

Bonjour,

Have a good day
in Uruguay
P'tites couettes, j'adore :p:D

Magic_doctor, MP veut dire Mensaje privado (Message privé)
En haut de la page du site, juste en dessous de : Bienvenue, Magic_Doctor
Tu dois avoir Messages Privés : X non lu(s)

Il suffit de cliquer sur "Messages privés" ;)

"Références manquantes"
Pour vérifier si dans un projet il existe des références manquantes
(Références a des fichiers bibliothèques)
Il faut ouvrir l'éditeur VBA (ALT+F11)
Aller dans le menu -> Outils -> Références

Si tu as une/des référence(s) qui maquent
[MANQUANTE]Truc machin chose
Il suffit de décocher la/les lignes

A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : arrêt impromptu de macros et actualisation combobox à l'ouverture

Bonjour à tous,

N’ayant toujours pas réglé le problème, je relance le fil.
Pour simplifier, je n’ai repris qu’une partie du classeur initial, à savoir uniquement la zone de saisie et les colonnes correspondant à un calendrier (semaines ISO / quantièmes / dates + jours de la semaine). Certains jours de la semaine peuvent être mis en évidence au moyen d’un USF (« Días de la semana »). Quant aux jours fériés fixes et mobiles ils sont automatiquement repérés, ainsi qu’éventuellement des anniversaires (jusqu’à 4). Jours de la semaine, fériés et anniversaires sont facilement repérables par leur couleur gérée par les FC via la fonction « EstFerie » (dans le module « Fonctions ») :
1/ Fériés « No Laborables » : on ne peut pas travailler --> ROUGE
2/ Fériés « Laborables » : on peut travailler --> ORANGE
3/ Fériés « Laborables » décalés : le jour en lui-même reste ORANGE mais BIFFÉ, le jour décalé --> MARRON
4/ Anniversaire(s) --> VERT
5/ Jours de la semaine mis en exergue --> BLEU
Je signale au passage que le calendrier est perpétuel et que les fériés en Uruguay sont un peu déconcertants (d’où le véritable casse-tête pour gérer ces dates) car l’adage administratif ici est : « pourquoi faire simple quand on peut faire muy complicado… ».

Mais là aussi je bute sur le maudit Worbook_Open où j’ai pourtant stipulé, lors de l’ouverture du classeur, des événements forts simples au demeurant (plein écran / masquer les onglets… bref, virer tout le superflu). Worbook_Open reste muet, rien ne se passe lors de l’ouverture ! C’est comme si Worbook_Open était devenu invisible !
Curieusement si, après l’ouverture du classeur, je vais à Worbook_Open et y déclenche directement la macro, tout se déroule alors comme je le désirais…
Je cherche la cause et finis par soupçonner la fonction « EstFerie ». Je l’élimine pour voir ce qui se passe. Quand le classeur s’ouvre ça commence à marcher, mais Worbook_open bute sur la sentence « Worksheets(1).ScrollArea = "A1:M39" » qui n’a pourtant rien d’extraordinaire. Rebelote, je déclenche la macro depuis Worbook_Open et tout se remet en ordre.
C’est vraiment très bizarre !

J’ai essayé de ruser… Puisque la fonction « EstFerie » semble être en cause, j’ai donc tenté de la court-circuiter lors de l’ouverture du classeur.
1/ Dans une cellule nommée « StopMacro » est récupérée une valeur.
2/ Dans Workbook_BeforeClose j’écris : [StopMacro].Value = 2, de telle sorte qu’à la fermeture du classeur la cellule « StopMacro » prenne la valeur 2.
3/ Dans le corps de la fonction « EstFerie » j’écris au tout début : If [StopMacro].Value = 2 Then Exit Function, ce qui théoriquement shunte cette fonction lorsque la cellule « StopMacro » est égale à 2.
4/ En fin de procédure de Worbook_Open j’écris : [StopMacro].Value = 0 pour réhabiliter la fonction « EstFerie » après que la présentation souhaitée de la feuille ait été réalisée.

Quand j’ouvre le classeur (la cellule « StopMacro » est forcément égale à 2) je devrais donc être dans la même situation que si j’avais supprimé la fonction « EstFerie ». Et bien NON ! l’abominable Worbook_Open s’obstine à faire la sourde oreille, et la cellule « StopMacro » reste bloquée sur 2 alors qu’elle aurait dû prendre la valeur 0. J’en déduis que dès le départ Worbook_Open ne marche pas.

Je pense qu’en réglant ce problème on avancera pour le problème initial.

À l'adresse suivante 2 fichiers compressés : l’un avec la fonction « EstFerie » et l’autre sans.

Cijoint.fr - Service gratuit de dépôt de fichiers

Bonne journée à tous.
 
C

Compte Supprimé 979

Guest
Re : arrêt impromptu de macros et actualisation combobox à l'ouverture

Hola Magic_Doctor,

Je n'ai toujours pas de souci ici en "France" ;):D

J'ai juste un message d'erreur pour la ligne :
Code:
Worksheets(1).ScrollArea = "A1:M39"
Ligne à mettre en commentaire peut-être, pour le moment

As-tu essayé de réparer ton installation Office
Menu "?" -> Détecter et réparer

Ou carrément de réinstaller ?

A mas tarde
 

Magic_Doctor

XLDnaute Barbatruc
Re : arrêt impromptu de macros et actualisation combobox à l'ouverture

Hola BrunoM45,

Je suis bien allé à "Références manquantes" comme tu me l'avais conseillé, mais à vrai dire je n'ai pas compris grand chose. Je suis tombé sur une liste interminable avec quelques options (4 ou 5) cochées.

Tu me conseilles maintenant de réparer mon installation Office Menu "?" -> Détecter et réparer. Disposant d'Excel 2007 je ne sais absolument pas où aller...

Mais c'est quand même curieux que chez toi Worbook_Open fonctionne mais pas chez moi. À quoi cela peut-il être dû.

Quant au Worksheets(1).ScrollArea = "A1:M39". pourquoi ne fonctionne-t-il pas depuis le Worbook_Open... Alors là, mystère et boule de gomme !

Merci quand même y buenas tardes.
 
C

Compte Supprimé 979

Guest
Re : arrêt impromptu de macros et actualisation combobox à l'ouverture

Re,

Je pense que tu as la sécurité (anti macro) qui est mise au maximum
Si tel est le cas, Excel ne te demande rien, mais n'exécute aucune macro :confused:

Voir ici
pour comment activer / désactiver les macros sur Excel 2007

Buenas tardes también
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 070
Membres
103 453
dernier inscrit
Choupi