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

Sebyyy -  
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   -
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

Yoyo01000 Messages postés 1720 Statut Membre 168
 
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
Sebyyy
 
Bonjour,

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

Ma feuille1 (CONTRÔLE) et ma feuille2 (MASQUE)
0
Yoyo01000 Messages postés 1720 Statut Membre 168
 
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
sebyyy Messages postés 14 Statut Membre
 
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
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 137
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebyyy Messages postés 14 Statut Membre
 
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
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 137
 
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