Réinitialisation d'un petit tableau

Chri8Ed

XLDnaute Occasionnel
Bonjour à tous

J'ai réalisé un petit tableau avec 3 cellules d'entrée de données (A1:C1)
A partir de ces 3 cellules, j'obtiens un résultat en D1

Je souhaiterais que mon tableau se réinitialise toutes les 30 secondes environs en
1) En effaçant les 3 cellules A1, B1 et C1
2) En replaçant la cellule active en A1 toutes les 30 secondes environs (Le curseur doit donc être sur A1)

Je souhaiterais aussi que :
Une entrée en B1 doit effacer la cellule C1 si celle-ci est pleine
Inversement une entrée en C1 doit effacer B1 si celle-ci est pleine

SI quelques fois quelqu'un a réalisé ce genre de macros peut m'aider
Merci d'avance

Je joins un exemple
(Je n'ai pas mis les calculs car cela alourdit le fichier et ne me pose pas de problème)

A+
 

Pièces jointes

  • Tableau avec réinitialisation.xlsm
    8.9 KB · Affichages: 17
  • Tableau avec réinitialisation.xlsm
    8.9 KB · Affichages: 16

Dranreb

XLDnaute Barbatruc
Re : Réinitialisation d'un petit tableau

Bonjour.

Dans un module standard :
VB:
Option Explicit
Private Temps As Date

Sub Proc()
Temps = 0
Application.EnableEvents = False
Feuil1.[A1:C1].Value = Empty
Application.EnableEvents = True
Application.Goto Feuil1.[A1]
Planifier
End Sub

Sub Planifier()
If Temps <> 0 Then Exit Sub
Temps = Now + TimeSerial(0, 0, 30)
Application.OnTime Temps, "Proc"
End Sub

Sub Déplanifier()
If Temps = 0 Then Exit Sub
Application.OnTime Temps, "Proc", Schedule:=False
Temps = 0
End Sub

Si une modification de cellule B1 ou C1 doit remettre à 0 le décompte des 30 secondes, dans le module de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
   Application.EnableEvents = False
   Me.[C1].Value = Empty
   Application.EnableEvents = True
ElseIf Target.Address = "$C$1" Then
   Application.EnableEvents = False
   Me.[B1].Value = Empty
   Application.EnableEvents = True
Else: Exit Sub: End If
Déplanifier
Planifier
End Sub
 
Dernière édition:

Chri8Ed

XLDnaute Occasionnel
Re : Réinitialisation d'un petit tableau

Bonjour Dranreb et merci pour ton aide
Je viens de faire des essais
Mais cela plante au niveau de Déplanifier()

Je remets le fichier avec tes macros

A+
 

Pièces jointes

  • Tableau avec réinitialisation.xlsm
    15.3 KB · Affichages: 18
  • Tableau avec réinitialisation.xlsm
    15.3 KB · Affichages: 19

Dranreb

XLDnaute Barbatruc
Re : Réinitialisation d'un petit tableau

Oui j'avais vu et pas trop compris.
Ça marche en remplaçant partout "Procédure" par "Proc"
Ajouter aussi Planifier avant la End Sub de la Sub Proc

Et dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Planifier
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Déplanifier
End Sub
 

Chri8Ed

XLDnaute Occasionnel
Re : Réinitialisation d'un petit tableau

Re,

Je pense bien avoir fait tout ce que tu m'as dit
Peut-être ai-je mal compris ?

Je renvoie la fichier rectifié

A+
 

Pièces jointes

  • Tableau avec réinitialisation.xlsm
    16.2 KB · Affichages: 16
  • Tableau avec réinitialisation.xlsm
    16.2 KB · Affichages: 18

Dranreb

XLDnaute Barbatruc
Re : Réinitialisation d'un petit tableau

Ah oui, j'avais oublié de signaler ça aussi: C'est pas TimeValue mais TimeSerial.
et aussi dans Déplanifier c'est Schedule:=False
En fait je n'ai mis, après tests, le code définitif du poste #2 qu'à 10h 30.
 

Discussions similaires

Réponses
8
Affichages
667

Statistiques des forums

Discussions
312 336
Messages
2 087 389
Membres
103 534
dernier inscrit
Kalamymustapha