Exécution Macro trop lent

Bonjour,

J'arrive pas trop à savoir comment fait à cette cas, quand j'écrit une code comme ci-dessous, l'exécution est très longtemps ou n'arrive pas.

comment je fait pour amélioré le code.

Merci à vous

If Cells(1, 1).Value = "OK" Then

Cells(1, 2).Value = "0"

Cells(1, 3).Value = "0"

Cells(1, 4).Value = "0"

End If

10controle.xls (31.50 Ko)

bonjour,

c'est malin de grouper les changements comme ceci

Private Sub Worksheet_Change(ByVal Target As Range)
     If Cells(1, 1).Value = "OK" Then Cells(1, 2).Resize(, 3).Value = "0"
End Sub

Merci, mais comment peut faire si je continue les résultats à la 7ème colonne, il y a deux colonne vide entre les deux résultats

Merci bcp

Bonjour,

Merci de mettre le profit de votre compte à jour. Votre version excel n'est pas mentionnée !
Aussi faire une petite présentation ici --> https://forum.excel-pratique.com/presentations

mais comment peut faire si je continue les résultats à la 7ème colonne

Essayez de comprendre ce que bsalv vous a proposé ....
Il vous suffit d'ajouter cette ligne

Cells(1, 7).Resize(, 3).Value = "0"

Par contre le code étant dans votre feuille et réagissant sur le OK en A1, remplacez le code dans votre feuille par celui-ci

Dim stpevt As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)

If stpevt = True Then Exit Sub 'pour éviter le plantage excel
If Not Intersect(Target, Range("A1")) Is Nothing Then
     If Target.Value = "OK" Then
        stpevt = True
        Cells(1, 2).Resize(, 3).Value = 0
        Cells(1, 7).Resize(, 3).Value = 0
    End If
End If
stpevt = False
End Sub

Si ok -->

Crdlt

Bonjour le fil, Salut Dan

Juste un chose primordiale sous risque de plantage d'Excel...

Quand on remplit des cellules dans un évènement Change, il faut impérativement désactiver les évènements

Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Cells(1, 1).Value = "OK" Then
    Cells(1, 2).Resize(, 3).Value = 0
    Cells(1, 7).Resize(, 3).Value = 0    
  Application.EnableEvents = True
End Sub

De plus mettre zéro entre guillemets, revient à mettre du texte, non !?

A+

Edit : oups Dan, pas vu ta modification, désolé le flag de sortie, une bonne idée aussi

Re;

Fil cloturé ?? sans commentaires, ni un remerciement.

Comme on n'est jamais mieux servi que par soi-même...

Merci BsAlv, Dan et BrunoM45 dont la solution a été choisie (enfin je crois) !

Rechercher des sujets similaires à "execution macro trop lent"