Macro déclenchée selon valeur d'une cellule

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

melba

XLDnaute Occasionnel
Bonjour,

Est-il possible de déclencher une macro uniquement si une cellule contient une certaine valeur?

Merci pour votre réponse

Melba
 
Re : Macro déclenchée selon valeur d'une cellule

Bonsoir à tous


À melba :
Essayez ce code :​
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim d As Date, x As Range, y As Range, z As Range
    d = DateSerial(2012, 1, 1)
    Set x = Range("C8")
    Set y = Range("B10")
    Set z = Range("D11,F11")
    If Not Intersect(Cible, Union(x, y)) Is Nothing Then
        If IsDate(x.Value) Or IsEmpty(x) Then
            Application.EnableEvents = False
            If x.Value < d Then Union(y, z) = Empty Else If Not Intersect(Cible, y) Is Nothing Then If y.Value <> "x" Then z = Empty
            Application.EnableEvents = True
        End If
    End If
End Sub

Le code :​
VB:
Sub rst()
    Application.EnableEvents = True
End Sub
est un résidu que j'ai oublié d'effacer : vous pouvez le supprimer.

Une autre fois, pensez à poser d'emblée le véritable problème à résoudre plutôt qu'un problème bidon : tout le monde y gagnera son temps.


ROGER2327
#6248


Vendredi 6 Phalle 139 (Penis Angelicus - Vacuation)
29 Thermidor An CCXX, 8,6718h - coton
2012-W33-4T20:48:45Z
 
Re : Macro déclenchée selon valeur d'une cellule

Bonsoir,

ta demande est toujours imprécise et fluctuante.
J'en suis resté à la condition :
A NOTER : à compter de 2012 le statut invité existe mais n'est pas attribué systématiquement, uniquement si on coche la rubrique "invité" et c'est seulement à ce moment qu'on alimente les rubriques vêtements et chaussures
donc sans conviction...
 

Pièces jointes

Re : Macro déclenchée selon valeur d'une cellule

Bonjour,

Je suis désolée mais j'avais voulu joindre un fichier un fichier un peu simplifié et me suis rendue compte par la suite que dans mon fichier réel les adresses des cellules à effacer étaient un peu différentes :
j'ai réussi à intégrer le code de Roger dans mon fichier réel mais butais sur la zone D11:F11 car en fait il s'agissait des cellules D11 ET F11.
J'avais essayé en mettant un point virgule mais KO.
Je viens de tester vos 2 propositions et cela fonctionne très bien : un grand merci à vous.
Je le redis, vous êtes des as.
 
Re : Macro déclenchée selon valeur d'une cellule

Re bonjour,

Je vais encore vous fâcher mais j'ai à nouveau modifié ( mais très peu c'est promis) mon fichier pour le rendre plus rationnel.
Par conséquent les codes vont encore changer, surtout celui de la checkbox je pense car je fais disparaître la cellule B10.
Pourrais-je avoir votre avis?
Je joins un nouveau fichier avec mes tentatives d'explications.
Merci par avance
 

Pièces jointes

Re : Macro déclenchée selon valeur d'une cellule

Bonjour,

ce qui peut être rationnel pour Toi, peut ne pas l'être pour d'autres !
Tu sembles tâtonner aussi je vais te donner de quoi changer encore 😉.
Pourquoi ne pas masquer les lignes le moment voulu ?
En voici un exemple.
Le calcul de la somme est inclus dans la macro.
 

Pièces jointes

Re : Macro déclenchée selon valeur d'une cellule

Bonjour,

Merci pour ta proposition mais je voulais seulement que vous m'aidiez :

- à modifier les codes présents dans mon dernier fichier test pour prendre en compte le fait que la cellule B10 ne contiendrait plus rien.

Cacher les lignes n'irait pas car les infos ne seraient pas effacées en D11 et F11 mais seulement invisibles.
Or ces infos servent de base à des calculs qui se trouvent sur une autre feuille de mon classeur de travail.

Je joins à nouveau un fichier test où j'explique les changements que je veux apporter

Merci pour votre collaboration
 

Pièces jointes

Re : Macro déclenchée selon valeur d'une cellule

Bonjour,

n'ayant pas de réponse à mon dernier post j'ai utilisé le code de Roger dans mon fichier.
Serait-il possible de me traduire son code pour le cas où j'aurais à le modifier ?

Private Sub Worksheet_Change(ByVal Cible As Range)
Dim d As Date, x As Range, y As Range, z As Range
d = DateSerial(2012, 1, 1)
Set x = Range("C8")
Set y = Range("B10")
Set z = Range("D11,F11")
If Not Intersect(Cible, Union(x, y)) Is Nothing Then
If IsDate(x.Value) Or IsEmpty(x) Then
Application.EnableEvents = False
If x.Value < d Then Union(y, z) = Empty Else If Not Intersect(Cible, y) Is Nothing Then If y.Value <> "x" Then z = Empty
Application.EnableEvents = True
End If
End If
End Sub

Merci par avance
 
Re : Macro déclenchée selon valeur d'une cellule

Bonjour à tous

Suite et fin ? Un nouvel essai dans le classeur joint.​


ROGER2327
#6264


Mardi 10 Phalle 139 (Sainte Nitouche, orante - fête Suprême Quarte)
3 Fructidor An CCXX, 3,5357h - lycoperdon
2012-W34-1T08:29:09Z
 

Pièces jointes

Re : Macro déclenchée selon valeur d'une cellule

Bonsoir,

Un grand merci à tous et en particulier à Roger pour son dernier essai :

ça fonctionne à merveille.
De plus, j'arrive presque à comprendre le code, évidemment je ne saurais pas l'écrire.
J'ai quand même réussi à le modifier un peu.

J'aurais une toute dernière modification à apporter ( je joins un fichier) et là je n'ose pas me lancer de peur de tout chambouler:

Je ne comprends pas très bien cette phrase ,est ce celle qui permettrait de faire la modif?

If IsDate(x.Value) Or IsEmpty(x) Then
Application.EnableEvents = False

Peut-être faut il introduire un autre argument comme Set y = Range("E11") pour la cellule A11?
Merci pour ce dernier coup de pouce

@+
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
7
Affichages
343
Réponses
3
Affichages
253
Réponses
9
Affichages
508
Réponses
7
Affichages
681
Retour