Здравствуйте. Как сделать, чтобы макрос начал действовать с привязкой к определенной ячейке и до конца определенной ячейке, т.е. у нас допустим в этом же листе есть объединённая ячейка Товары, вот и было бы привязка к наименованию этой ячейки. Ниже в коде в строке Dim U As RangeSet U = Sheets("Лист1").Range("от ячейки с текстом "Товары":до ячейки с наименованием "Работа""), нужно прописать: между ячейкой (смотри вложение) с текстом Товары и ячейкой с текстом Работа, т.е. тем самым мы указываем, что в случае, если пользователь работает в диапазоне между этими двумя строками, то действует этот макрос, а если нет (выше строки товары или ниже строки работа), то не действует, там пользователь просто вручную вбивает определенные данные.
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
'Application.ScreenUpdating = False
Dim U As Range
Set U = Sheets("Лист1").Range("от ячейки с текстом "Товары":до ячейки с наименованием "Работа"")
If Not Intersect(Target, U) Is Nothing Then
Level1.Show
End If
'Application.ScreenUpdating = True
End Sub
Просто у меня в этой форме, заказ будет еще распределятся по категориям, Товары, работы и прочее, причем заполнятся будет как выше области товары, так и ниже области товары, но там заполнение будет по другому выпадающему списку, простой выпадающий список, с ссылкой на один лист, где нет градации по ценам, просто выбрали номенклатуру и у нас автоматом подтянулась цена!
МатросНаЗебре, Здравствуйте. Так здесь тоже привязка идет не к значению (товары, работа) а к конкретной ячейке А5, Z9, но у меня они в разных заказах, будут разные!
Dim r As Range
On Error Resume Next
Set r = ActiveSheet.UsedRange.Find(What:="Работа", LookAt:=xlWhole)
On Error GoTo 0
If Not r Is Nothing Then
Dim t As Range
On Error Resume Next
Set t = ActiveSheet.UsedRange.Find(What:="Товары", LookAt:=xlWhole)
Set t = t.MergeArea
On Error GoTo 0
If Not t Is Nothing Then
If Not Intersect(Target, Range(t, r)) Is Nothing Then
Debug.Print "YOUR CODE"
End If
End If
End If
МатросНаЗебре, Здравствуйте, не получается, вообще ни как не реагирует, щелкал разные столбцы, в диапазоне между словом работы и Услуги. В представленном коде снизу есть закомментированный код, он работает, но в диапазоне от A7 до A500, а мне нужно чтобы было только между двумя строками, ниже я скинул скрин, как у меня на самом деле. Это код:
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
''Application.ScreenUpdating = False
Dim U As Range
On Error Resume Next
Set U = ActiveSheet.UsedRange.Find(What:="Работы", LookAt:=xlWhole)
On Error GoTo 0
If Not U Is Nothing Then
Dim t As Range
On Error Resume Next
Set t = ActiveSheet.UsedRange.Find(What:="Услуги", LookAt:=xlWhole)
Set t = t.MergeArea
On Error GoTo 0
If Not t Is Nothing Then
If Not Intersect(Target, Range(t, U)) Is Nothing Then
Debug.Print "YOUR CODE"
End If
End If
End If
'Dim U As Range
'Set U = Sheets("Áëàíê çàêàçà").Range("A7:A500")
'If Not Intersect(Target, U) Is Nothing Then
'Level1.Show
'End If
''Application.ScreenUpdating = True
End Sub
Из него видно, что до строки Работы, будет заполнятся категория товары и разная категория, которая вручную набивается, а после услуги тоже будет забиваться с помощью простого выпадающего списка. ВЫШЕ строки РАБОТЫ и НИЖЕ строки УСЛУГИ, я все сделал, а вот теперь нужно сделать между строками С РАБОТЫ и УСЛУГИ.
МатросНаЗебре, все понял, свой код то не вставил, а как еще указать, чтобы код данный срабатывал ТОЛЬКО В ПЕРВОМ СТОЛБЦЕ, но ТАКЖЕ МЕЖДУ СТРОКАМИ. Сейчас код свой вставил, все работает, но только во всех столбцах, а мне нужно только в первой