Microsoft 365 Private Sub Worksheet_Calculate()

Chasse

XLDnaute Occasionnel
Bonsoir le forum

Merci de bien vouloir vous pencher sur mon problème

Est-il possible de déclencher un code

Si la cellule qui vient d’être calculée (Colonne S) est identique avec la valeur de la cellule de la (colonne B) de la même ligne

VB:
Private Sub Worksheet_Calculate()
[COLOR=rgb(0, 0, 0)]'If Cells(Rows(Target.Row), 2) = Cells(Rows(Target.Row), 20) Then[/COLOR]

MsgBox ("fin de série mettre en archive")
End If

End sub



Merci et bonne soirée
 

Phil69970

XLDnaute Barbatruc
Un essai :
VB:
Private Sub Worksheet_Calculate()
Dim Derlig As Integer
Dim NumLig As Integer
Derlig = Range("B" & Rows.Count).End(xlUp).Row
NumLig = 2

For i = 2 To Derlig
    If Range("B" & NumLig).Value = Range("S" & NumLig).Value Then
        'Ici ton code que tu veux faire ......
        MsgBox ("fin de série mettre en archive pour la ligne B") & NumLig
    End If
    NumLig = NumLig + 1
Next i
End Sub
@Phil69970
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Dans ce cas ne passez pas par Worksheet_Calculate qui oblige à faire une boucle.
Passez par Worksheet_Change sur les colonnes F:S.
Si modif dans une de ces colonnes on déclenche la vérification que sur cette ligne.
Un essai ( sans archivage ) en PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("F3:S100")) Is Nothing Then
        Ligne = Target.Row
        If Cells(Ligne, "T") = Cells(Ligne, "B") Then
            MsgBox "Ligne " & Ligne & " à archiver."
        End If
    End If
End Sub
 

Pièces jointes

  • Chiron essai (1).xlsm
    32.3 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 623
Membres
103 608
dernier inscrit
rawane