Только вот одна загвоздочка у меня в книге уже есть небольшой код которым я хотел полностью но вышло частично закрыть всякие варианты с копипастами.
В моем файле используется код:
[vba]
Код
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^v": Application.OnKey "^V" Application.OnKey "^x": Application.OnKey "^X" Dim li As Long With Application.CommandBars("Cell") For li = 1 To .Controls.Count: .Controls(li).Visible = True: Next li End With
scr
End Sub
Private Sub Workbook_Open()
If ActiveSheet.Name = "Лист5" Then Application.OnKey "^v", "": Application.OnKey "^V", "" Application.OnKey "^x", "": Application.OnKey "^X", "" End If
scr End Sub
[/vba]
И мне надо его подружить скодом который используется в файлеке от Ales_ST:
[vba]
Код
Option Explicit Private WithEvents Appl As Application ' объявляем объект Application для того, чтобы можно было отлавливать события других книг
Private Sub Appl_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next With JP_Сalendar_Frm If .Visible Then .UserForm_Activate End With End Sub
Private Sub Appl_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If TypeName(Selection) <> "Range" Then Exit Sub With Target(1, 1) If .HasFormula Then Exit Sub If IsDate(.Value) Then JP_Сalendar_Frm.Show 0 '(vbModeless) Cancel = True 'не входить в режим редактирования ячейки End If End With End Sub
Sub Reload_Appl(): Set Appl = Application: End Sub ' "патч" (у меня почему-то иногда теряется определение Appl)
[/vba]
Прошу прощения что прикрепил архив. Файлик вылез за пределы допустимого.
Только вот одна загвоздочка у меня в книге уже есть небольшой код которым я хотел полностью но вышло частично закрыть всякие варианты с копипастами.
В моем файле используется код:
[vba]
Код
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^v": Application.OnKey "^V" Application.OnKey "^x": Application.OnKey "^X" Dim li As Long With Application.CommandBars("Cell") For li = 1 To .Controls.Count: .Controls(li).Visible = True: Next li End With
scr
End Sub
Private Sub Workbook_Open()
If ActiveSheet.Name = "Лист5" Then Application.OnKey "^v", "": Application.OnKey "^V", "" Application.OnKey "^x", "": Application.OnKey "^X", "" End If
scr End Sub
[/vba]
И мне надо его подружить скодом который используется в файлеке от Ales_ST:
[vba]
Код
Option Explicit Private WithEvents Appl As Application ' объявляем объект Application для того, чтобы можно было отлавливать события других книг
Private Sub Appl_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next With JP_Сalendar_Frm If .Visible Then .UserForm_Activate End With End Sub
Private Sub Appl_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If TypeName(Selection) <> "Range" Then Exit Sub With Target(1, 1) If .HasFormula Then Exit Sub If IsDate(.Value) Then JP_Сalendar_Frm.Show 0 '(vbModeless) Cancel = True 'не входить в режим редактирования ячейки End If End With End Sub
Sub Reload_Appl(): Set Appl = Application: End Sub ' "патч" (у меня почему-то иногда теряется определение Appl)
[/vba]
Прошу прощения что прикрепил архив. Файлик вылез за пределы допустимого.
Решил пока без доп кода блокирующего копипасты сделать.
Ругается на этот модуль теперь:
[vba]
Код
Option Explicit Public arrFrmSetup() Const MenuItemName = "JP Calendar"
Sub Auto_Open() arrFrmSetup = Array(True, False) ' начальная установка чек-боксов календаря _ arrFrmSetup(0) = True => "Ввод двойным щелчком" _ arrFrmSetup(1) = False >= "Не прятать после ввода" ' Call CalendarMenuCreate End Sub Sub Auto_Close() ' Call CalendarMenuDelete End Sub
Sub JP_Calendar() On Error Resume Next ThisWbk.Reload_Appl JP_Сalendar_Frm.Show 0 '(vbModeless) End Sub
Sub CalendarMenuCreate() ' создать пункт меню Dim btn As CommandBarControl On Error Resume Next Application.CommandBars("Cell").Controls(MenuItemName).Delete Set btn = Application.CommandBars("Cell").Controls.Add(before:=1) With btn .FaceId = 125 .Caption = MenuItemName .OnAction = "JP_Calendar" '.BeginGroup = True End With End Sub
Sub CalendarMenuDelete() On Error Resume Next Application.CommandBars("Cell").Controls(MenuItemName).Delete End Sub
[/vba]
на эту строчку:
[vba]
Код
Sub JP_Calendar()
[/vba]
Ошибка: Variable not defined
Все Извиняюсь за созданный пост. Разобрался Александр Борода помог надо было вот что сделать " Еще нужно в JP_Сalendar_Module в процедуре JP_Calendar заменить ThisWbk на ThisWorkbook. " правда не понятно почему в оригинале работало а когда себе преносишь перестает. Можно закрывать тему. [moder]Все просто - в оригинале ThisWorkbook назывался ThisWbk.
koyaanisqatsi,
Решил пока без доп кода блокирующего копипасты сделать.
Ругается на этот модуль теперь:
[vba]
Код
Option Explicit Public arrFrmSetup() Const MenuItemName = "JP Calendar"
Sub Auto_Open() arrFrmSetup = Array(True, False) ' начальная установка чек-боксов календаря _ arrFrmSetup(0) = True => "Ввод двойным щелчком" _ arrFrmSetup(1) = False >= "Не прятать после ввода" ' Call CalendarMenuCreate End Sub Sub Auto_Close() ' Call CalendarMenuDelete End Sub
Sub JP_Calendar() On Error Resume Next ThisWbk.Reload_Appl JP_Сalendar_Frm.Show 0 '(vbModeless) End Sub
Sub CalendarMenuCreate() ' создать пункт меню Dim btn As CommandBarControl On Error Resume Next Application.CommandBars("Cell").Controls(MenuItemName).Delete Set btn = Application.CommandBars("Cell").Controls.Add(before:=1) With btn .FaceId = 125 .Caption = MenuItemName .OnAction = "JP_Calendar" '.BeginGroup = True End With End Sub
Sub CalendarMenuDelete() On Error Resume Next Application.CommandBars("Cell").Controls(MenuItemName).Delete End Sub
[/vba]
на эту строчку:
[vba]
Код
Sub JP_Calendar()
[/vba]
Ошибка: Variable not defined
Все Извиняюсь за созданный пост. Разобрался Александр Борода помог надо было вот что сделать " Еще нужно в JP_Сalendar_Module в процедуре JP_Calendar заменить ThisWbk на ThisWorkbook. " правда не понятно почему в оригинале работало а когда себе преносишь перестает. Можно закрывать тему. [moder]Все просто - в оригинале ThisWorkbook назывался ThisWbk.koyaanisqatsi
Сообщение отредактировал _Boroda_ - Среда, 18.05.2016, 11:26