IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

lancer une macro sur une cellule ou sur du texte


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 41
    Points : 29
    Points
    29
    Par défaut lancer une macro sur une cellule ou sur du texte
    Bonjour,


    Je souhaiterais pouvoir lancer une macro à partir d'un texte placé dans une cellule ou directement en cliquant sur la cellule (comme "un lien hypertexte")

    Merci de me donner une solution

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Utilises l'evenement Worksheet_Change
    Jérôme

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta réponse, mais j'ai besoin d'un peu d'aide supplémentaire
    Pour etre un peu plus explicite, j'aurais besoin que le fait de cliquer sur le texte cumul d'une feuille (j'en ai plus de 1000), la feuille "cumul" qui est la premiere de mon classeur s'active.

    Au préalable j'avais un bouton sur la feuille mais je ne sais pas changer l'affectation du bouton en sélectionnant toute les pages de mon classeur, d'ou l'utilité de pouvoir agir sur le texte, ou la cellule afin de pouvoir tout modifier de manière assez simple.

    Merci

  4. #4
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Il faut placer ceci dans le code de ta feuille, dès que tu clic sur la cellule A1 tu vas te retrouver sur la feuille cumul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo fin
    If Target.adress = Cells(1, 1).adress Then Worksheets("cumul").Select
    fin:
    End Sub

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    j'ai déjà ça comme code dans ma page donc je pense que je dois changer le terme target mais je ne sais pas trop comment désolé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row < 9 Or Target.Row > 23 Or Target.Column < 1 Or Target.Column > 10 Then Exit Sub
    Range("a9:j23").Interior.ColorIndex = xlNone
    Range("a" & Target.Row & ": j" & Target.Row).Interior.ColorIndex = 36
    End Sub

  6. #6
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Ton codeactuel sert pour une mise en forme mais étant fait par exclusion il est difficile de mettre une autre condiftion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row >= 9 And Target.Row <= 23 And Target.Column <= 10 Then 
        Range("a9:j23").Interior.ColorIndex = xlNone
        Range("a" & Target.Row & ": j" & Target.Row).Interior.ColorIndex = 36
    End If
    End Sub
    J'ai pas testé mais ca ne devrait pas changer le fonctionnement

    Ensuite tu ajoutes le code de diude54
    Jérôme

  7. #7
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    En combinant les deux ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    on error goto fin 'au cas ou la feuille cumul n'existe pas on ne fait rien
    If 9<= Target.Row <=23 And Target.Column <= 10 Then 
        Range("a9:j23").Interior.ColorIndex = xlNone
        Range("a" & Target.Row & ": j" & Target.Row).Interior.ColorIndex = 36
    End If
    If Target.adress = Cells(1, 1).adress Then Worksheets("cumul").Select
    fin:
    End Sub

  8. #8
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Tiens, je ne savais pas que l'on pouvais borner de cette façon

    EDIT : Dans mon test, la condition est vrai meme si la Row = 2
    Jérôme

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    merci de votre aide mais j'ai trouvé sur base d'un autre code que j'avais déjà utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    page = ActiveCell.Offset(rowOffset:=0, columnOffset:=0).Text
    On Error GoTo a:
    Sheets(page).Activate
    If Target.Row < 9 Or Target.Row > 23 Or Target.Column < 1 Or Target.Column > 10 Then Exit Sub
    Range("a9:j23").Interior.ColorIndex = xlNone
    Range("a" & Target.Row & ": j" & Target.Row).Interior.ColorIndex = 36
    Sheets(page).Activate
    a:
    End Sub

  10. #10
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Effectivement, j'utilise cette méthode, qui n'en est pas une puisqu'elle est fausse, dans un de mes codes pour borner les colonnes mais je n'avais jamais eu d'erreurs, je vais changer cette partie.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Macro Excel pour se positionner sur une valeur d'une liste déroulante
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/09/2013, 12h57
  2. [XL-2007] Lancer une macro lorsque l'on clique sur une cellule
    Par catetesse dans le forum Excel
    Réponses: 3
    Dernier message: 28/09/2012, 11h57
  3. problème sur une macro pour une conversion en VB6.3
    Par Zoldick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2008, 14h41
  4. Réponses: 2
    Dernier message: 03/10/2007, 13h47
  5. Requete sur une table qui pointe 2 fois sur une autre
    Par Satch dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/01/2006, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo