Calcul "événementiel" (suite)

kioups

XLDnaute Occasionnel
bonjour à tous!

J'étais là hier à tenter de faire en sorte que certaines formules soient calculées uniquement si certaines cellules étaient modifiées, cela fonctionne très bien si l'on modifie une cellule à la fois. L'ennui, c'est que mes données seront souvent "rapatriées" par CTRL-C, CTRL-V. Si je fais cela, j'ai seulement les formules affectées par la première cellule de mon bloc (2 colonnes et 10 lignes à chaque fois) qui sont recalculées... Pour les autres, je dois rappuyer sur Entrée à chaque fois ? Comment faire en sorte que ma macro agisse sur TOUTES les cellules modifiées et pas seulement celle mise en surlignement ?

Code:
Private Sub Worksheet_Change(ByVal target As Range)

Dim i As Integer
Dim ligne As Integer
Dim Colonne As Integer
Colonne = target.Column
ligne = target.Row

If ligne > 5 Mod 18 And ligne < 16 Mod 18 Then
    If Colonne Mod 4 = 3 And Colonne < 143 Then
        Cells(ligne, Colonne + 2).Calculate
        For i = 143 To 149
            Cells(ligne, i).Calculate
        Next i
        Cells(ligne, Colonne + 3).Calculate
        ElseIf Colonne Mod 4 = 0 And Colonne < 143 Then
        Cells(ligne, Colonne + 1).Calculate
        For i = 143 To 149
            Cells(ligne, i).Calculate
        Next i
        Cells(ligne, Colonne + 2).Calculate
            
    End If
        
End If

            
End Sub

Peut-être ne dois-je pas l'appeler Worksheet_Change ?

Sinon, je crois me souvenir qu'il existe un code pour "accélérer" les calculs... Ca existe ça ??
 

Discussions similaires

Statistiques des forums

Discussions
314 062
Messages
2 105 226
Membres
109 293
dernier inscrit
Audrey2203