Bonjour,

J’aimerais créer un fichier capable de calculer la date d’arrivée de marchandise selon la date confirmée par le fournisseur et le temps de transit propre à chaque fournisseur. J’ai créé des formules pour chaque temps de transit par fournisseur. Je chercher à insérer ces formules selon le fournisseur de la ligne correspondantes.

Test base de donnée - temps de transit.xlsm

Je travaille essentiellement avec des fonctions et formules mais je ne trouve pas de moyen pour inclure autant de donnée (j’ai plus de 20 fournisseurs avec des temps de transit différents). J’espère que les macros peuvent remédier à ce problème mais n’ayant encore jamais « coder » je suis un peu perdue. Après maintes recherches sur internet j’ai tenté plusieurs codes mais malheureusement aucun ne fonctionnent.

J'ai essayer, entre autre, d'inclure la formule directement dans la macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Transit()
Dim Fournisseur As Integer
Dim Cell As Range
With ThisWorkbook.Worksheets("Base de donnée")
    Fournisseur = .Cells(Rows.Count, 3).End(xlUp).Row
    For Each Cell In Range("B2:B15")
        If Fournisseur Like "ESS" Then Cell.Offset(0, 1).FormulaR1C1 = "=IF(OR(WEEKDAY(R[-3]C4)=3, WEEKDAY(R[-3]C4)=4), R[-3]C4+5-WEEKDAY(R[-3]C4)+7,R[-3]C4+3-WEEKDAY(R[-3]C4)+14))"
    Next Cell
 
End With
End Sub
Ou de copier la formule et la copier dans la cellule correspondante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Transit2()
Dim Fournisseur As Integer
Dim Cell As Range
With ThisWorkbook.Worksheets("Base de donnée")
    Fournisseur = Cells(Rows.Count, 3).End(xlUp).Row
    For Each Cell In Range("B2:B15")
    If Fournisseur Like "ESS" Then
    Sheets("Temps de transite Fournisseur").Select
    Range("B3").Select
    Selection.Copy
    Sheets("Base de donnée").Select
    Cell.Offset(0, -1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    End If
    Next Cell
 
End With
End Sub

Je suppose que mon problème est de lier la colonne B (date d’arrivée) avec la colonne C (fournisseur) et de faire une boucle sur la totalité de mes lignes.
Pourriez-vous svp m’aider à comprendre quelles sont mes erreurs ?
Merci d’avance pour votre précieuse aide.