Kuzmich, А можно сделать так, чтобы макрос работал и со скрытыми ячейками тоже. У меня на листе цены скрыты (с помощью группировки данных), и когда они скрыты, макрос не работает. И еще, почему ячейки копируют не только данные, но и стили можно это убрать?
Ой, сори. Сразу столько вариантов напредлагали, я че-то ваш упустил. Ваш вариант тоже хорош и отлично работает! Мне больше нравиться макрос, потому что он мне понятнее, сама логика (хоть сам код я бы и не написал). В случае если добавить дополнительные данные, с формулой нужно дольше разбираться, чтобы все опять заработало (как мне кажется). А макрос сам все подтягивает. В любом случае, спасибо и вам!!! Способ оригинальный. макросы тоже не всегда работают, будет запасной вариант.
Я конечно могу сделать через если, но систем много (в примере только три), и на все "если" не хватит. Может есть возможность копировать диапазон формулой типа СМЕЩ?
Здравствуйте. есть бланк коммерческого предложения. В нем есть раздел (водосточная система). Нужно чтобы при выборе системы заполнялись ячейки наименований товара и его цены, взятые из другого листа этой книги
У меня возникла проблема. Для ComBox16 и ComBox17 у меня уже были написаны коды, при их изменениях проводились некие действия. Теперь этих действий стало больше. Как совместить эти четыре кода кода в два?
Вот существующие коды
Private Sub ComboBox16_Change() Select Case ComboBox16.ListIndex Case 0 ComboBox2.BackColor = &HC000& Case 1 ComboBox2.BackColor = &HFF00& [AP21] = "" [AP23] = "" Case 2 [AP21] = "" [AP23] = "" ComboBox2.BackColor = &HFF00& [AN21] = "" [AN23] = "" End Select End Sub -------------------------------- Private Sub ComboBox17_Change() Select Case ComboBox17.ListIndex Case 0 CheckBox3.Visible = True ComboBox14.ListFillRange = "BE63:BE65" [BE42] = "" [BF42] = "" [BG42] = "" [BH42] = "" [BJ42] = "" Case 1 CheckBox3.Visible = False CheckBox3.Value = False ComboBox14.ListFillRange = "BE63" [BE42] = "" [BF42] = "" [BG42] = "" [BH42] = "" [BJ42] = "" End Select End Sub ------------------------------- их нужно теперь совместить с этими
Private Sub ComboBox17_Change() If ComboBox16.ListIndex = 0 Then Exit Sub 'ComboBox23.ListFillRange = "BE67" 'Else Select Case ComboBox17.ListIndex Case 0 ComboBox23.ListFillRange = "BE67" Case 1 ComboBox23.ListFillRange = "BE67:BE68" Case 2 ComboBox23.ListFillRange = "BE67:BE69" End Select 'End If End Sub ------------------------------- Private Sub ComboBox16_Change() If ComboBox16.ListIndex = 0 Then ComboBox23.ListFillRange = "BE67" Else Select Case ComboBox17.ListIndex Case 0 ComboBox23.ListFillRange = "BE67" Case 1 ComboBox23.ListFillRange = "BE67:BE68" Case 2 ComboBox23.ListFillRange = "BE67:BE69" End Select End If End Sub
Я не понял. ComboBox3 это тот, где мне нужно коректировать число строк. Они коректируются макросом используя два других списка. Если написать формулу, то она должна быть такой: =Если(Список1="Концентрация";Список3.Число_сторк=1;Если(Список1="Дозировка";Если(Список2="N,P,K";Список3.Число_сторк=1;Если(Список2="N+P,K";Список3.Число_сторк=2;Список3.Число_строк=3)))) Я не знаю, как это написать на языке VBA.
Вот это действие со кода второго списка ----- Case 0 ComboBox3.ListFillRange = "F8:F10" ------ должна раделяться на вот эти согласно выбора первого списка ---------- Case 0 ComboBox3.ListFillRange = "F8" Case 1 ComboBox3.ListFillRange = "F8:F9" Case 2 ComboBox3.ListFillRange = "F8:F10"
Есть два кода первый и второй связаны с третим. Нужно объеденить первый и второй Private Sub ComboBox1_Change() Select Case ComboBox1.ListIndex Case 0 ComboBox3.ListFillRange = "F8" Case 1 ComboBox3.ListFillRange = "F8:F9" Case 2 ComboBox3.ListFillRange = "F8:F10" End Select End Sub ------------------------------------- Private Sub ComboBox2_Change() Select Case ComboBox2.ListIndex Case 0 ComboBox3.ListFillRange = "F8:F10" Case 1 ComboBox3.ListFillRange = "F8" End Select End Sub
Есть три списка. В первом 2 значения, во втором 3. Третий список формируется исходя из данных с первых двух. В нем может быть один, два или три пункта.
Нужно в зависимости от значения одного списка менять цвет фона в другом. Строка ComboBox2.BackColor = "&H0000C000&" в коде
Private Sub ComboBox1_Change() Select Case ComboBox1.ListIndex Case 0 ComboBox2.BackColor = "&H0000C000&" Case 1 ComboBox2.BackColor = "&H0000FF00&" End Select End Sub
Вы ничего не должны, извените. Я боюсь, что вы сделаете в новом файле всё, а я опять, не смогу перенести себе в книгу и буду опять спрашивать. Думал вам все равно, в каком документе писать код, поэтому прошу сделать это сразу в моем. На предложеный вами файлообменник не получается (пишет "Ошибка"). Отправил файл вам на почту. Надеюсь на вашу помощь. Спасибо!
Неа, не работает Вот файл (680 КБ) http://www.ex.ua/get/24787935 Нужно чтобы окошко выскакивало, если в столбце O (там всего четыре ячейки) значение меньше чем в столбце Y той же строки
{quote}{login=Юрий М}{date=02.10.2010 10:34}{thema=}{post}В ячейке А1 простенькая формула с ЕСЛИ. В модуле листа код, который по событию Calculate отслеживает значение в ячейке А1. Если оно равно заданному - вызываем какой-нибудь макрос (вместо MsgBox).{/post}{/quote} Мне нужна похожая функция (если значение одной ячейки привышает значение другой, то вылазит ококшко с надписью "Много"). В вашем файле переделал под себя код, работает, вставляю в свою книгу, нет. Только если в редакторе нажать на Run Sub, тогда окошко вылазит при удовлетворяющем условии. Думал, что-то не так с моей книгой, сосдал новый документ, вставил код, та же проблема. Что нужно сделать, чтоб макрос срабатывал автоматически?