Changer une valeur d'une ActiveCell quand elle est égale à 0

Leskwal

XLDnaute Occasionnel
Bonjour le Forum.

Malgré toute mes recherches, je n'ai pas trouvé ce que je cherchais.

Voici quelque chose qui s'en approche

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("A1:C10")) Is Nothing Then
    
    If ActiveCell.Value = "0" Then
    
        ActiveCell.Value = 1
        
    End If
    
End If

End Sub

Résumé : Quand je clique sur une cellule incluse dans la plage A1:C10 la valeur passe à 1 si la cellule à déjà la valeur 0.

Ce que je souhaite : lorsque je remplie une cellule par 0, incluse dans la plage donnée, lorsque je valide par "ENTER" ou en cliquant ailleurs, le test s'effectue et la cellule prends la valeur 1.

J'espère avoir été clair... :eek:

Un grand MERCI d'avance

Pascal
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Changer une valeur d'une ActiveCell quand elle est égale à 0

Bonjour Pascal,

essaie ceci
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C10")) Is Nothing Then
If Target.Value = 0 Then
Target.Value = 1
End If
End If
End Sub

à
Phiilippe
 

Leskwal

XLDnaute Occasionnel
Re : Changer une valeur d'une ActiveCell quand elle est égale à 0

Merci Philippe,

En fait j'avais déjà essayé cette solution qui fonctionne, mais il semble, à partir des lectures faites sur le forum qu'utiliser :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
testait en permanence la procédure et donc : ralentissement...

J'ai pu le vérifier à partir de mon fichier de travail où les plages de test sont très nombreuses.
C'est pour cette raison que j'utilise :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Sauf erreur de ma part : la procédure ne sera activée que si une action est faite sur la plage et c'est là où je Bute...

Suis-je dans l'erreur ?? :eek:

Merci

Pascal
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Changer une valeur d'une ActiveCell quand elle est égale à 0

Re,

pour moi la procédure Worksheet_SelectionChange est déclenchée chaque fois qu'on change de cellule ( même si on n'y apporte pas de changement)

tandis que la procédure que je t'ai donnée (Worksheet_Change) se met en route uniquement lorsqu'on fait un changement dans une cellule
je pense que c'est donc la plus rapide

à+
Philippe
 

Discussions similaires