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.
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é.
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.
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
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 !!!
Tu as compris ce que je voulais, en effet peut etre qu'avec un macro evenementiel cela pourrait-faire affaire.
Quelle est la meilleure soluce a ton avic ?
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
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