XL 2016 [Résolu] Durée entre deux dates en min

Théo gestin

XLDnaute Nouveau
Bonjour tout le monde ,

Je reviens vers vous pour solliciter votre aide. En fait, J'essaie de calculer la durée entre les deux dates , date du début qui existe dans la feuille " Production" dans la colonne E et la date de fin qui existe la feuille " Magasin " dans la colonne E , ensuite insérer le résultat dans une troisième feuille " durée" dans la colonne D à chaque fois qu'on fait le calcul . J'ai essayé de regarder les différentes discussions, mais j'y arrive pas.

Je souhaite aussi, quand on essaye d'insérer des données dans la feuille "Magasin", d'empêcher cette opération si le numéro d'OF n'existe pas dans la feuille "Production" avec un msg box qui afficher " cet ordre de fabrication n'est pas disponible "

Je vous remercie d'avance
 

Pièces jointes

  • theo-gestin-version-test.xlsm
    59 KB · Affichages: 14

Théo gestin

XLDnaute Nouveau
Bonjour Théo,
Dans votre fichier n'existent ni la feuille Production, ni la feuille Magasin.
Difficile de vous répondre.
Bonjour Sylvanu,

Merci pour votre retour rapide.
Je suis désolé, j'ai pas pris le bon fichier
Vous trouverez le bon fichier en pièces jointes.

Merci
 

Pièces jointes

  • theo-gestin-version-test (1) (Enregistré automatiquement).xlsm
    77.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un essai en PJ avec :
1- Une feuille Durée avec Date de Fin et Date de Prise et le calcul de la durée.
2- Dans la feuille Magasin on entre un N° de ressource.
Si ce numéro de ressource existe alors on remplit les colonnes BCD, sinon on émet un message d'erreur. Si la ressource n'a pas de N°OF alors on émet un message d'erreur.
Code:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A2:A1000")) Is Nothing Then
        If Not IsError(Application.Match(Target, Sheets("Production").Range("A:A"), 0)) Then
            IndexW = Application.Match(Target, Sheets("Production").Range("A:A"), 0)
            If Sheets("Production").Cells(IndexW, "B") <> "" Then
                Cells(Target.Row, "B") = Sheets("Production").Cells(IndexW, "B")
                Cells(Target.Row, "C") = Sheets("Production").Cells(IndexW, "C")
                Cells(Target.Row, "D") = Sheets("Production").Cells(IndexW, "D")
            Else
                MsgBox "Désolé, pas de N° OF associé à la ressource " & Target
                Application.EnableEvents = False
                Target = ""
                Application.EnableEvents = True
            End If
        Else
            MsgBox "Ce N° de ressource n'existe pas."
            Application.EnableEvents = False
            Target = ""
            Application.EnableEvents = True
        End If
    End If
End Sub
 

Pièces jointes

  • theo-gestin-version-test (2) .xlsm
    74.6 KB · Affichages: 4

Théo gestin

XLDnaute Nouveau
Bonjour Sylvanu ,
1- Pour la feuille durée , dans la colonne date de prise, ca m'affiche des dates un peu bizarres ( 0/01/0001 0:00), je sais pas pourquoi
2- Ce que je veux, c'est plutôt le N° d'OF, parce que sur une ressource, on peut avoir plusieurs OF ( un numéro d'OF est unique). Par contre , j'ai essayé avec votre proposition. Quand une ressource n'existe pas, ca affiche bien le message, mais ca remplit les colonnes BCD alors qu'il faut rien insérer ces lignes.

Merc d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Renvoyez un fichier renseigné car pour moi, si la ressource n'existe pas alors on est dans une branche message et alors aucune colonne n'est remplie. je ne comprends pas.
Pour les durée, mettre en C2 :
VB:
SIERREUR(SI(INDEX(Magasin!E:E;EQUIV(Magasin!A2;Production!A:A;0))=0;"";INDEX(Magasin!E:E;EQUIV(Magasin!A2;Production!A:A;0)));"")
J'avais oublié de traiter les valeurs nulles.
 

Théo gestin

XLDnaute Nouveau
Bonjour,

ça me donne ça.
Capture1.PNG
Capture2.PNG
 

Pièces jointes

  • theo-gestin-version-test (2) .xlsm
    77.9 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Evidemment cela pose problème puisque je gère les erreurs dans la feuille et que vous attendiez une gestion d'erreur dans l'userform.
En PJ une gestion d'erreur dans l'userform ( userform2/Cmd_Enregistrer_Click)
Je gère les erreurs sur les 4 données demandées.
J'ai rajouté un message d'alerte dans l'userform lui même.
 

Pièces jointes

  • theo-gestin-version-test (2) (2).xlsm
    75.9 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki