macro ativée tout le temps

  • Initiateur de la discussion Initiateur de la discussion romfret
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

romfret

Guest
Bonjour forumeurs, forumeuses,

J'ai un 'tite question à vous poser :

Comment faire en sorte qu'une macro soit tout le temps en route : exemple : Je veux qu'il me desactive un bouton des qu'un certain fichier est ouvert, mais quand il verifie que le fichier est ouvert je ne veux pas cliker sur un bouton mais qu'il le fasse automatiquement.


Ai-je été assez clair ?

Merci de vos reponses, romfret
 
Bonjour Romfret

Pour cela tu crais une macro complémentaire, .xla, que tu place ensuite dans XLStart, ce qui fait que à chaque démarrage ta macro s'exécute

Si tu veux plus d'info dis moi

Bon dimanche

@Christophe@
 
salut @christophe@ !,
Non en fait ce n'est pas ca que je veux dire c'est que le macro verifie un truc tout le temps qu'un certain classeur (classeur1) est ouvert, donc que le macro soit tout le temps activé.


J'espere etre un peu plus clair.


@mic@lememet, romfret
 
Re,

Ok, je veux qu'une macro verifie un truc =>
Qu'un classeur nommé classeur1 est ouvert
Masi cela tout le temps que mon classeur2 ( classeur ou il y aurait la macro qui verifie que classeur 1 est ouvert) est ouvert !!


Si jamais tu n'a pas compris essaye de me relire , merci d'avance, romfret.

ps: si tu ne vois vraiment pas , n'hésite pas a me le faire savoir.
 
Re

Bon, voici un truc vite fais:

Option Explicit

Function IsWorkbookOpen(wbName As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Len(Workbooks(wbName).Name)
End Function

Sub CheckOpen()
If IsWorkbookOpen("Classeur2") = True Then MsgBox "File Open"
End Sub


Une fonction pour vérifie si ton classeur est ouvert, ensuite dans tous tes macro tu ajoute la ligne que tu vois dans Sub Verif, et tu mets tes instruction après le Then au lieu de msgbox "Open":

Exemple:

Sub blabla()
If IsWorkbookOpen("Classeur2") = True Then
....
Condition ' ta macro
...
Else 'Workbook Classeur 2 fermé
Msgbox "Macro non dispo, veuillez ouvrir Classeur2"
End if
End sub

Dis moi si c'est cela que tu veux?

@Christophe@
 
Re,


le code suivant je l'met ds thisworkbook ? :

Option Explicit

Function IsWorkbookOpen(wbName As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Len(Workbooks(wbName).Name)
End Function

Sub CheckOpen()
If IsWorkbookOpen("Classeur2") = True Then MsgBox "File Open"
End Sub

Merci
 
Re,

non , ton code , ce n'est pas ce que je veux , ( enfin si je l'ai bien compris ), je veux q'un macro s'execute toute les econdes enfin tout le temps qu'elle verifie un truc tout le temps !!!

Merci , romfret
 
Re

Tous le temps, chaque seconde, cela rendrait excel lent, très lent, il te faut une macro évenementielle, à chaque mouvement

Mais que fais ta macro qu'elle doit resté s'exécuté, tu nous fais une usine à gaz comme dirait Thierry, lol

@Christophe@
 
Re

Selon, moi tu devrait utilisé une macro Evénementielle, Worksheet Selection Change

A chaque mouvement sur ta feuille, ta macro s'exécute, mais faut voir ta macro!

Explique moi un peu le but de ta macro, parce que il y a surement meilleur solution

@Christophe@
 
Re,

Le but de ma macro est de desactiver un bouton avec la commande :
CommandButton1.Enabled = False
SI un certain classeur est ouvert .

Voila, J'espere avoir ete un peu plus explicite


@mic@lemement, romfret
 
Re

Pourquoi ne laisse tu pas le boutton enabled et avec la fonction que je t'ai donné plus haut:

Exemple:

Private Sub Commandbutton1_click()
If IsWorkbookOpen("Classeur2") = false Then MsgBox "Exécution impossible"
Else
...
'Le code que tu voulais exécuté
...
End if
End sub

Comme cela l'utilisateur pourrat cliquer sur le boutton, mais si le Classeur2 n'est pas ouvert, il aura un message

Si le classeur est ouverte la macro s'exécute

Quand penses tu?

N'oublie pas de mettre dans un module la fonction:

Function IsWorkbookOpen(wbName As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Len(Workbooks(wbName).Name)
End Function


Dis moi quoi, mais selon moi c'est la meilleur solution

@Christophe@
 
Re,


Oui c'est pas mal ...

Sauf que c'est le contraire, si le classeur est fermé la macro s'exécute.
Je vais pourvoir modisier cela , j'ai quand meme un peu d'experience vb ! LOL


Merci, je vais donc tester ca ! , romfret
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
479
Réponses
23
Affichages
1 K
Réponses
21
Affichages
2 K
Réponses
2
Affichages
584
Réponses
6
Affichages
1 K
Retour