Problème VBA pour date/heure automatique

Résolu/Fermé
c_cile Messages postés 3 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 25 février 2013 - Modifié par c_cile le 25/02/2013 à 10:17
c_cile Messages postés 3 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 25 février 2013 - 25 févr. 2013 à 15:46
Bonjour,

Je ne m'y connais pas très bien en VBA et j'aurais donc besoin de votre aide.
Pour le travail, je dois faire un fichier qui permettra de calculer les productivités des préparateurs de commandes (préparation de commandes papier).
Pour cela, j'ai besoin de connaître l'heure de début et l'heure de fin de chacune de leurs prépa.
Pour ne pas leur faire perdre de temps en saisie et afin d'éviter qu'il ne marque eux-mêmes l'heure, je souhaite que chaque préparateur scanne sur excel (à l'aide d'une douchette) son profil (ex: PREP09), ensuite sur la même ligne le n° de la prep qu'il débute. Jusque là tout va bien j'ai réussi.
Ensuite, quand il revient de sa prep j'aimerais qu'il scanne son n° de prep dans la cellule I2 par exemple et qu'en effectuant cette action l'heure de fin s'inscrive automatiquement dans la colonne D sur la ligne correspondant à sa mission.

Quelques précisions: un préparateur à plusieurs prep, chaque n° de prep est unique.

Merci d'avance pour aide, parce que là je galère!!!

3 réponses

Bonjour,

J'ai regardé ton fichier
Voilà comment écrire ta macro

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then
    Target.Activate
    If ActiveCell.Value <> "" Then ActiveCell.Offset(0, 2) = Now
End If

If Target.Address = "$I$2" Then
If Range("I2") = "" Then Exit Sub
On Error GoTo PAS_TROUVE
    Dim N_prep
    N_prep = Range("I2").Value
    Columns("B:B").Select
    Selection.Find(What:=N_prep, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Offset(0, 2) = N_prep
    ActiveCell.Offset(0, 3) = Now
    Range("I2").Select
End If
Exit Sub

PAS_TROUVE:
On Error GoTo 0
Range("I2").Select
MsgBox "Référence " & N_prep & " intouvable!"
Exit Sub
End Sub


A+
1
c_cile Messages postés 3 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 25 février 2013
25 févr. 2013 à 15:46
MA-GNI-FI-QUE !!!!
tu peux pas savoir combien d'heures j'y ai passé et combien de forums j'ai parcouru avant de poster une demande ici.
C'est génial, merci beaucoup.
Très bonne fin de journée
Cécile
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 févr. 2013 à 11:21
Bonjour

où met on l'heure de début ? colonne B ?

colonne des "douchettes "début et fin

au besoin
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse



0
c_cile Messages postés 3 Date d'inscription lundi 25 février 2013 Statut Membre Dernière intervention 25 février 2013
25 févr. 2013 à 11:34
Bonjour Michel,
voici le lien du fichier en question:
https://www.cjoint.com/?CBzlAqG6txN

colonne A: scanne de son profil par le préparateur
colonne B: scanne de sa prep par le préparateur
colonne C: heure/date affichées automatiquement (après remplissage de la colonne A ou B peu importe)
cellule I2: scanne de sa mission par l'opérateur (au retour de sa préparation de commande)
colonne E: remplissage automatique heure/date après scanne du n° de prep correspondant en cellule I2

colonne D facultative (seulement si besoin de rappeler le n° de prep pour affichage heure/date en colonne E).

En espérant que toutes ces infos pourront vous aider,

Cécile
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 févr. 2013 à 12:52
re, suis absent cet aprem, mais qqn sur le forum te répondra certainement :o)
0