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

Macro excel éxécution automatique d'une macro si changement de valeur

  • Initiateur de la discussion Initiateur de la discussion 6xela
  • 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 !

6

6xela

Guest
Bonjour,

Je souhaite supprimer toutes les lignes d'une feuille Excel donc la cellule de la colonne D est égale à 0.

J'ai donc fait ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("$D$1:$D$1000")) Is Nothing Then
For i = [B65536].End(xlUp).Row To 2 Step -1
If Range("D" & i).Value = 0 Then Rows(i).Delete
Next
End If
End Sub

Cependant il ne fonctionne pas car la cellule de la colonne D est le résultat d'une formule...

Quelqu'un aurait il la solution?

Cordialement.
 
Re : Macro excel éxécution automatique d'une macro si changement de valeur

C'est corrigé mais ça ne marche pas... Le code fonctionne si je change manuellement la valeur de la cellule de la colonne D mais pas si celle-ci change à cause de la formule qu'elle contient
 
Re : Macro excel éxécution automatique d'une macro si changement de valeur

J'ai corrigé .
Merci.
Ça ne marche toujours pas. En fait le code fonctionne si je change manuellement la valeur de la cellule mais pas si ce changement résulte de la formule que la cellule contient.
 
Dernière modification par un modérateur:
Re : Macro excel éxécution automatique d'une macro si changement de valeur

Bonsoir 6xela et Bienvenue sur le forum, ERIC S,

Peut-être avec : If Range("D" & i).Value = 0 OR Range("D" & i).Value = "" Then Rows(i).Delete

Bonne soirée.

Jean-Pierre

Edit : Pfiou, à côté moi... voilà ce que c'est de ne lire qu'à moitié
 
Dernière édition:
Re : Macro excel éxécution automatique d'une macro si changement de valeur

Bonsoir,

Soit tu mets ta macro dans l'évènement Calculate de ta feuille, mais elle se lancera à chaque calcul de la feuille (pénible et long) soit dans la ligne:

If Not Application.Intersect(Target, Range("$D$1:$D$1000")) Is Nothing Then

Tu mets l'adresse des cellules qui font changer les valeurs de la colonne D.

Autre petit conseil pour accélérer les choses rajoute les lignes en rouge ci-dessous, sinon à chaque suppression de ligne ta macro sera rappelée et relancée en la rappelant encore et encore:

Code:
       [COLOR=red]Application.EnableEvents = False[/COLOR]
        For i = [B65536].End(xlUp).Row To 2 Step -1
            If Range("D" & i).Value = 0 Then Rows(i).Delete
        Next
        [COLOR=red]Application.EnableEvents = True[/COLOR]

A+
[Edition] Bonsoir eric
 
Re : Macro excel éxécution automatique d'une macro si changement de valeur

re

tu risques d'être obligé de passer par calculate et non change

mais cela risque de multiplier les boucles....

Désolé je suis pris maintenant, bonne chance
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

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