Afficher date dans case sélectionnée avec souris

boutrol

XLDnaute Nouveau
Bonjour,

Je construits un outil permettant de calculer des durées de fonctionnement (en heure) de produits consommables dans l'industrie et j'arrive dans une partie ou je bloque.

Situation
J'ai plusieurs colonnes dont deux, avec une date et heure de début de fonctionnement de mes produits, et une autre avec la fin de fonctionnement de mes produits, aussi au format date heure. Une autre colonne calcule la différence entre les deux pour donner la durée de fonctionnement. Les autres colonnes contiennent des informations sur les conditions d'utilisations.
chaque ligne correspond à un produit utilisé, et à fur et à mesure que l'on utilise mes produits, on ajoute une ligne au tableau.

Objectifs
J'aimerais construire une macro sous VBA me permettant de:
- lorsque je clique avec la souris sur la case de la colonne "début de fonctionnement" l'heure et la date au moment du clique s'affiche dans la case. Au même moment, une fenêtre s'ouvre pour renseigner le type de produit que l'on utilise.
- lorsque je clique sur la case sur la même ligne que précédement, de la colonne "fin de fonctionnement", un fenêtre s'ouvre pour renseigner des info complémentaires, et l'heure et la date s'inscrivent alors dans la cellule sélectionnée.

Conditions
Il faut absoument renseigner un arrêt de fonctionnement du produit avant de pouvoir en démarrer un nouveau. Les dates et heures affichées après les click sur les cellules doivent pouvoir être modifiées.

Voilà, j'espère que j'ai été clair dans l'explication de mes souhaits. Merci d'avance à ceux qui se pencheront sur ce problème. Cordialement.
B.
 

Jam

XLDnaute Accro
Re : Afficher date dans case sélectionnée avec souris

Bonjour,

Je n'ai pas le temps de donner une solution clé en main néanmoins pour cela il te faudra utiliser l'événement de feuille "Worksheet_SelectionChange" par exemple:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "La cellule cliquée est: " & ActiveCell.Address
End Sub
Si tu mets ce bout de code dans le module d'une feuille à chaque fois que tu cliqueras une cellule elle te donnera son adresse.

Le bout de code suivant vérifie l'appartenance d'une cellule à une plage (nommée dans ce cas précis). Si c'est le cas elle enchaîne en affichant la forme usfMaForm sinon on sort:
Code:
Sub HeureDébutFin()
    If Intersect(ActiveCell, Range("rng_HeureDébut")) Is Nothing Then
        MsgBox "Vous devez sélectionner une cellule de la colonne Heure Début/Heure Fin.", vbOKOnly + vbInformation, "Erreur"
        Exit Sub
    End If
    usfMaForm.Show
End Sub

A partir de cela, tu dois pouvoir faire tout ce que tu souhaites ;)

Bon courage,
 

SergiO

XLDnaute Accro
Re : Afficher date dans case sélectionnée avec souris

Bonjour Boutrol et bienvenue sur XLD, bonjour Jam,

Ci-joint une ébauche qui fonctionne par un double-clic en colonne B ou C.
Bon test
@+
 

Pièces jointes

  • Boutrol.zip
    15.9 KB · Affichages: 74

boutrol

XLDnaute Nouveau
Re : Afficher date dans case sélectionnée avec souris

Bonjour,

Merci pour vos contributions, j'ai finalement opté pour la solution suivante, avec la colonne 6 pour début et la 7 pour fin:

Private Sub Worksheet_selectionchange(ByVal Target As Excel.Range)

If Target.Column = 6 And IsEmpty(ActiveCell) = True And IsEmpty(ActiveCell.Offset(-1, 0)) = False And IsEmpty(ActiveCell.Offset(-1, 1)) = False Then
ActiveCell.Value = Now
Call BladeNumberForm
Call Timer
End If

If Target.Column = 7 And IsEmpty(ActiveCell) = True And IsEmpty(ActiveCell.Offset(0, -1)) = False And IsEmpty(ActiveCell.Offset(-1, 0)) = False Then
ActiveCell.Value = Now
Call ChangeReasonForm
End If
End Sub

Cela marche assez bien.

J'avais bien aimé la version proposée avec le double click, mais si je veux modifier une cellule déjà remplie, le double click mets à l'heure "maintenant"...

Dans ma solution (issue de divers copier, coller) j'appelle une fonction timer qui me permet d'afficher les heures de fonctionnement qui s'égrènent, pour info:
Sub Timer()

If IsEmpty(B10000) = True Then
Application.OnTime Now + TimeValue("00:05:00"), _
"TimeUp"
End If

End Sub

puis,

Sub Timeup()
Workbooks("Alpha").Worksheets("duree").Range("J5").Value = Now
Call Timer

ou J5 correspond à la fonction "maintenant" (heure et date actuelle).

Lorsque je sélectionne une cellule, j'ai une fenêtre qui s'ouvre, et une liste de choix apparait, come dans l'exemple avec le fichier proposé Boutrol. Comment faire pour que par défaut il soit affiché dans la cellule cible du menu "-", si on ne selectionne pas A, B, ou C dans la liste proposée.

Normalement après cela, tous mes problèmes seront réglés... Merci d'avance.

B.
 

boutrol

XLDnaute Nouveau
Re : Afficher date dans case sélectionnée avec souris

Encore Merci,

Autre petite fonctionnalité qui me serait sympathique. On reprend le fichier Boutrol, fourni précédemment. Comment faire pour que dans la cellule G2, il s'affiche la durée de fonctionnement du produit en cours. Et dès qu'on remplace le produit par un neuf, la cellule G2 repart à 0, et affiche au fur et a mesure les heures et minutes qui passent?

Merci,F.
 

Discussions similaires

Réponses
9
Affichages
191

Statistiques des forums

Discussions
312 377
Messages
2 087 736
Membres
103 655
dernier inscrit
MOUNIRACH16