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

É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

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