Уважаемые, вопрос такого плана по Экселю 2003: включаю на запись макрос, создаю своё пользовательское меню. При попытке выполнить этот макрос (естессно удалив перед этим созданное меню) получаю ошибку Run-time error '5' Invalid procedure call or argument. Вот образец полученного макроса:
Sub Макрос1()
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
Пример : Я ввожу артикулы товара в столбец А, с помощью формул "Поиск значения" автоматически вставляются наименования и цены в столбцы В и С. Потом в следующие столбцы ввожу кол-во и дату получения товара. Потом это все суммируется автоматом и потставляются в другую таблицу с помощью тех же формул "Поиск знач" и "Смещ". Т.к. количество артикулов достигает 600, я могу внести один и тот же артикул несколько раз. Использую сортировку и визуально проверяю, где повторяются значения. Очень хочется все упростить, чтобы как-то отображались одинаковые артикулы, хотя бы определялось в другой ячейке что присутствует повтор. Как это сделать? Заранее благодарю за ответ!
>Т.к. количество артикулов достигает 600, я могу внести один и тот же артикул несколько раз.
....
>Очень хочется все упростить, чтобы как-то отображались одинаковые артикулы, хотя бы определялось в другой ячейке что присутствует повтор. Как это сделать?
Один из вариантов - использовать условное форматирование.
Допустим диапазон для ввода артикулов анодится в B2:B700.
1) Выделите диапазон B2:B700 и вызовите диалог условного форматирования.
2) Задайте для первого условия в комобокосе значение "Формула" и введите формулу =СЧЕТЕСЛИ($B$2:$B$700;B2)>1.
Здесь $B$2:$B$700 - абсолютный адрес вашего диапазона, а B2 - относительный адрес первой ячейки диапазона.
3) В этом же диалоге задайте форматирование, которе будет применятся
к ячейке, если в заданном диапазоне есть ячейки с таким же значением.
Привет! Есть вопрос. Составляю тест: необходимо расставить ответы в приоритетном порядке. Выбор сделала приоритета (числа от 1 до 6) с помощью списка. Необходимо исключить повторение значений. Можно конечно сделать через "если" и перебрать все варианты сравнения, но может кто-то подскажет более оптимальный метод. За ранее благодарна!
Еще вопросик: сделала с помощью макроса кнопку перехода к следующему вопросу (переход на следующий лист). Как можно кнопку сделать неактивной, если ответы не соответствуют определенному условию их заполнения. Спасибо!
У Листа есть событие Worksheet_Change, которое возникает при изменении данных в ячейке на листе. Создайте обработчик для этого события и используйте параметр Target, который будет содержать измененную ячейку.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Value
End Sub
в этом обработчике можете анализировать не только значение ячейки, но и ее форматирвание. В зависимости от этого блокируйте или делайте доступной вашу кнопку.
Хотя лучше анализировать не измененную ячейку а диапазон ячеек, в кот.содержатся номера ответов.
Да с событием я все поняла спасибо, а я хотела спросить какой собственно коммандой я могу заблокировать или сделать доступной мою кнопку? либо еще чтото сделать с ней ?
> а я хотела спросить какой собственно коммандой я могу заблокировать или сделать доступной мою кнопку?
CommandButton1.Enabled = False
где CommandButton1 - имя вашей кнопки.
В режиме дизайна щелкните правой кнопкой мыши на вашей кнопке и выберите меню Properties (Свойства). Появится окошко с доступными свойствами кнопки. Подробную информацию можете посмотреть в справке по VBA набрав для поиска CommandButton. Еще удобное средство для просмотра свойств и методов - Object Browser. Выбрали интересующее, нажади F1 и получили справку.
Здорово, что есть такие умные люди. Подскажите, как все-таки посчитать только четные строки в огроменной таблице EXCEL. Ранее было об этом рассказано, но у меня ничё не получается. Я имею ввиду "правда", "ложь". Либо показывает неправильное имя, либо ставит нуль.
>Подскажите, как все-таки посчитать только четные строки в огроменной таблице EXCEL. Ранее было об этом рассказано, но у меня ничё не получается. Я имею ввиду "правда", "ложь". Либо показывает неправильное имя, либо ставит нуль.
я вижу два варианта
1. добавляем в таблицу столбец "Четная строка" и ставим формулу во все ячейки столбца =ОСТАТ(СТРОКА();2)=0
>Подскажите, как все-таки посчитать только четные строки в огроменной таблице EXCEL.
Если данная функция недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».
Уточните, пожалуйста, что вы хотите получить? Количество нечетных строк или сумму по ячейке только в нечетных строках?
Какие строки вы считаете нечетными, те у которых номер строки - нечетный с начала листа или с начала вашей таблицы?
======
Допустим данные содержатся в ячейкках B2:B10.
1) В C2 внесите формулу =ЕЧЁТН(СТРОКА(B2)) и скопируйте ее в ячейки C3:C10. В результате четные строки будут содержать значение ИСТИНА, а нечетные ЛОЖЬ соответственно.
====
Если функция ЕЧЁТН недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».
===
2) Для подсчета значений четных строк используйте формулу
Для окончания написания теста не хватает несколько элементов. Помогите! 1.Как на кнопку можно установить пароль (после введения пароля возможен переход на следующий лист, где видны результаты теста)и
2.часы (отображаются постоянно и запоминается время прохождение тесте после нажатия "завершить")
Как слить информацию из двух ячеек в одну, если значения в первой ячейке - строковые, а во второй ячейке - дата. Необходимо, чтобы формат даты сохранился. Зараннее благодарен.
я отформатировал панель инструментов Єксель. Добавил свои кнопки и привязал к своим же макросам.
Вопрос, как это перенести на другой компьютер? макросы, как я понимаю, можно перенести вместе с файлом Personal.xls , а как перенести панель инструментов?
При открытии любого файла в Excel 2003 постоянно появляется окно с Установка компонентов для Microsoft Excel. Жду секунд 10 пока он (они) эти компоненты загрузятся. При следующем открытии файла опять та же история Установка компонентов для Microsoft Excel.
Страницы
Sub Макрос1()
Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
msoControlPopup, Before:=12
{Ошибка начинается вот с этой строки..}
Application.CommandBars("Настраиваемое всплывающее меню4125031").Controls.Add _
Type:=msoControlButton, ID:=2949, Before:=1
End Sub
Помогите пожалуйста, очень надо... Буду благодарен, если подскажете на мой e-mail: [email protected]
в одном файле не заполнен столбец с ценами.
Но в другом файле как раз есть все цены, которые так необходимы первой эксельке.
Общее поле у 2-х файлов есть - это артикул.
Как в табличку где нет цен залить те цены которые есть в другом файле, и чтобы они распознались по артикулу?
> Как в табличку где нет цен залить те цены которые есть в другом файле, и чтобы они распознались по артикулу?
смотрите функцию VLOOKUP. В русском Excel Функция называется ВПР
http://office.microsoft.com/ru-ru/excel/HP052093351049.aspx
>Т.к. количество артикулов достигает 600, я могу внести один и тот же артикул несколько раз.
....
>Очень хочется все упростить, чтобы как-то отображались одинаковые артикулы, хотя бы определялось в другой ячейке что присутствует повтор. Как это сделать?
Один из вариантов - использовать условное форматирование.
Допустим диапазон для ввода артикулов анодится в B2:B700.
1) Выделите диапазон B2:B700 и вызовите диалог условного форматирования.
2) Задайте для первого условия в комобокосе значение "Формула" и введите формулу =СЧЕТЕСЛИ($B$2:$B$700;B2)>1.
Здесь $B$2:$B$700 - абсолютный адрес вашего диапазона, а B2 - относительный адрес первой ячейки диапазона.
3) В этом же диалоге задайте форматирование, которе будет применятся
к ячейке, если в заданном диапазоне есть ячейки с таким же значением.
Елена, посмотрите выше по форуму мой ответ на вопрос Руслана.
У Листа есть событие Worksheet_Change, которое возникает при изменении данных в ячейке на листе. Создайте обработчик для этого события и используйте параметр Target, который будет содержать измененную ячейку.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Value
End Sub
в этом обработчике можете анализировать не только значение ячейки, но и ее форматирвание. В зависимости от этого блокируйте или делайте доступной вашу кнопку.
Хотя лучше анализировать не измененную ячейку а диапазон ячеек, в кот.содержатся номера ответов.
> а я хотела спросить какой собственно коммандой я могу заблокировать или сделать доступной мою кнопку?
CommandButton1.Enabled = False
где CommandButton1 - имя вашей кнопки.
В режиме дизайна щелкните правой кнопкой мыши на вашей кнопке и выберите меню Properties (Свойства). Появится окошко с доступными свойствами кнопки. Подробную информацию можете посмотреть в справке по VBA набрав для поиска CommandButton. Еще удобное средство для просмотра свойств и методов - Object Browser. Выбрали интересующее, нажади F1 и получили справку.
> как определить являеться ли ячейка формулой или константой, и вывести в другую ячейку Истина, Ложь.
Добавьте такую функцию в макросы вашей книги:
Function HasFormula(cell)
HasFormula = cell.HasFormula
End Function
После этого функцию можно использовать в ячейках.
Если A1 содержит ваши данные, о в B1 внесите формулу
=HASFORMULA(A1)
Здорово, что есть такие умные люди. Подскажите, как все-таки посчитать только четные строки в огроменной таблице EXCEL. Ранее было об этом рассказано, но у меня ничё не получается. Я имею ввиду "правда", "ложь". Либо показывает неправильное имя, либо ставит нуль.
Function HasFormula(cell)
HasFormula = cell.HasFormula
End Function
После этого функцию можно использовать в ячейках.
Если A1 содержит ваши данные, о в B1 внесите формулу
=HASFORMULA(A1)
Спасибо, все работает.
К сожалению оказалось, что необходимо обнаружение конкретной формулы. В моем случае =ПРОМЕЖУТОЧНЫЕ.ИТОГИ()
можно ли определить наличие конкретной формулы в ячейке?
я вижу два варианта
1. добавляем в таблицу столбец "Четная строка" и ставим формулу во все ячейки столбца =ОСТАТ(СТРОКА();2)=0
2. используем формулу массива
{=СУММ((ОСТАТ(СТРОКА(диапазон_суммирования);2)=0)*диапазон_суммирования)}
> К сожалению оказалось, что необходимо обнаружение конкретной формулы. В моем случае =ПРОМЕЖУТОЧНЫЕ.ИТОГИ()
> можно ли определить наличие конкретной формулы в ячейке?
Function HasFormula(cell As Range)
HasFormula = UCase(cell.FormulaLocal) = "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ()"
End Function
Дополнительно рекмонендую почитать книгу по VBA или встроенную справку, там достаточно хорошо расписан VBA.
>Подскажите, как все-таки посчитать только четные строки в огроменной таблице EXCEL.
Если данная функция недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».
Уточните, пожалуйста, что вы хотите получить? Количество нечетных строк или сумму по ячейке только в нечетных строках?
Какие строки вы считаете нечетными, те у которых номер строки - нечетный с начала листа или с начала вашей таблицы?
======
Допустим данные содержатся в ячейкках B2:B10.
1) В C2 внесите формулу =ЕЧЁТН(СТРОКА(B2)) и скопируйте ее в ячейки C3:C10. В результате четные строки будут содержать значение ИСТИНА, а нечетные ЛОЖЬ соответственно.
====
Если функция ЕЧЁТН недоступна или возвращает ошибку #ИМЯ?, установите и загрузите надстройку «Пакет анализа».
===
2) Для подсчета значений четных строк используйте формулу
=СУММЕСЛИ(C2:C10;"ИСТИНА";B2:B10)
для подсчета нечетных
=СУММЕСЛИ(C2:C10;"ЛОЖЬ";B2:B10)
Успехов!
Для окончания написания теста не хватает несколько элементов. Помогите! 1.Как на кнопку можно установить пароль (после введения пароля возможен переход на следующий лист, где видны результаты теста)и
2.часы (отображаются постоянно и запоминается время прохождение тесте после нажатия "завершить")
Function HasFormula(cell As Range)
HasFormula = UCase(cell.FormulaLocal) = "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ()"
End Function
-------------------------
Мне больше подошел вариант
Function HasFormula(cell As Range)
HasFormula = UCase(cell.FormulaLocal) Like "=ПРОМЕЖУТОЧНЫЕ.ИТОГИ*"
End Function
Спасибо за помощь!
Уже нашел, если кому надо
http://support.microsoft.com/kb/q213360/
Вопрос, как это перенести на другой компьютер? макросы, как я понимаю, можно перенести вместе с файлом Personal.xls , а как перенести панель инструментов?
=C41&ТЕКСТ(D41;"ДД.ММ.ГГГГ")
Помогите, пожалуйста, решить следующую проблему.
При открытии любого файла в Excel 2003 постоянно появляется окно с Установка компонентов для Microsoft Excel. Жду секунд 10 пока он (они) эти компоненты загрузятся. При следующем открытии файла опять та же история Установка компонентов для Microsoft Excel.
Как установить их раз и навсегда.
Спасибо.
Страницы