A voir également:
- Execution automatique d'une macro
- Réponse automatique thunderbird - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Sommaire automatique word - Guide
6 réponses
Bonsoier Saidtoufik, bonsoir le forum,
Supprime la première ligne de ton code :
qui dit clairement : si A1 n'est pas la cellule active, sort de la procédure... Donc la suite du code n'est exécutée qui si tu sélectionnes A1.
Supprime la première ligne de ton code :
If Target.Address <> "$A$1" Then Exit Sub
qui dit clairement : si A1 n'est pas la cellule active, sort de la procédure... Donc la suite du code n'est exécutée qui si tu sélectionnes A1.
Bonjour,
La macro se déclenche lorsque tu change de cellule dans ta feuille....et uniquement lorsque que tu te places sur la cellule A1 (normal puisque ton IF lui demande de faire ça !! )
Pour la rendre automatique à l'ouverture du classeur tu dois utiliser workbook_open
et modifier un peu ton code
https://silkyroad.developpez.com/VBA/EvenementsClasseur/#LII-12
.
Cordialement,
Jordane
La macro se déclenche lorsque tu change de cellule dans ta feuille....et uniquement lorsque que tu te places sur la cellule A1 (normal puisque ton IF lui demande de faire ça !! )
Pour la rendre automatique à l'ouverture du classeur tu dois utiliser workbook_open
et modifier un peu ton code
Private Sub Workbook_Open() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets(1) ' ou une autre feuille.. a toi de voir With sh If .Range("A1").Value = 405 Then Call supprimer End If End With End Sub
https://silkyroad.developpez.com/VBA/EvenementsClasseur/#LII-12
.
Cordialement,
Jordane
Merci pour vos réponses
Je ne veux pas que la macro s’exécute à l'ouverture du classeur mais seulement lorsque A1 prend la valeur 405 comme exemple.
et quand j’enlève la ligne If Target.Address <> "$A$1" Then Exit Sub la macro s’exécute là où je clique aussi.
Ce que je veux c'est quand A1=405 alors la macro s’exécute automatiquement sans y aller sur la feuille et cliquer sur la cellule .
J’espère que c'est plus clair.
Je ne veux pas que la macro s’exécute à l'ouverture du classeur mais seulement lorsque A1 prend la valeur 405 comme exemple.
et quand j’enlève la ligne If Target.Address <> "$A$1" Then Exit Sub la macro s’exécute là où je clique aussi.
Ce que je veux c'est quand A1=405 alors la macro s’exécute automatiquement sans y aller sur la feuille et cliquer sur la cellule .
J’espère que c'est plus clair.
Ben pour détécter un changement dans la feuille... tu dois utiliser la méthode : Worksheet_change()
https://docs.microsoft.com/fr-fr/office/vba/api/excel.worksheet.change?redirectedfrom=MSDN
https://docs.microsoft.com/fr-fr/office/vba/api/excel.worksheet.change?redirectedfrom=MSDN
Private Sub Worksheet_Change(ByVal Target as Range) If Target.Address <> "$A$1" Then Exit Sub If Range("A1").Value = 405 Then Call supprimer End If End Sub
Merci Jordane45 pour la réponse .
Oui c'est ce que j'ai fait et que j'ai posté sur mon premier message mais ça ne fonctionne que quand je clique sur la cellule A1 et seulement quand je clique sinon rien ne se passe .
Oui c'est ce que j'ai fait et que j'ai posté sur mon premier message mais ça ne fonctionne que quand je clique sur la cellule A1 et seulement quand je clique sinon rien ne se passe .
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir Mr eriiic
voila ce que j'ai mis :
et c'est pareil et j'ai essayé avec "405" et 405 et cela a donné le mème résultat et je ne sais ou est le problème et j'ai entendu parler de :
mais je n'arrive pas à bien le manipuler et il me donne des messages d’erreurs du genre
Microsoft Visual Basic for Applications
---------------------------
Compile error:
Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules
voila ce que j'ai mis :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub If Range("A1").Value = 405 Then Call supprimer End If End Sub </bold><ital></ital> et voila ce qu'a mis Jordane : <bold>Private Sub Worksheet_Change(ByVal Target as Range) If Target.Address <> "$A$1" Then Exit Sub If Range("A1").Value = 405 Then Call supprimer End If End Sub
et c'est pareil et j'ai essayé avec "405" et 405 et cela a donné le mème résultat et je ne sais ou est le problème et j'ai entendu parler de :
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer) Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_LEFTUP = &H4
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
mais je n'arrive pas à bien le manipuler et il me donne des messages d’erreurs du genre
Microsoft Visual Basic for Applications
---------------------------
Compile error:
Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules
Je dois réinstaller mon PC, je vais en avoir pour qq jours et ne peux contrôler ce que tu as fait...
Tu ne dois mettre qu'une seule procédure : Worksheet_Change().
Comme tu as demandé déclenchement sur une saisie c'est ce que t'a proposé Jordane. il faut saisir et valider A1 pour que ça fonctionne, que ce code soit dans le module de la feuille concernée, et que tu aies accepté les macros.
eric
Tu ne dois mettre qu'une seule procédure : Worksheet_Change().
Comme tu as demandé déclenchement sur une saisie c'est ce que t'a proposé Jordane. il faut saisir et valider A1 pour que ça fonctionne, que ce code soit dans le module de la feuille concernée, et que tu aies accepté les macros.
eric