Exécution automatique d'une macro après ouverture du classeur

kris12

XLDnaute Nouveau
Bjr à tous,

J'ai créé une macro qui donne le jour (lundi mardi...) correspondant à la date affichée. La macro fonctionne bien et se lance pour le moment à l'ouverture de mon classeur. Cependant les dates que j'importe et pour lesquels j'ai besoin des jours correspondant, je les colles après ouverture de mon classeur. Je suis donc obligé d'importer mes données (avec mes dates) d'enregistrer le classeur et de le réouvrir pour faire fonctionner la macro (que je ne souhaite pas, si possible, activer à l'aide d'un bouton).

Serait-il possible donc, d'activer automatiquement la macro au moment ou j'importe mes données svp?

Merci d'avance
 

kris12

XLDnaute Nouveau
Re : Exécution automatique d'une macro après ouverture du classeur

Bonjour,

Comment procèdes-tu à l'import ? manuellement ou par macro ?
Il est possible d'activer une macro à l'ouverture d'un classeur, à sa fermeture ou sauvegarde.

L'import ce fait manuellement oui. Je colle les données (obtenues depuis un logiciel de calcul thermique) dans une autre feuille du classeur
 

camarchepas

XLDnaute Barbatruc
Re : Exécution automatique d'une macro après ouverture du classeur

Bonjour ,

Il faut donc identifier la macro appelée dans ou le code contenu dans thisworkbook.open,

et le plus simple étant de déplacer ce code dans une routine dédiée et appelée ensuite via un bouton.

L'import n'étant pas automatique , il peut se passer plein de chose, d'ou l'appui bouton qui sera plus sécuritaire.

Evidemment , l'idéal aurait été d'avoir le code sous les yeux , mais le principe est là.
 

kris12

XLDnaute Nouveau
Re : Exécution automatique d'une macro après ouverture du classeur

Bonjour ,

Il faut donc identifier la macro appelée dans ou le code contenu dans thisworkbook.open,

et le plus simple étant de déplacer ce code dans une routine dédiée et appelée ensuite via un bouton.

L'import n'étant pas automatique , il peut se passer plein de chose, d'ou l'appui bouton qui sera plus sécuritaire.

Evidemment , l'idéal aurait été d'avoir le code sous les yeux , mais le principe est là.

Code:
Sub jour_calendrier()

Dim x As Integer
Dim y As Integer

x = 6

For y = 1 To 8760
    
If Sheets("Calcul").Cells(x, 2).Value = Sheets("Calendrier").Cells(y, 2).Value Then

Sheets("Calcul").Cells(x, 1).Value = Sheets("Calendrier").Cells(y, 1).Value

   x = x + 1

End If

Next

End Sub

Ensuite dans la partie Workbook je lui dit d'effectuer la macro à l'ouverture

Code:
Private Sub Workbook_Open()
          jour_calendrier
End Sub

En faite j'importe les données dans une feuille "Importation". Les dates importés sont copié dans la feuille "Calcul" à partir de la cellule B6. En fonction des dates copiées en B6 je voudrais qu'il me reconnaisse les jours à partir de la feuille "Calendrier" ou j'indique les jours correspondant en fonction de la date.
Sauf que lorsque j'ouvre le classeur je n'ai pas encore importé les données. Alors je pourrais lancer la macro à l'aide d'un bouton mais je voulais savoir si il était possible de lance la macro automatiquement au moment où j'importe mes données manuellement par exemple?
 

camarchepas

XLDnaute Barbatruc
Re : Exécution automatique d'une macro après ouverture du classeur

Kriss,

Non , je ne crois pas que tu puisses , c'est pas de la magie , il faut au moins avoir un évenement ou un départ temporisé pour lancer ta macro,

une alternative mi-chemin :

tu peux éventuellement la lancer grace à l'événementiel Worksheet_Deactivate() de la feuille Importation, et dès que tu changes d'onglet , hop , il calcule.

L'idéal serait d'importer en automatique , l'enchainement serait alors plus naturel.
 

kris12

XLDnaute Nouveau
Re : Exécution automatique d'une macro après ouverture du classeur

Kriss,

Non , je ne crois pas que tu puisses , c'est pas de la magie , il faut au moins avoir un évenement ou un départ temporisé pour lancer ta macro,

une alternative mi-chemin :

tu peux éventuellement la lancer grace à l'événementiel Worksheet_Deactivate() de la feuille Importation, et dès que tu changes d'onglet , hop , il calcule.

L'idéal serait d'importer en automatique , l'enchainement serait alors plus naturel.

Du coup ça marche comment la désactivation de la feuille Importation? Des que j'ai collé mes données et j'ouvre une autre feuille ça lance la macro? Parce que ça pourrait tout a fait convenir

EDIT : Bon j'ai testé et ça donne bien ça donc moi ça me convient plutôt bien. Le pb c'est que chaque fois que je retourne que la feuille Importation il va relancer le calcul. Pas possible de le lui faire exécuter la macro qu'une seule fois?
 
Dernière édition:

kris12

XLDnaute Nouveau
Re : Exécution automatique d'une macro après ouverture du classeur

Le problème c'est que j'ai d'autre valeurs dans les données que j'importe qui me serve pour la suite donc je ne peux pas effacer la feuille. Au final c'est peut être plus compliqué que de créer un bouton, même si ça va me charger un peu plus ma feuille de calcul mais c'est pas une catastrophe non plus dc je vais procéder plus facilement finalement.

Je te remercie de ton aide en tout cas
 

Discussions similaires

Réponses
4
Affichages
422

Statistiques des forums

Discussions
312 885
Messages
2 093 259
Membres
105 660
dernier inscrit
moi46