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

Signaler
-
Messages postés
17247
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
-
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

Messages postés
1065
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
14 octobre 2020
107
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
Bonjour,

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

Ma feuille1 (CONTRÔLE) et ma feuille2 (MASQUE)
Messages postés
1065
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
14 octobre 2020
107
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
Messages postés
9
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
14 octobre 2020

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.
Messages postés
17247
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
4 288
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 http://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 http://www.commentcamarche.net/faq/29493-utiliser-cjoint
Il existe aussi :
1) https://mon-partage.fr/
Messages postés
9
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
14 octobre 2020

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
Messages postés
17247
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
4 288
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
A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...