Erreur pour remplir cellules après lancement macro chrono

  • Auteur de la discussion carrera56650
  • Date de début

carrera56650

Nouveau membre
Bonjour,
je travail depuis un certain temps sur un chrono avec temps intermédiaire via excel 2010.
En fouillant sur le net j'ai trouvé différentes macros que j'ai réussi à adapter à mes besoins (je suis novice en macro).
J'ai un soucis lorsque je lance mon chrono, je ne peux plus remplir aucune case dans mon tableau sous peine de créer une erreur 400.
tant que le chrono n'est pas lancé, je peux modifier toutes les cellules comme je veux, par contre lorsque le chrono est lancé je ne peux plus rien modifier.
si je veux mettre quoi que ce soit en A12 par exemple je dois le faire chrono non actif sinon ça bugg.
Voici le code VBA
Code:
Dim TpsInter As Variant
Dim ligne, press, press1, press2, memoirerappel As Integer

Sub chrono()
depart = Timer
Application.EditDirectlyInCell = False
Do
Tempsfinal = Timer - depart
TpsInter = Tempsfinal / 86400
Range("k1").Value = TpsInter
Range("d10").Value = TpsInter
If Range("k3").Value = 1 Then
Exit Sub
End If
DoEvents
Loop Until Range("a1").Value = 1
End Sub
Sub Intermediaire()
tpsarret = Range("k1").Value

If ligne = 1 Then a = Range("l" & ligne).Value Else a = Range("l" & ligne - 1).Value
Range("l" & ligne).Value = tpsarret
Range("m" & ligne).Value = tpsarret - a
ligne = ligne + 1
press1 = 0
press2 = 0
End Sub
Sub Arret()
Range("k3").Value = 1
Application.EditDirectlyInCell = True
End Sub
Sub initialisation()
Range("k1") = Null
Columns("l:q").Select
Selection.ClearContents
Range("d10").Value = Null
Range("k3").Value = Null
ligne = 1
memoirerappel = 0
press = 1
press1 = 0
press2 = 0
End Sub
Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 13 Then Target.Offset(0, 1).Value = Now

End Sub
Merci de votre aide.
 

Jerome MULDER

Habitué
Bonjour,

Ce doit être parce que ta macro est dans ta feuille. Il faudrait que tu créé contre active X a part non?
 

zeb

Modérateur
Plop,

@Jérôme :
Le DoEvents laisse pourtant la possibilité à l'utilisateur de saisir.

@Carrera :

Pourquoi ce Application.EditDirectlyInCell ?

Nocive ! Ah bon ?
Je trouve que c'est plutôt bien écrit.
Sauf les tabulations (merci pour nous).
Et cet horrible Columns("l:q").Select / Selection.ClearContents. Écris donc Columns("l:q").ClearContents

As-tu vraiment besoin d'écrire toi-même ce chrono ?
Sinon, il existe Application.OnTimer() qui me semble très adapté.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 841
Membres
1 586 372
Dernier membre
Meeithot
Partager cette page
Haut