Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro ativée tout le temps

  • Initiateur de la discussion romfret
  • Date de début
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
 
@

@Christophe@

Guest
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@
 
R

romfret

Guest
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
 
R

romfret

Guest
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.
 
@

@Christophe@

Guest
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@
 
R

romfret

Guest
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
 
R

romfret

Guest
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
 
@

@Christophe@

Guest
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@
 
R

romfret

Guest
Re,

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 ?


Merci d'avance, romfret
 
@

@Christophe@

Guest
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@
 
R

romfret

Guest
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
 
@

@Christophe@

Guest
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@
 
R

romfret

Guest
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…