Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formule "dynamique"

2 réponses
Avatar
Michel69
Bonjour à toutes et à tous,
Sur une feuille BDD j'ai des lignes remplies de Col A2 à Col Nxxx.
En col O3 j'ai une formules du style :
=SI(ET($H3="m";$I3="réalisée";$J3="x";$K3="x");Param!$B$7;"").
En col P3 j'ai une formule du style :
=SI(ET($H3="FN";$I3="réalisée";$J3="x";$K3="x");Param!$B$4;"")
Quelle serait la syntaxe VBA (dans Worksheet_change peut-être ?) pour qu'à
chaque enregistrement cette formule s'applique automatiquement sur la ligne
ou se situe l'enreg ?
Merci d'avance
Michel

2 réponses

Avatar
Daniel.C
Bonjour.
Essaie (la macro se déclenche en cas de saisie en colonne A) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Target.Column > 1 Then Exit Sub
Application.EnableEvents = False
Cells(Target.Row, "O").FormulaR1C1 =
"=IF(AND(RC8=""m"",RC9=""réalisée"",RC10=""x"",RC11=""x""),Param!R7C2,"""")"
Cells(Target.Row, "P").FormulaR1C1 =
"=IF(AND(RC8=""FN"",RC9=""réalisée"",RC10=""x"",RC11=""x""),Param!R4C2,"""")"
Application.EnableEvents = True
End Sub

Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
Bonjour à toutes et à tous,
Sur une feuille BDD j'ai des lignes remplies de Col A2 à Col Nxxx.
En col O3 j'ai une formules du style :
=SI(ET($H3="m";$I3="réalisée";$J3="x";$K3="x");Param!$B$7;"").
En col P3 j'ai une formule du style :
=SI(ET($H3="FN";$I3="réalisée";$J3="x";$K3="x");Param!$B$4;"")
Quelle serait la syntaxe VBA (dans Worksheet_change peut-être ?) pour qu'à
chaque enregistrement cette formule s'applique automatiquement sur la
ligne
ou se situe l'enreg ?
Merci d'avance
Michel


Avatar
Michel69
Bonjour Daniel
Un grand merci pour ta réponse, C'est génial.
Michel

"Daniel.C" a écrit :

Bonjour.
Essaie (la macro se déclenche en cas de saisie en colonne A) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Target.Column > 1 Then Exit Sub
Application.EnableEvents = False
Cells(Target.Row, "O").FormulaR1C1 =
"=IF(AND(RC8=""m"",RC9=""réalisée"",RC10=""x"",RC11=""x""),Param!R7C2,"""")"
Cells(Target.Row, "P").FormulaR1C1 =
"=IF(AND(RC8=""FN"",RC9=""réalisée"",RC10=""x"",RC11=""x""),Param!R4C2,"""")"
Application.EnableEvents = True
End Sub

Cordialement.
Daniel
"Michel69" a écrit dans le message de
news:
> Bonjour à toutes et à tous,
> Sur une feuille BDD j'ai des lignes remplies de Col A2 à Col Nxxx.
> En col O3 j'ai une formules du style :
> =SI(ET($H3="m";$I3="réalisée";$J3="x";$K3="x");Param!$B$7;"").
> En col P3 j'ai une formule du style :
> =SI(ET($H3="FN";$I3="réalisée";$J3="x";$K3="x");Param!$B$4;"")
> Quelle serait la syntaxe VBA (dans Worksheet_change peut-être ?) pour qu'à
> chaque enregistrement cette formule s'applique automatiquement sur la
> ligne
> ou se situe l'enreg ?
> Merci d'avance
> Michel