Cellule qui s'efface toute seule après 3 secondes

Bonjour,
Je créé un petit programme et je n'arrive pas à trouver mon bonheur...
J'utilise un fichier Excel, sur lequel j'utilise 2 feuilles différentes, 1 pour inscrire mes données et l'autre pour cacher des aspects afin de faire fonctionner mon programme. J'ai une zone de liste déroulante (dans ma première feuille où j'entre mes données) qui est reliée à une cellule (de ma feuille2) et j'aimerais que cette cellule s’efface toute seule après 3 secondes. Attention, la feuille2 je ne la touche pas (elle est masquée), donc, je ne peux pas faire "Enter" pour changer de cellule dans cette feuille. Je peux uniquement faire "Enter" dans ma feuille1 (où j'entre mes données).

On m'avait transmis ce procédé qui fonctionne uniquement si je fais "Enter" si je suis sur la feuille2 alors que je suis sur la feuille1 :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$V$14" Then
Application.Wait Time + TimeSerial(0, 0, 3)
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End If
End Sub

Je sais pas si je suis très compréhensible dans mes explications.

Merci d'avance pour votre aide.

Configuration: Windows / Chrome 85.0.4183.121

6 réponses

  1. Bonjour,
    Cette macro est dans quelle feuille ?

    Dans ce code, il devrait y avoir des actions pour les 2 feuilles (enter en feuille 1 et clear en feuille 2) et ça n'est pas le cas

    Ou alors j'ai mal compris le sujet !?

    Il faudrait partager votre fichier, que je puisse mieux voir et aussi connaitre le nom des feuilles
    0
    1. Bonjour,

      C'est parfaitement ça! La macro est dans ma feuille2 (MASQUE)

      Ma feuille1 (CONTRÔLE) et ma feuille2 (MASQUE)
      0
      1. Dans ce cas, il faut déplacer la macro dans la feuille 1

        Et si une action doit se réaliser dans la feuille 2, il faut ajouter :
        With Sheets("MASQUE")
        code
        End With
        0
    2. Salut Yoyo,

      Suite à ton dernier message, j'ai essayé mais cela ne fonctionne pas... c'est pourquoi j'ai changé un peu mon idée...

      La macro fonctionne parfaitement, seulement il y a un soucis... je suis obligé d'aller dans la cellule "V14", selectionner le texte et faire "Enter" pour que celle-ci fonctionne.

      Et ce que j'aimerais... c'est que cette cellule s'efface automatiquement après 3 secondes. Je pense que la macro ne s'effectue pas, parce que cette cellule est liée avec une toupie et bien sûr quand je clique sur ma toupie, le texte change mais je n'ai pas besoin de faire "Enter".

      Je sais pas si tu as un code à me conseiller ?

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Count > 1 Then Exit Sub
      If Target.Address = "$V$14" Then
      Application.Wait Time + TimeSerial(0, 0, 3)
      Application.EnableEvents = False
      Target.ClearContents
      Application.EnableEvents = True
      End If
      End Sub

      Merci pour ton aide.
      0
      1. Bonjour,

        A chacune de tes réponses tu dévoiles un truc nouveau, le mieux est de créer un exemple de fichier anonymisé et le mettre à disposition en suivant cette procédure
        1) Tu vas dans https://www.cjoint.com/
        2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
        3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
        4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
        5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
        =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
        Il existe aussi :
        1) https://mon-partage.fr/
        0
        1. Salut Mike,

          Merci pour ta réponse. Voici le lien. Quelques indication s'y trouve dans le fichier afin de te diriger plus facilement.

          Merci

          https://www.cjoint.com/c/JJooCccUyjP
          0
          1. Re,

            Alors plusieurs choses,
            soit tu enregistres ton classeur avec l'ancienne extension .XLS ou en .XLSM

            ensuite dans le Visual Basic d'Excel ouvre un module (clic sur Insertion/Module)

            colle ce code
            Sub efface()
            [H11] = ""
            End Sub


            dans les propriétés VBA de ta feuille, colle ce code

            Private Sub Worksheet_Change(ByVal Target As Range)
            If Target.Address = "$H$11" Then
            Application.OnTime Now() + TimeValue("00:00:05"), "efface"
            End If
            End Sub


            J'ai réglé le délai à 5 secondes.
            pourquoi passes tu par une zone de liste difficile à piloter, passe directement par une lis te validation en H11

            https://www.cjoint.com/c/JJoqjCzgPic
            0