• Initiateur de la discussion Initiateur de la discussion duplaly
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

duplaly

XLDnaute Occasionnel
Bonjour
J'ai cette formule dans la colonne K2 « SI(OU(J2=0;C2=0);"";(J2-C2)) ».
Je voudrais la mettre en vba dans le Worksheet_Change et je ne sais pas comment.
Toute aide serait appréciée.
Merci à l'avance
 
Re : Fonction si

Salut duplaly, salut le forum,

Tout dépend de ce que tu souhaites obtenir et comment tu souhaites utiliser cette formule.
Dans le cas de la modification uniquement de la cellule K2 et si seule la valeur résultante t'intéresse, essayes ceci dans l'évènement Worksheet_Change :
Code:
if range("J2")=0 or range("c2")=0 then

range("K2").clear '!à vérifier : clear=effacement
else
range("K2")=range("J2")-range("C2")
endif
 
Re : Fonction si

Bonjour à toutes et à tous,

Une autre suggestion avec le code ci-après :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Range("j2") = 0 Or Range("c2") = 0 Then
        Range("k2") = ""
    Else
        Range("k2") = Range("j2") - Range("c2")
    End If
    Application.EnableEvents = True
End Sub

A bientôt 🙂
 
Re : Fonction si

Peut-être ceci en appuyant sur la touche "Suppr" pour la ligne concernée et la colonne K avec les références en colonnes J et C :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
    ' Test pour la colonne K
    If Target.Column = 11 Then
        
       If ActiveCell.Offset(0, -1) = 0 Or ActiveCell.Offset(0, -8) = 0 Then
        Target = ""
    Else
        Target = ActiveCell.Offset(0, -1) - ActiveCell.Offset(0, -8)
    End If
    End If
Application.EnableEvents = True
End Sub
 
Re : Fonction si

Bonjour, le Fil, le Forum,

Merci pour l'aide. Si je veux que la formule s'applique pour la colonne au complet, je fais comment.

Comme ceci ?

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    [c:c].SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Offset(, 8).FormulaR1C1 = _
    "=IF(OR(RC[-1]=0,RC[-8]=0),"""",(RC[-1]-RC[-8]))"
    [j:j].SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Offset(, 1).FormulaR1C1 = _
    "=IF(OR(RC[-1]=0,RC[-8]=0),"""",(RC[-1]-RC[-8]))"
    Application.EnableEvents = True
End Sub

A bientôt 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
23
Affichages
463
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
140
Réponses
3
Affichages
250
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
341
Réponses
6
Affichages
319
Retour