Adapter formule SI en VBA

Bonjour,

J'ai cette formule qui fonctionne très bien quand le mois est complet mais qui ne permet pas de faire une saisie manuelle.

=SI(ET(K7=VRAI;C7="SNCF");120;SI(ET(K7=VRAI;C7="ENV");113;"")))&SI(ET(K7=VRAI;C7="BAT");113;"")&SI(ET(K7=VRAI;C7="MAN");113;"")&SI(ET(K7=VRAI;C7="RECY");113;"")&SI(ET(K7=VRAI;C7="MAN D");113;"")

Je ne sais pas comment la convertir en vba. Quelqu'un pourrait-il m'aider sur ce sujet ?

Merci bcp

Bonjour, voici un essai, Adapter "Feuil1" si besoin

La variable cible représente la cellule qui doit recevoir les informations donc soit une variable a renseigner ou directement l'adresse de cette dernière si elle est connu.

With Sheets("Feuil1")
If .Range("K7") = True And .Range("C7") = "SNCF" Then
    .Range(cible) = 120
Else
    If .Range("K7") = True And .Range("C7") = "ENV" Then
        .Range(cible) = 113
    Else
        .Range(cible) = ""
    End If
End If
If .Range("K7") = True And .Range("C7") = "BAT" Then .Range(cible) = .Range(cible) & 113
If .Range("K7") = True And .Range("C7") = "MAN" Then .Range(cible) = .Range(cible) & 113
If .Range("K7") = True And .Range("C7") = "RECY" Then .Range(cible) = .Range(cible) & 113
If .Range("K7") = True And .Range("C7") = "MAN D" Then .Range(cible) = .Range(cible) & 113
End With

SI vous avez des questions ou du mal à adapter le code je reste disponnible pour essayer de vous aider.

A+

Bonjour à tous,

s'il s'agit d'avoir une macro produisant le même "effet" que la formule, une autre solution :

With Sheets("Feuil1")
cible = "D6"  ' à adapter
If .Range("K7") = True Then
    Select Case .Range("C7").Value
        Case "SNCF"
        .Range(cible) = 120
        Case "ENV", "BAT", "MAN", "RECY", "MAN D"
        .Range(cible) = 113
    End Select
End If
End With

s'il s'agit d'avoir une macro qui écrit la formule dans une (ou plusieurs) cellule(s) c'est autre chose.

A+ de précisions

Rechercher des sujets similaires à "adapter formule vba"