Bonjour,

J'ai absolument besoin de traduire en VBA une formule excel, cependant je ne sais pas faire cela..

Je vous explique pourquoi j'ai besoin de cette traduction :

J'ai une macro (comme vous pourrez le voir dans mon code) qui lance un inputbox, l'utilisateur choisit une valeur comprise entre 1 et 20, puis un 2ème inputbox lui demande de renseigner une date.
Selon la valeur du 1er inputbox, la date se stock à un endroit différent.

Ce que je cherche à faire, c'est, en plus de cela, que par rapport à l'endroit où va se renseigner la date, la cellule qui se trouve 2 colonnes plus loin (sur la même ligne) soit remplacée par la formule suivante (celle que je veux tradurie en VBA):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SI(IV5="";"";SI(C5<>"Aerostructure Service";"";SI(OU(ET(G5="Flex";KK5<=MOIS.DECALER(IV5;'parameters'!$B$2));ET(G5="OSW-Capacity";KK5<=MOIS.DECALER(IV5;parameters'!$B$3)));"";SI(G5="Flex";MOIS.DECALER(IV5;parameters'!$B$2);SI(G5="OSW-Capacity";MOIS.DECALER(IV5;'parameters'!$B$3))))))
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Option Base 1
Option Explicit
Private Sub Bouton4_Clic()
Dim liste(), DerLig As Long, l As Long, rev As Variant, mdir As Variant
With Worksheets("Workpackages Database & PP")
    DerLig = .Range("A" & .Rows.Count).End(xlUp).Row
    liste = .Range("A2:A200" & DerLig).Value
End With
rev = InputBox("Enter 1 for REV1, 2 for REV2, etc.", "REV Date Modification")
If rev = "" Or Not IsNumeric(rev) Then
    MsgBox "Canceled, Please Enter a number"
    Exit Sub
End If
If rev < 1 Or rev > 20 Then
    MsgBox "wrong rev number"
    Exit Sub
End If
rev = CInt(rev)
mdir = InputBox("SELECT THE DATE: (dd/mm/yy)", "REV x")
If Not IsDate(mdir) Then
    MsgBox "Canceled"
    Exit Sub
End If
For l = LBound(liste) To UBound(liste)
    Select Case rev
    Case 1
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("IV" & l + 1).Value = CDate(mdir)
    Case 2
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("IX" & l + 1).Value = CDate(mdir)
    Case 3
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("IZ" & l + 1).Value = CDate(mdir)
    Case 4
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JB" & l + 1).Value = CDate(mdir)
    Case 5
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JD" & l + 1).Value = CDate(mdir)
    Case 6
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JF" & l + 1).Value = CDate(mdir)
    Case 7
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JH" & l + 1).Value = CDate(mdir)
    Case 8
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JJ" & l + 1).Value = CDate(mdir)
    Case 9
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JL" & l + 1).Value = CDate(mdir)
    Case 10
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JN" & l + 1).Value = CDate(mdir)
    Case 11
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JP" & l + 1).Value = CDate(mdir)
    Case 12
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JR" & l + 1).Value = CDate(mdir)
    Case 13
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JT" & l + 1).Value = CDate(mdir)
    Case 14
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JV" & l + 1).Value = CDate(mdir)
    Case 15
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JX" & l + 1).Value = CDate(mdir)
    Case 16
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("JZ" & l + 1).Value = CDate(mdir)
    Case 17
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("KB" & l + 1).Value = CDate(mdir)
    Case 18
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("KD" & l + 1).Value = CDate(mdir)
    Case 19
        If Range("A2") = liste(l, 1) Then Sheets("Workpackages Database & PP").Range("KH" & l + 1).Value = CDate(mdir)
End Select
Next
 
End Sub
Merci!

Cordialement,

Adrien