Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…