Страницы: 1
RSS
Два кода?
 
Есть код выпадающего календарика и код координатного выделения как их разместить на листе чтобы они не мешали друг другу?  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)    
    If Target.Cells.Count > 1 Then Exit Sub    
    If Not Application.Intersect(Range("A1:A20"), Target) Is Nothing Then    
        UserForm1.Show    
    End If  
End Sub  
 
 
 
Public NoEvents As Boolean  
Public Sub SelOn()  
  NoEvents = False  
End Sub  
Public Sub SelOff()    
   NoEvents = True  
End Sub  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
   Dim addr As String  
   Dim x As Variant  
   Dim rng, c, r, cll As String  
     
   If NoEvents Then Exit Sub  
   If Target.Cells.Count > 1 Then Exit Sub  
       addr = ActiveCell.Address()  
   x = Split(addr, "$")  
   c = x(1)  
   r = x(2)  
   rng = c & ":" & c & "," & r & ":" & r  
   Range(rng).Select  
   cll = c & r  
   Range(cll).Activate  
End Sub
 
Есть код выпадающего календарика и код координатного выделения как их разместить на листе чтобы они не мешали друг другу?  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)    
    If Target.Cells.Count > 1 Then Exit Sub    
    If Not Application.Intersect(Range("A1:A20"), Target) Is Nothing Then    
        UserForm1.Show    
    End If  
End Sub  
 
 
 
Public NoEvents As Boolean  
Public Sub SelOn()  
  NoEvents = False  
End Sub  
Public Sub SelOff()    
   NoEvents = True  
End Sub  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
   Dim addr As String  
   Dim x As Variant  
   Dim rng, c, r, cll As String  
     
   If NoEvents Then Exit Sub  
   If Target.Cells.Count > 1 Then Exit Sub  
       addr = ActiveCell.Address()  
   x = Split(addr, "$")  
   c = x(1)  
   r = x(2)  
   rng = c & ":" & c & "," & r & ":" & r  
   Range(rng).Select  
   cll = c & r  
   Range(cll).Activate  
End Sub
 
через elseif пробовали?  
Если попало в a1:a20 то часы  
иначе выделение
 
К сожалению в VBA я полнный "0". Можно по подробнее?
 
{quote}{login=Barracuda}{date=05.02.2008 10:37}{thema=Re: }{post}К сожалению в VBA я полнный "0". Можно по подробнее?{/post}{/quote}  
 
в модуль листа в редакторе  
 
Public NoEvents As Boolean  
Public Sub SelOn()  
NoEvents = False  
End Sub  
Public Sub SelOff()  
NoEvents = True  
End Sub  
 
'При изменение выделения  
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Dim addr As String  
Dim x As Variant  
Dim rng, c, r, cll As String  
 
'Если выбран диапазон не делаем ничего  
If Target.Cells.Count > 1 Then Exit Sub  
 
'Если выбрана ячейка из A1:A20 показываем форму  
If Not Application.Intersect(Range("A1:A20"), Target) Is Nothing Then  
UserForm1.Show  
 
'иначе если выделение выключено ничего не делаем  
ElseIf NoEvents Then Exit Sub  
 
'иначе :: выделена одна ячейка  
'      :: ячейка не принадлежит A1:A20  
'      :: выделение включено  
Else  
   addr = ActiveCell.Address()  
   x = Split(addr, "$")  
   c = x(1)  
   r = x(2)  
   rng = c & ":" & c & "," & r & ":" & r  
   Range(rng).Select  
   cll = c & r  
   Range(cll).Activate  
 
End If  
 
End Sub
 
{quote}{login=Barracuda}{date=05.02.2008 10:37}{thema=Re: }{post}К сожалению в VBA я полнный "0". Можно по подробнее?{/post}{/quote}  
 
в модуль листа в редакторе  
 
Public NoEvents As Boolean  
Public Sub SelOn()  
NoEvents = False  
End Sub  
Public Sub SelOff()  
NoEvents = True  
End Sub  
 
'При изменение выделения  
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Dim addr As String  
Dim x As Variant  
Dim rng, c, r, cll As String  
 
'Если выбран диапазон не делаем ничего  
If Target.Cells.Count > 1 Then Exit Sub  
 
'Если выбрана ячейка из A1:A20 показываем форму  
If Not Application.Intersect(Range("A1:A20"), Target) Is Nothing Then  
UserForm1.Show  
 
'иначе если выделение выключено ничего не делаем  
ElseIf NoEvents Then Exit Sub  
 
'иначе :: выделена одна ячейка  
'      :: ячейка не принадлежит A1:A20  
'      :: выделение включено  
Else  
   addr = ActiveCell.Address()  
   x = Split(addr, "$")  
   c = x(1)  
   r = x(2)  
   rng = c & ":" & c & "," & r & ":" & r  
   Range(rng).Select  
   cll = c & r  
   Range(cll).Activate  
 
End If  
 
End Sub
 
Большое спасибо! Все работает отлично.
Страницы: 1
Читают тему
Наверх