1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim T as Range , cel as Range, vide As Boolean
def col, lgn
Set T = Intersect([b1].Resize(lgn, col - 1), T): If T Is Nothing Then Exit Sub
If T.Address = "$B$1" Then 'redéfinit la cible T lorsqu'on clique sur
Set T = [c2].Resize(lgn - 1, col - 2) ' les entête de ligne ou de colonne
ElseIf Not Intersect([c1].Resize(1, col - 2), T) Is Nothing And T.Rows.Count = 1 Then
Set T = T(2, 1).Resize(lgn - 1, T.Columns.Count)
ElseIf Not Intersect([b2].Resize(lgn - 1, 1), T) Is Nothing And T.Columns.Count = 1 Then
Set T = T(1, 2).Resize(T.Rows.Count, col - 2)
End If
Set T = Intersect([c2].Resize(lgn - 1, col - 2), T) 'prends l'intersection
vide = True 'de T avec le tableau
For Each cel In T 'Cherche si une cellule de T au moins est non vide
If Not IsEmpty(cel) Then vide = False: Exit For
Next cel
Application.EnableEvents = False
If vide Then T.Value = 0 Else T.ClearContents 'si vide remplit sinon vide
[b1].Select
Application.EnableEvents = True
Cancel = True
End Sub
Sub def(col As Long, lgn As Long)
'col = ...
'lgn = ...
End Sub |
Partager