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 en cliquant sur un texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut lancer une macro en cliquant sur un texte
    Bonsoir à tous,
    j'aimerai savoir s'il est possible de créer un lien hypertexte qui redirigerait vers une macro: en gros, je voudrais que dès que je clique sur une phrase (ou sur une cellule), une macro se lance!
    Quelqu'un pourrait-il m'aider?
    Merci!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    bonsoir

    dans le code de ta feuille utilise ceci

    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.Address = Range("C2").Address Then
        msgbox "le traitement que tu veux faire" 'ligne à modifier
      End If
    End Sub
    le code est exécuté a chaque fois que tu clic sur une cellule et quand tu clic sur la cellule C2 le msgbox apparait
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    Bonsoir!
    Merci pour ton code, ca marche, mais j'ai un soucis qui fait que je ne peux pas l'utiliser dans mon programme car dès que je rentre une valeur dans la cellule par VBA, il lance la macro, alors que je voudrais qu'elle se lance uniquement lorsque c'est l'utilisateur qui clique sur la cellule!!
    On ne peux pas atteindre un macro via un lien hypertexte? Y a-t-il une autre solution?
    Merci!

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonsoir,

    Je me permet d'intervenir, ce que zyhack t'a proposé est pourtant tout à fait correct, es-tu certain d'avoir mis le code dans l'évènement Worksheet_SelectionChange et pas dans Worksheet_Change ?

    Dans l'évènement SelectionChange rien ne se passe si l'on modifie la cellule via VBA
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    Oui oui, j'ai bien mis selectionchange, mais quand je modifie la valeur par VBA, je suis obligé de faire un range.select car je dois modifier des propriétés de la cellule.enfin bref, mais j'ai un autre soucis, c'est que lorsque je supprime la cellule considéré, il me lance un débeugage dans le code de la feuille!
    Donc ca m'arrangerai en fait, de mettre directement un lien hypertexte! Vous savez comment faire?
    Merci

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par Bubale Voir le message
    je suis obligé de faire un range.select car je dois modifier des propriétés de la cellule
    Obligé pour modifier des propriétés...? Je peux voir ton code stp ?

    En attendant je regarde pour le lien hypertexte parce que de mémoire je ne me souviens plus du code mais je reste convaincu que cela doit fonctionner via le SelectionChange
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    Bonsoir
    creer un lien dans une feuille puis utilise l'evenement FollowHyperlink de la feuille comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    la macro
    End Sub
    Bonne soirée.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 59
    Points : 52
    Points
    52
    Par défaut
    Voila le code qui modifie la forme du texte entré dans la cellule J&Nolign. C'est aussi une partie de la colonne J de la page accueil dont je surveille la selection par l'utilisateur via le code Worksheet_SelectionChange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          Sheets("accueil").Select
          Range("J" & NoLign).Select
          ActiveCell.FormulaR1C1 = "Imprimer"
          With ActiveCell.Characters(Start:=1, Length:=8).Font
                .Name = "Arial"
                .FontStyle = "Gras"
                .Size = 10
                .Underline = xlUnderlineStyleSingle
                .Color = -16776961
                .TintAndShade = 0
                .ThemeFont = xlThemeFontNone
            End With

  9. #9
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Ceci ne pourrait pas faire l'affaire ? (sans sélectionner la cellule)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With Range("J" & NoLign)
        .Value = "Imprimer"
        .Font.Name = "Arial"
        .Font.Bold = True
        .Font.Size = 10
        .Font.Underline = xlUnderlineStyleSingle
        .Font.ColorIndex = 8 '<-- à adapter
    End With
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  10. #10
    Membre éprouvé
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Points : 963
    Points
    963
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 232.5, 147.75, _
            63#, 30.75).Select
        Selection.Characters.Text = "Imprimer"
       With Selection.Font
            .Name = "Arial"
            .FontStyle = "Gras"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleSingle
            .ColorIndex = 8
            End With
        Selection.OnAction = "Macro3"

Discussions similaires

  1. [XL-2010] Lancer une macro par clic sur une shape
    Par modus57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/03/2015, 12h14
  2. [XL-2013] lancer une macro en cliquant une case
    Par Amadeon dans le forum Excel
    Réponses: 13
    Dernier message: 06/09/2013, 21h23
  3. Réponses: 1
    Dernier message: 23/02/2011, 14h20
  4. lancer une macro sur une cellule ou sur du texte
    Par xadep dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/09/2009, 17h50
  5. Réponses: 4
    Dernier message: 14/11/2005, 15h58

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