Macro par clique dans cellule

Bonjour (encore )

J'ai un problème pour une de mes macros, je voudrais qu'elle se lance lorsque je clique sur une cellule.

Cependant j'ai deux problèmes:

  • Déjà il comprend pas sur quelle cellules on doit cliquer il se déclenche d'une manière que je ne comprend un peu au hasard.
  • Ensuite ma macro tourne en boucle lorsque je la valide alors que je voudrais qu'elle ne se fasse qu'une fois par clique.
Ci-joint le code pour mieux comprendre (c'est la VBA sur la feuille 1 la deuxième partie)

Merci d'avance

34essai.xlsm (30.83 Ko)

Bonjour,

J'ai un peu de mal à comprendre exactement ce que tu veux faire.

En tout cas ta macro présente sur ta feuille 1 s’exécute quand tu change une valeur d'une des cellules de ta feuille.

Dans ce cas elle regarde (sur la même ligne) si tu as une valeur dans la première cellule de la ligne et si tu en as une elle met la date, sinon elle s'arrête.

Si tu veux faire en sorte que ta macro s'exécute à chaque fois que tu clic sur une cellule, il faut que (dans ta feuille de code) tu modifie le type d'exécution (qui ce trouve en haut à droite de ta fenêtre), en l’occurrence sur ta macro tu est sur 'Change'. Il faut donc que tu la mette sur SelectionChange et comme ça, dès que l'utilisateur cliquera sur une autre cellule ta macro s'exécutera.

Mais dans tout les cas pour que celle-ci fonctionne il faut que tu ais une valeur dans la première colonne de la ligne où la cellule a été sélectionnée.

En espérant avoir été clair

Bonjour,

L'évènement Change de la feuille se produit à chaque fois que tu modifies une cellule quelconque de la feuille.

Avec ton code, chaque modification d'une cellule de la colonne A est suivie d'une modification de la cellule adjacente en colonne B . Cette modification en colonne B relance normalement la procédure associée à l'évènement Change.

L'instruction Application.EnableEvents = False, évite de relancer la procédure suite à la modification de la cellule en colonne B .

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 And Target.Column = 1 Then
        Application.EnableEvents = False
        If Target <> "" Then
            Target.Offset(0, 1) = Date
        Else
            Target.Offset(0, 1) = ""
        End If
        Application.EnableEvents = True
    End If
End Sub

A+

Je disais bien que ça allait poser un problème de compréhension

En gros cette partie est ok c'est à partir de If Not Application.Intersect(Target, Range("D1")) Is Nothing Then que ça me pose problème.

Euh !

Tu peux nous indiquer à quel endroit de ton code on trouve cette instruction ?

Perso, je ne la vois nulle part.

A+

A oui en effet je suis pas doué c'était pas la bonne version

la voilà je remplace aussi dans le 1er message

18essai.xlsm (30.83 Ko)

Pour la raison évoquée précédemment, il faut désactiver l'évènement

    If Not Application.Intersect(Target, Range("D1")) Is Nothing Then
        Application.EnableEvents = False
        If MsgBox("Voulez-vous créer un nouveau registre journal ?", vbYesNo, _
        "Demande de confirmation") = vbYes Then
            Range("D1").Value = Range("D1").Value + 1
            Range("G1") = Date
        End If
        Application.EnableEvents = True
    End If

A+

Merci en effet y a plus de boucle infini cependant ça ce fait toujours de manière aléatoire une idée de solution?

ça ce fait toujours de manière aléatoire une idée de solution ?

Je ne comprends pas ce que tu entends par "aléatoire".

Tel qu'elle est conçue, ta procédure effectue l'incrémentation de D1 et inscrit la date système dans G1 à chaque modification de la cellule D1.

A+

Ce que je voudrais faire c'est que au clique gauche de la souris la message box apparaît . Or actuellement il faut que je double clique sur la cellule puis que je clique sur une autre cellule.

Je viens de lire que c'est compliqué de faire ça serait il possible alors qu'a la place d'une cellule ce soit un bouton et si oui comment faire pcq pour le moment je n'ai utilisé les boutons qaue sur des macros que j'ai enregistré ?

Merci d'avance

EDIT: Bon en cherchant un peu plus et en bidouillant j'ai réussi à le faire sur un clique bouton et sans que sa boucle.

Merci à vous pour votre aide

Rechercher des sujets similaires à "macro clique"