Microsoft 365 Problème de transfert de données

SCorbeil

XLDnaute Nouveau
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").

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:
Haut Bas