Faire un appel à Worksheet_SelectionChange cellule active
Raph04
Messages postés
182
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai fait une fonction qui s'active lors du changement de selection :
Je souhaite faire un appel à cette fonction dans un Module séparé (on notera que j'ai mis mon sub en Public pour ça) en utilisé comme argument en entrée la cellule active.
J'ai essayé plusieurs commande pour appeler et plusieurs méthode pour donner l'argument, mais je n'arrive pas a faire cette appel.
Voici ce que j'ai essayé :
Mais rien ne fonctionne
J'ai fait une fonction qui s'active lors du changement de selection :
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
'mon code
End Sub
Je souhaite faire un appel à cette fonction dans un Module séparé (on notera que j'ai mis mon sub en Public pour ça) en utilisé comme argument en entrée la cellule active.
J'ai essayé plusieurs commande pour appeler et plusieurs méthode pour donner l'argument, mais je n'arrive pas a faire cette appel.
Voici ce que j'ai essayé :
Call Feuil1.Worksheet_SelectionChange(Range(ActiveCell))
Call Feuil1.Worksheet_SelectionChange(Range(ActiveCell.Address))
Call Feuil1.Worksheet_SelectionChange(ActiveCell.Range)
Run "Feuil1.Worksheet_SelectionChange", Range(ActiveCell.Address)
Run "Feuil1.Worksheet_SelectionChange", Range(ActiveCell.Address)
Run "Feuil1.Worksheet_SelectionChange", ActiveCell.Range
Mais rien ne fonctionne
7 réponses
-
Bonjour,
on notera que j'ai mis mon sub en Public pour ça
Aucune utilité car ta macro est une macro événementielle qui ne peut être exécutée que sur événement.
Pour l'activer, il te suffit de modifier la cellule concernée ou de le simuler, par exemple avecActiveCell.Value = ActiveCell.Value
-
Ha bah oui.
C'est une bonne idée ça.
Par contre ajouter la ligne :ActiveCell.Value = ActiveCell.Value
N'a pas permis de déclencher le changement de cellule.
Alors j'ai tout bonnement mis ça :Range("A1").Select
Et ça a fait l'affaire.
Merci !!
Mais juste pour info, ça pourra me servir plus tard car j'ai pas réussi à trouver la réponse sur internet :
Est-il possible de faire référence à la cellule active en pointant sur un objet de type Range ? -
Bonjour,
essaie ceci:
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Then MsgBox "Vous avez cliquez sur la cellule A1" End If End Sub
-
Bonjour,
ou tu ressors ton code dans une procésure séparée :Private Sub Worksheet_SelectionChange(ByVal target As Range) monCode target End Sub Sub proc1() monCode Range("A1:B3") ' exemple 1 monCode ActiveCell ' exemple 2 End Sub Sub monCode(plage As Range) MsgBox plage.Address End Sub
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Nan mais là ça marche avec juste le déplacement en cellule A1.
Maintenant ce que je me demande c'est comment faire référence au range de l'activecell au cas où il me faut le mettre en argument.
Est ce qu'on est plus sur du :ActiveCell.Range
ouRange(ActiveCell)
ou encoreRange(ActiveCell.address)
Mais tout ça me générait des erreurs. -
Peut-être comme ceci:
Private Sub Worksheet_SelectionChange(ByVal target As Range) If ActiveCell = "20" Then MsgBox ActiveCell.Address End If End Sub
-
Salut,
Wahou que de beau monde par ici... Salutations à tous!
J'y vais donc de ma petite contribution :
On enlève le "Private" de la procédure événementielle :Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox Target.Address End Sub
Et dans un module, l'appel :Sub MaMacro() Dim monRange As Range 'monRange = paramètre Target de l'événement Set monRange = Sheets("Feuil1").Range("B23") 'Worksheets("Feuil1") indique l'objet relatif à l'événement Worksheet_SelectionChange CallByName Worksheets("Feuil1"), "Worksheet_SelectionChange", VbMethod, monRange End Sub
Cool non ???
https://forums.commentcamarche.net/forum/affich-37622021-vba-appel-d-une-macro-dans-une-autre-macro
🎼 Cordialement,
Franck 🎶