Événement identique pour toutes les cellules

Flob

XLDnaute Nouveau
Bonjour,


Ceci est mon premier message, bien qu'habitué des lieux. Cette fois-ci, je ne trouve néanmoins pas la solution à mon problème (sans doute car mes mots-clés ne conviennent pas), donc je viens demander de l'aide.

Je souhaite appliquer un même événement à chacune des cellules de ma feuille. La procédure que je souhaite mettre en oeuvre est la suivante :

1. Double-clic sur une cellule au hasard (disons A1)
2a. Si la cellule en-dessous (donc A2) contient un 0 en valeur, cette valeur passe à 1.
2b. Si la cellule en-dessous (donc A2) contient un 1 en valeur, cette valeur passe à 0.

Vous l'aurez compris, si je double-clique sur la cellule DW89 et que DW90 contient un 0, cette dernière cellule prendra la valeur 1.



C'est sans doute très simple et basique, mais après plusieurs tentatives à base de "row+1", je n'y arrive pas.

Voici mon essai fonctionnel le plus proche :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If [A2].Value = 0 Then
    If Intersect(Target, Cells) Is Nothing Then Exit Sub
        [A2].Value = 1
        Cancel = True
    Else
    If Intersect(Target, Cells) Is Nothing Then Exit Sub
        [A2].Value = 0
        Cancel = True
    End If
End Sub


Merci d'avance ! :)
 

Pierrot93

XLDnaute Barbatruc
Re : Événement identique pour toutes les cellules

Bonjour,

peut être ceci :
Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target.Offset(1)
     .Value = IIf(.Value = 0, 1, 0)
End With
Cancel = True
End Sub

bon après midi
@+

Edition : bonjour Hasco:)
 
Dernière édition:
G

Guest

Guest
Re : Événement identique pour toutes les cellules

Bonjour,

Target a TOUJOURS une intersection avec cells (toutes les cellules de la feuille)!

alors cela devrait suffire si j'ai bien compris:
Code:
  Target(2).Value = (Target(2) = 0) * -1
  Cancel = True

A+

[Edit] Bing! Salut Pierrot:)
 

JBARBE

XLDnaute Barbatruc
Re : Événement identique pour toutes les cellules

Bonjour à tous,

peut-être ceci : colonne A

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Range("A:A"), Target) Is Nothing Then Exit Sub
    If IsEmpty(Target) Then
        Target = 1
        Cancel = True
    Else
     Target.Offset(1, 0) = 0
        Cancel = True
    End If
End Sub

bonne journée
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 040
Membres
104 010
dernier inscrit
Freba