Добрый день. Существует большая таблица с описанием и объемом работ, согласованных за год (примитивный пример во вложении). Как очистить данные в определенном диапазоне я знаю. Вопрос в том, что писать на каждый диапазон свой код долго и путано (объектов может быть с десяток, а месяцев для выполнения до 12, т.е. 120 подпрограмм для каждой кнопки). Возможно ли написать универсальный макрос (в данном случае три макроса, т.к. вертикальный размер диапазона очищаемых у каждого объекта разный), который в качестве аргумента получал бы какие-то координаты или адрес для того чтобы можно было идентифицировать диапазон по горизонтали, который нужно очищать? Т.е. например в приложенном примере на группу верхних кнопок навешивается один макрос, который бы определял по местоположению кнопки какой столбец ему обнулять (очищать), а вертикальный размер диапазона для каждой группы кнопок один и тот же.
Добрый день. Есть такая проблемка. Необходимо заполнять таблицу (допустим количество) числами, имеющими разную разрядность. Если задать формат ячейки допустим до 5 знаков после запятой (максимальное количество знаков после запятой, которое встречается в данных), то выводится не очень красиво. Т.е. например нужно ввести 5 значений (последовательно в разных строках) 1 ; 1,5 ; 0,01745 ; 1,806 ; 1,15. Задаем число десятичных знаков = 5. Вводим, видим: 1,00000 ; 1,50000 ; 0,01745 ; 1,80600 ; 1,15000. Каждую ячейку форматировать честно говоря лень, смотреть на огромное количество нулей тоже ни к чему. А хотелось бы, чтобы значения выводились так как вводились. Ввел после запятой пять знаков - пять знаков и на экране, ввел один знак, увидел один. Кроме текстового формата может знаете какое-то решение (эти данные далее участвуют в формулах)?
спасибо vikttur, единственный кто более менее вник в суть
Цитата
vikttur написал: передаем списк ListBox, далее работаем с ним как с массивом
Это не помогло конечно, нашел решение на другом сайте. Если интересно кому, то правильно так передавать ListBox в качестве аргумента процедуры
Код
Call vnesti_nabor(nomer2_vsego) ' вызов процедуры заполнения списка
...
Sub vnesti_nabor(ByRef nOmer As MSForms.ListBox) 'правильная передача аргумента
nOmer.AddItem 0
nOmer.List(0, 0) = "..."
...
End Sub
Ок, поясню. Работать должно так: на форме помимо других элементов размещены 4 кнопки, отвечающие за передачу из одного списка в другой определенных наборов. Как я уже писал, таких блоков, как на скрине 10 штук. Выделяем определенный список, допустим nomer2_1 (или nomer2_vsego), нажимаем кнопку "1" - список nomer2_vsego заполнился набором №1, нажимаем кнопку "2" - заполнился набором №2 и т.д. Так вот мне нужно для написания процедуры на нажатие кнопок 1...4 передать имя списка, который в данный момент выделен так, чтобы с ним можно было работать. Т.е. выделен список nomer2_1 - заполнился список nomer2_vsego, выделен nomer3_1 - заполнился список nomer3_vsego и т.д.
Если честно, не понял взаимосвязи между моим вопросом и Вашим ответом. Представьте себе 10 цехов (это списки на форме), в которые каждый день нужно отправлять заказы. Есть типичные (постоянные) заказы. Мы размещаем на форме 4 дополнительные кнопки, а не 40. Нажали кнопку "1" - список заказов заполнился сразу определенным набором данных. Процедура, которую хочу написать, будет получать из основного кода имя списка, который в настоящее время активен (выделен) и дальше все понятно. Я выше написал как я это делаю, но выскакивает ошибка, т.к. при вызове процедуры список еще не заполнен, поэтому null, возникает ошибка
Добрый день всем! На форме размещены 10 списков по два столбца в каждом (имена у всех уникальные, так уж получилось). С каждым списком возможны типичные манипуляции, т.е. заполнение их типичными данными. Например 4 разных набора данных. Проще всего конечно рядом с каждым списком прикрутить 4 кнопки, но захламится форма и код вырастет многократно. Хочу написать процедуру, которая бы работала с каждым списком, т.е. по сути мне нужно в процедуру передать имя списка, чтобы с ним можно было работать дальше (наполнять типичными данными). Можно ли это сделать и как? Спасибо
Сделал
Код
vnesti_nabor (nomer2_vsego)' Ругается "Object required..."
...
Sub vnesti_nabor(nomer As ListBox)
...
End Sub
Добрый день! Часто приходится сталкиваться с такой проблемой: с одного листа нужно скопировать данные на другой в виде итога, т.е. выделяем несколько ячеек на одном листе, видим в строке состояния итог по сумме, запоминаем в уме, переходим на другой лист и записываем по памяти. Можно ли как-то автоматизировать этот процесс? Т.е. выделил несколько ячеек, нажал определенную комбинацию, перешел на другой лист, выбрал нужную ячейку, вставка, в нужной ячейке появилась сумма. Пользуюсь excel 2007/ Заранее спасибо.