Bonjour à tous,
Nous travaillons à créer un petit outil de gestion de nos multiples projets d'usinage mécanique. Notre objectif est de suivre l'avancement des étapes de réalisation de chaque projet. Nous avons créé un tableur EXCEL qui nous permet de créer et gérer les paramètres initiaux du projet. Un UserForm (frmCreation) a été produit et il fonctionne très bien. Nous avons aussi créé un second formulaire (frmGestion) qui lui est dédié à la gestion des changements dans l'avancement de chaque projet. Ce dernier est nourri par une liste déroulante (cboListNoProjet). La recherche des informations sur le projet s'effectue très bien et les différentes informations disponibles sur le projet sont bien chargées dans le formulaire.
Les problématiques surviennent lorsque nous apportons les modifications aux données du projet et que nous appliquons la macro cmdModification. La majorité des cellules du tableau EXCEL bénéficie d'une mise en forme " date et/ou heure, spéciale (No Tél.), etc.". Certaines cellules utilisent des formules afin de présenter le statut de l'avancement et fournir certains indices de performance. De plus, ces mêmes calculs permettent de filtrer l'ensemble des projets sur la base de la priorité de traitement.
En second mandat, nous souhaitons automatiser l'ensemble des dates et heures du changement de statut pour chacune des étapes. Lorsque nous créons un projet chaque phase est automatiquement en mode "Non Débuté" si cette phase est nécessaire pour le projet ou "Aucun" dans l'éventualité que cette étape soit non nécessaire. Le chargé de projet amorce chaque projet par l'ouverture du dossier informatique. Une fois cette opération complétée, ce dernier fait passer le statut "DOSSIER" de "NON" à "OUI" et le projet peut donc être traité par le secteur des dessins d'atelier.
C'est à partir de cette étape que nous souhaitons amorcer l'automatisation des changements de statut. Pour le moment, le chargé de projet aura comme mandat de coordonner les changements de statut. Pour chacune des étapes, il devra modifier le statut à partir du formulaire de gestion (frmGestion). Il fera donc passer le statut de "Non Débuté" à "En cours". C'est au changement de statut de chacune des étapes que nous souhaitons créer une automatisation liée à un horodatage.
Au changement de statut :
"Non Débuté" à "En cours" = Date et Heure de début de cette étape (au format utilisé dans la feuille "GESTION").
"En cours" à "Terminé" = Date et Heure de fin de cette étape (au format utilisé dans la feuille "GESTION").
En résumé, nous avons rencontré la limite de nos connaissances et nous souhaitons faire appel aux experts VBA. Je souhaiterais vous faire parvenir une copie du fichier de travail, mais ce dernier semble trop volumineux.
J'invite les intéressés à m'orienter pour le transfert du fichier.
Merci à l'avance de votre collaboration.
Nous travaillons à créer un petit outil de gestion de nos multiples projets d'usinage mécanique. Notre objectif est de suivre l'avancement des étapes de réalisation de chaque projet. Nous avons créé un tableur EXCEL qui nous permet de créer et gérer les paramètres initiaux du projet. Un UserForm (frmCreation) a été produit et il fonctionne très bien. Nous avons aussi créé un second formulaire (frmGestion) qui lui est dédié à la gestion des changements dans l'avancement de chaque projet. Ce dernier est nourri par une liste déroulante (cboListNoProjet). La recherche des informations sur le projet s'effectue très bien et les différentes informations disponibles sur le projet sont bien chargées dans le formulaire.
Les problématiques surviennent lorsque nous apportons les modifications aux données du projet et que nous appliquons la macro cmdModification. La majorité des cellules du tableau EXCEL bénéficie d'une mise en forme " date et/ou heure, spéciale (No Tél.), etc.". Certaines cellules utilisent des formules afin de présenter le statut de l'avancement et fournir certains indices de performance. De plus, ces mêmes calculs permettent de filtrer l'ensemble des projets sur la base de la priorité de traitement.
En second mandat, nous souhaitons automatiser l'ensemble des dates et heures du changement de statut pour chacune des étapes. Lorsque nous créons un projet chaque phase est automatiquement en mode "Non Débuté" si cette phase est nécessaire pour le projet ou "Aucun" dans l'éventualité que cette étape soit non nécessaire. Le chargé de projet amorce chaque projet par l'ouverture du dossier informatique. Une fois cette opération complétée, ce dernier fait passer le statut "DOSSIER" de "NON" à "OUI" et le projet peut donc être traité par le secteur des dessins d'atelier.
C'est à partir de cette étape que nous souhaitons amorcer l'automatisation des changements de statut. Pour le moment, le chargé de projet aura comme mandat de coordonner les changements de statut. Pour chacune des étapes, il devra modifier le statut à partir du formulaire de gestion (frmGestion). Il fera donc passer le statut de "Non Débuté" à "En cours". C'est au changement de statut de chacune des étapes que nous souhaitons créer une automatisation liée à un horodatage.
Au changement de statut :
"Non Débuté" à "En cours" = Date et Heure de début de cette étape (au format utilisé dans la feuille "GESTION").
"En cours" à "Terminé" = Date et Heure de fin de cette étape (au format utilisé dans la feuille "GESTION").
VB:
Private Sub cmdModification_Click()
'Code pour le bouton Modifier :
Dim MaLigne As Integer
If Not cboListNoProjet.Value = "" Then
Sheets("GESTION").Select
MaLigne = cboListNoProjet.ListIndex + 4
'Bloc de cellules à modifier
'Entête de formulaire
Cells(MaLigne, 5) = Me.txtNomClient
Cells(MaLigne, 89) = Me.txtNoTel
Cells(MaLigne, 7) = Me.txtNoPO
'Onglet DESSINS
Cells(MaLigne, 27) = Me.cboDossier
Cells(MaLigne, 28) = Me.cboStatutDessins
Cells(MaLigne, 29) = Me.txtDtHrDebutDessins
Cells(MaLigne, 30) = Me.txtDtHrFinDessins
Cells(MaLigne, 12) = Me.txtHrsPlanDessins
'Onglet MATÉRIEL
Cells(MaLigne, 34) = Me.cboStatutMat
Cells(MaLigne, 35) = Me.txtDtHrDebutMat
Cells(MaLigne, 36) = Me.txtDtHrFinMat
Cells(MaLigne, 13) = Me.txtHrsPlanMat
'Onglet DESSINS C/F
Cells(MaLigne, 40) = Me.cboStatutDessinCF
Cells(MaLigne, 41) = Me.txtDtHrDebutDessinCF
Cells(MaLigne, 42) = Me.txtDtHrFinDessinCF
Cells(MaLigne, 14) = Me.txtHrsPlanDessinCF
'Onglet COUPE / FEU
Cells(MaLigne, 46) = Me.cboStatutCoupeFeu
Cells(MaLigne, 47) = Me.txtDtHrStartCoupeFeu
Cells(MaLigne, 48) = Me.txtDtHrFinCoupeFeu
Cells(MaLigne, 16) = Me.txtHrsTotPlanCoupeFeu
'Onglet PLIAGE
Cells(MaLigne, 52) = Me.cboStatutPliage
Cells(MaLigne, 53) = Me.txtDtHrStartPliage
Cells(MaLigne, 54) = Me.txtDtHrFinPliage
Cells(MaLigne, 17) = Me.txtHrsTotPlanPliage
'Onglet PERÇAGE
Cells(MaLigne, 58) = Me.cboStatutPercage
Cells(MaLigne, 59) = Me.txtDtHrStartPercage
Cells(MaLigne, 60) = Me.txtDtHrFinPercage
Cells(MaLigne, 18) = Me.txtHrsTotPlanPercage
'Onglet FABRICATION
Cells(MaLigne, 64) = Me.cboStatutFab
Cells(MaLigne, 65) = Me.txtDtHrStartFab
Cells(MaLigne, 66) = Me.txtDtHrFinFab
Cells(MaLigne, 19) = Me.txtHrsTotPlanFab
'Onglet JET SABLE
Cells(MaLigne, 70) = Me.cboStatutJetSable
Cells(MaLigne, 71) = Me.txtDtHrDebutJetSable
Cells(MaLigne, 72) = Me.txtDtHrFinJetSable
Cells(MaLigne, 20) = Me.txtHrsTotPlanJetSable
'Onglet PRIMER / PEINTURE
Cells(MaLigne, 76) = Me.cboStatutPP
Cells(MaLigne, 77) = Me.txtDtHrDebutPP
Cells(MaLigne, 78) = Me.txtDtHrFinPP
Cells(MaLigne, 21) = Me.txtHrsTotPlanPP
'Onglet INSPECTION
Cells(MaLigne, 82) = Me.cboStatutInspect
Cells(MaLigne, 83) = Me.txtDtHrDebutInspect
Cells(MaLigne, 84) = Me.txtDtHrFinInspect
Cells(MaLigne, 22) = Me.txtHrsTotPlanInspect
'On confirme que les modifications ont été effectuées
MsgBox ("Modifications effectuées au projet No. " & cboListNoProjet)
Else
'On demande de choisir un No. de projet à modifier
MsgBox ("Veuillez sélectionner le No. de projet à modifier")
'Exit Sub
ActiveWorkbook.RefreshAll
'Réappliquer le filtre de triage des projet par ordre de priorité
Range("TabGestJob[[#Headers],[STATUT]]").Select
ActiveSheet.ListObjects("TabGestJob").AutoFilter.ApplyFilter
With ActiveWorkbook.Worksheets("GESTION").ListObjects("TabGestJob").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
Unload frmGestion
frmGestion.Show 0
End Sub
En résumé, nous avons rencontré la limite de nos connaissances et nous souhaitons faire appel aux experts VBA. Je souhaiterais vous faire parvenir une copie du fichier de travail, mais ce dernier semble trop volumineux.
J'invite les intéressés à m'orienter pour le transfert du fichier.
Merci à l'avance de votre collaboration.
Dernière édition: