Доброго времени суток! Прошу вашей помощи! Для создания базы для выдачи одежды персоналу необходимо сделать так что бы при выборе персонала из выпадающего списка, в области отображалась таблица с наименованием норм, её вид для разного персонала разный. Я решил скопировать данные таблицы и переместив её за область печати обозвал её в виде диапазона, после чего место где была таблица объеденил в одну большую ячейку(без изменения размера области). При попытке после знака = в этой ячейке вписать функции и диапазон пишет только ошибку в кавычках, а при простом копировании диапазона он нормально встает со всеми границами и текстом. Что сделать для того что бы эта область менялась, может есть какой то другой метод?
Доброго времени суток! Прошу вашей помощи! Для создания базы для выдачи одежды персоналу необходимо сделать так что бы при выборе персонала из выпадающего списка, в области отображалась таблица с наименованием норм, её вид для разного персонала разный. Я решил скопировать данные таблицы и переместив её за область печати обозвал её в виде диапазона, после чего место где была таблица объеденил в одну большую ячейку(без изменения размера области). При попытке после знака = в этой ячейке вписать функции и диапазон пишет только ошибку в кавычках, а при простом копировании диапазона он нормально встает со всеми границами и текстом. Что сделать для того что бы эта область менялась, может есть какой то другой метод?kenerinn
Доброго времени суток коллеги. Т.к. не могу переслать оригинал файла из за конфиденциальной информации, накидал образец Формуляра с выпадающими списками. На первом листе и есть те самые диапазоны-таблицы которые должны подгружаться в область формуляра. Есть такой момент, что внешние размеры таблицы диапазона не меняются, меняются только внутреннее наполнение (изменяются высоты строк и текст). Подскажите пожалуйста как вставлять эти диапазоны без ошибки?
Доброго времени суток коллеги. Т.к. не могу переслать оригинал файла из за конфиденциальной информации, накидал образец Формуляра с выпадающими списками. На первом листе и есть те самые диапазоны-таблицы которые должны подгружаться в область формуляра. Есть такой момент, что внешние размеры таблицы диапазона не меняются, меняются только внутреннее наполнение (изменяются высоты строк и текст). Подскажите пожалуйста как вставлять эти диапазоны без ошибки?kenerinn
Здравствуйте. Для чего вам необходимо вставлять именно картину, не понятно. Возможно лучше тыло бы подтягивать данные ВПРом или ИНДЕКС+ПОИСКПОЗ. Вариант с картинкой в файле. Но не всё так просто. Размер картинки необходимо регулировать, либо вручную, либо макросом.
Здравствуйте. Для чего вам необходимо вставлять именно картину, не понятно. Возможно лучше тыло бы подтягивать данные ВПРом или ИНДЕКС+ПОИСКПОЗ. Вариант с картинкой в файле. Но не всё так просто. Размер картинки необходимо регулировать, либо вручную, либо макросом.gling
Это не картинки, картинкой я могу вставить, ВПРом не получится потому что там обсолютно разные значения и размер строк в этих диапазонах. Друзья может ещё есть какие то мысли как сделать без применения встает рисунком?
Это не картинки, картинкой я могу вставить, ВПРом не получится потому что там обсолютно разные значения и размер строк в этих диапазонах. Друзья может ещё есть какие то мысли как сделать без применения встает рисунком?kenerinn
примерно как-то так. двойной клик по ячейке с красным текстом (цвет просто для наглядности) [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.ScreenUpdating = False a = Target.Column b = Target.Value If a = 11 And b <> "" And b <> "õ" Then c = Cells(Rows.Count, "c").End(xlUp).Row If c > 15 Then Range("c16:f" & c).Clear d = Cells(Rows.Count, "k").End(xlUp).Row e = Target.Row f = Application.Match("õ", Range("k" & e & ":k" & d), 0) + e - 1 Range("g" & e & ":j" & f).Copy Range("c16") End If Cancel = True Application.ScreenUpdating = True End Sub
[/vba]
примерно как-то так. двойной клик по ячейке с красным текстом (цвет просто для наглядности) [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.ScreenUpdating = False a = Target.Column b = Target.Value If a = 11 And b <> "" And b <> "õ" Then c = Cells(Rows.Count, "c").End(xlUp).Row If c > 15 Then Range("c16:f" & c).Clear d = Cells(Rows.Count, "k").End(xlUp).Row e = Target.Row f = Application.Match("õ", Range("k" & e & ":k" & d), 0) + e - 1 Range("g" & e & ":j" & f).Copy Range("c16") End If Cancel = True Application.ScreenUpdating = True End Sub
Большое спасибо! Данный Способ просто отлично подходит это именно то что я и хотел! Только на данный момент я не владею макросами, буду изучать. Хотелось бы подвязать этот макрос к выпадающему списку профессий. Буду пробовать. Спасибо!
Большое спасибо! Данный Способ просто отлично подходит это именно то что я и хотел! Только на данный момент я не владею макросами, буду изучать. Хотелось бы подвязать этот макрос к выпадающему списку профессий. Буду пробовать. Спасибо!kenerinn
подвязать этот макрос к выпадающему списку профессий
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("d3")) Is Nothing Then Application.ScreenUpdating = False a = Sheets("Формуляр").Cells(Rows.Count, "c").End(xlUp).Row If a < 25 Then a = 25 Sheets("Формуляр").Range("c16:f" & a).Clear b = Target.Value c = Application.Match(b, Sheets("Формуляр").Range("k:k"), 0) i = Application.IsNumber(c) If i Then d = Sheets("Формуляр").Cells(Rows.Count, "k").End(xlUp).Row e = Application.Match("х", Sheets("Формуляр").Range("k" & c & ":k" & d), 0) + c - 1 Sheets("Формуляр").Range("g" & c & ":j" & e).Copy Sheets("Формуляр").Range("c16") End If Application.ScreenUpdating = True End If End Sub
подвязать этот макрос к выпадающему списку профессий
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("d3")) Is Nothing Then Application.ScreenUpdating = False a = Sheets("Формуляр").Cells(Rows.Count, "c").End(xlUp).Row If a < 25 Then a = 25 Sheets("Формуляр").Range("c16:f" & a).Clear b = Target.Value c = Application.Match(b, Sheets("Формуляр").Range("k:k"), 0) i = Application.IsNumber(c) If i Then d = Sheets("Формуляр").Cells(Rows.Count, "k").End(xlUp).Row e = Application.Match("х", Sheets("Формуляр").Range("k" & c & ":k" & d), 0) + c - 1 Sheets("Формуляр").Range("g" & c & ":j" & e).Copy Sheets("Формуляр").Range("c16") End If Application.ScreenUpdating = True End If End Sub