Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Нужна помощь в оформлении документа - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Нужна помощь в оформлении документа
Rusel Дата: Среда, 08.02.2012, 09:29 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Добрый день. Как сделать чтобы исчезали ненужные строки при выборе определенных условий?
Например в приложенном документе мне нужно, чтобы при выборе в ячейке D14 значения "ПВХ", не показывались строки 42 и 43? (строки 42 и 43 применяются для расчетов только в случае заказа алюминиевого профиля)
Возможно такое???
К сообщению приложен файл: ____.xls (32.5 Kb)


Сообщение отредактировал Rusel - Среда, 08.02.2012, 09:55
 
Ответить
СообщениеДобрый день. Как сделать чтобы исчезали ненужные строки при выборе определенных условий?
Например в приложенном документе мне нужно, чтобы при выборе в ячейке D14 значения "ПВХ", не показывались строки 42 и 43? (строки 42 и 43 применяются для расчетов только в случае заказа алюминиевого профиля)
Возможно такое???

Автор - Rusel
Дата добавления - 08.02.2012 в 09:29
Jhonson Дата: Среда, 08.02.2012, 09:48 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Возможно только макросом!

[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$14" Then
     If Target.Value = "ПВХ" Then
         Range("42:43").EntireRow.Hidden = True
     Else
         Range("42:43").EntireRow.Hidden = False
     End If
End If
End Sub
[/vba]
К сообщению приложен файл: PVH.xls (47.0 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеВозможно только макросом!

[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$14" Then
     If Target.Value = "ПВХ" Then
         Range("42:43").EntireRow.Hidden = True
     Else
         Range("42:43").EntireRow.Hidden = False
     End If
End If
End Sub
[/vba]

Автор - Jhonson
Дата добавления - 08.02.2012 в 09:48
Rusel Дата: Среда, 08.02.2012, 10:00 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson,
К сожалению, я не знаю как пользоваться макросами, и "с чем их едят вообще".
И во вложенном файле я не вижу того, что мне нужно. А нужно, чтобы строчек 42 и 43 не было вообще, и значения в них не влияли на общий результат стоимости заказа.
Да, и еще я заменил файл в моем первом сообщении, первоначальный был не тот...ссори...


Сообщение отредактировал Rusel - Среда, 08.02.2012, 10:01
 
Ответить
СообщениеJhonson,
К сожалению, я не знаю как пользоваться макросами, и "с чем их едят вообще".
И во вложенном файле я не вижу того, что мне нужно. А нужно, чтобы строчек 42 и 43 не было вообще, и значения в них не влияли на общий результат стоимости заказа.
Да, и еще я заменил файл в моем первом сообщении, первоначальный был не тот...ссори...

Автор - Rusel
Дата добавления - 08.02.2012 в 10:00
Jhonson Дата: Среда, 08.02.2012, 10:06 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Для того чтобы ячейки не влияли на результат используйте

Code
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;F40:F44)


Для того чтобы макросы работали выберите: сервис - параметры - безопасность - безопасность макросов и установите безопасность "средняя" или "низкая"
Другого способа, думаю не существует.


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеДля того чтобы ячейки не влияли на результат используйте

Code
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;F40:F44)


Для того чтобы макросы работали выберите: сервис - параметры - безопасность - безопасность макросов и установите безопасность "средняя" или "низкая"
Другого способа, думаю не существует.

Автор - Jhonson
Дата добавления - 08.02.2012 в 10:06
Rusel Дата: Среда, 08.02.2012, 10:25 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson,
Не могли бы вы подробнее рассказать как вставить указанный вами макрос в рабочий файл, т.к. во вложении лишь пример. И что означает цифра 109 в формуле "промежуточные.итоги"? Как работает эта формула? Как я понимаю она считает только то, что не скрыто? Т.е. без макроса она не работает?
 
Ответить
СообщениеJhonson,
Не могли бы вы подробнее рассказать как вставить указанный вами макрос в рабочий файл, т.к. во вложении лишь пример. И что означает цифра 109 в формуле "промежуточные.итоги"? Как работает эта формула? Как я понимаю она считает только то, что не скрыто? Т.е. без макроса она не работает?

Автор - Rusel
Дата добавления - 08.02.2012 в 10:25
Jhonson Дата: Среда, 08.02.2012, 10:37 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

alt+F11, далее слева щелкаем на имени листа куда хотим вставить макрос, в открывшуюся область вставляем код макроса.

Для адаптации макроса:

Code
Target.Address = "$D$14"

в этой строчке меняем адрес ячейки в которой должны выбрать ПВХ

Code
Range("42:43").EntireRow.Hidden = True    
Range("42:43").EntireRow.Hidden = False

в этих строчках меням номера строк, которые нам необходимо скрыть.

Цифра 109 означает, что формула работает на суммирование!
Code
промежуточные.итоги()
правильно, - считает только то что не скрыто. При этом макрос тут совершенно не причем!


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Среда, 08.02.2012, 10:38
 
Ответить
Сообщениеalt+F11, далее слева щелкаем на имени листа куда хотим вставить макрос, в открывшуюся область вставляем код макроса.

Для адаптации макроса:

Code
Target.Address = "$D$14"

в этой строчке меняем адрес ячейки в которой должны выбрать ПВХ

Code
Range("42:43").EntireRow.Hidden = True    
Range("42:43").EntireRow.Hidden = False

в этих строчках меням номера строк, которые нам необходимо скрыть.

Цифра 109 означает, что формула работает на суммирование!
Code
промежуточные.итоги()
правильно, - считает только то что не скрыто. При этом макрос тут совершенно не причем!

Автор - Jhonson
Дата добавления - 08.02.2012 в 10:37
Rusel Дата: Среда, 08.02.2012, 11:07 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson,
Я отрыл что-то нажав F11, вставил в поле то, что скопировал из вашего сообщения №2 (принтскрин во вложении), и все заработало.
Теперь я отправил этот файл своему коллеге, но у него не работает. Видимо этот макрос работает только на моем компе. Как привязать его к файлу, чтобы отправлять другим?

http://files.mail.ru/AY7S6R


Сообщение отредактировал Rusel - Среда, 08.02.2012, 11:10
 
Ответить
СообщениеJhonson,
Я отрыл что-то нажав F11, вставил в поле то, что скопировал из вашего сообщения №2 (принтскрин во вложении), и все заработало.
Теперь я отправил этот файл своему коллеге, но у него не работает. Видимо этот макрос работает только на моем компе. Как привязать его к файлу, чтобы отправлять другим?

http://files.mail.ru/AY7S6R

Автор - Rusel
Дата добавления - 08.02.2012 в 11:07
Jhonson Дата: Среда, 08.02.2012, 11:15 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Quote (Jhonson)
Для того чтобы макросы работали выберите: сервис - параметры - безопасность - безопасность макросов и установите безопасность "средняя" или "низкая"


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщение
Quote (Jhonson)
Для того чтобы макросы работали выберите: сервис - параметры - безопасность - безопасность макросов и установите безопасность "средняя" или "низкая"

Автор - Jhonson
Дата добавления - 08.02.2012 в 11:15
Rusel Дата: Среда, 08.02.2012, 11:18 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Jhonson,
Я сделал это на другом компе (у нас Excel 2007), в параметрах макросов выбрано: включить все макросы. Но на другом компе не работает. Что еще может быть?
 
Ответить
СообщениеJhonson,
Я сделал это на другом компе (у нас Excel 2007), в параметрах макросов выбрано: включить все макросы. Но на другом компе не работает. Что еще может быть?

Автор - Rusel
Дата добавления - 08.02.2012 в 11:18
Jhonson Дата: Среда, 08.02.2012, 11:21 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

сохраните книгу, как *.xlsm


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
Сообщениесохраните книгу, как *.xlsm

Автор - Jhonson
Дата добавления - 08.02.2012 в 11:21
Alex_ST Дата: Среда, 08.02.2012, 11:48 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Хоть я и припоздал, но не зря же делал...
1. Тоже, конечно, макрос для скрытия строк, но чуть покороче
2. Подправил форматы ячеек
3. Сделал автонумерацию пунктов
4. Сделал автовыбор цен и МДФ, и профиля
5. Сделал динамический именованный диапазон МДФ - теперь можно добавлять другие записи или удалять устаревшие. Список проверки данных не сломается.
К сообщению приложен файл: 9845451.xls (56.0 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеХоть я и припоздал, но не зря же делал...
1. Тоже, конечно, макрос для скрытия строк, но чуть покороче
2. Подправил форматы ячеек
3. Сделал автонумерацию пунктов
4. Сделал автовыбор цен и МДФ, и профиля
5. Сделал динамический именованный диапазон МДФ - теперь можно добавлять другие записи или удалять устаревшие. Список проверки данных не сломается.

Автор - Alex_ST
Дата добавления - 08.02.2012 в 11:48
Rusel Дата: Среда, 08.02.2012, 13:24 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Спасибо всем огромное, классные решения!!!
 
Ответить
СообщениеСпасибо всем огромное, классные решения!!!

Автор - Rusel
Дата добавления - 08.02.2012 в 13:24
Alex_ST Дата: Среда, 08.02.2012, 13:33 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, если топик-стартер с автонумерацией пунктов и динамическим именованным диапазоном сам разобрался, то и слава богу!



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 08.02.2012, 13:33
 
Ответить
СообщениеНу, если топик-стартер с автонумерацией пунктов и динамическим именованным диапазоном сам разобрался, то и слава богу!

Автор - Alex_ST
Дата добавления - 08.02.2012 в 13:33
Rusel Дата: Среда, 08.02.2012, 14:30 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Quote (Alex_ST)
динамическим именованным диапазоном


можно поподробней: что это такое?

Quote (Alex_ST)
стартер с автонумерацией пунктов


Здесь я понял, что при удалении ненужных позиций, номера тоже не будут показываться. А как на счет добавления строк? если строки добавить, то макрос уже не будет правильно работать?
 
Ответить
Сообщение
Quote (Alex_ST)
динамическим именованным диапазоном


можно поподробней: что это такое?

Quote (Alex_ST)
стартер с автонумерацией пунктов


Здесь я понял, что при удалении ненужных позиций, номера тоже не будут показываться. А как на счет добавления строк? если строки добавить, то макрос уже не будет правильно работать?

Автор - Rusel
Дата добавления - 08.02.2012 в 14:30
Serge_007 Дата: Среда, 08.02.2012, 14:40 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Rusel)
что это такое?

Это именованые диапазоны, которые изменяют свой размер, в зависимости от кол-ва записей в них.
Определяются формулой.
В примере от Alex ST это диапазон МДФ



Quote (Rusel)
если строки добавить, то макрос уже не будет правильно работать?

А если попробовать?
К сообщению приложен файл: 0653626.jpg (20.4 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Rusel)
что это такое?

Это именованые диапазоны, которые изменяют свой размер, в зависимости от кол-ва записей в них.
Определяются формулой.
В примере от Alex ST это диапазон МДФ



Quote (Rusel)
если строки добавить, то макрос уже не будет правильно работать?

А если попробовать?

Автор - Serge_007
Дата добавления - 08.02.2012 в 14:40
Alex_ST Дата: Среда, 08.02.2012, 15:15 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Диапазон МДФ определён не "жёстко" , как было изначально сделано у вас: МДФ='Цена МДФ кв.м.'!$A$6:$A$31
а динамически, т.е. его размер зависит от количества значений ниже ячейки А6: МДФ=СМЕЩ('Цена МДФ кв.м.'!$A$6;0;0;СЧЁТЗ('Цена МДФ кв.м.'!$A$6:$A$105);1)
Поэтому вы можете свободно удалять/добавлять разные типы МДФ из списка - размер именованного диапазона будет автоматически изменяться вместе с ним.
И цены в таблицу для подсчёта Итого берутся не из фиксированного диапазона Е40=ВПР(D13;'Цена МДФ кв.м.'!A6:B31;2;0) , а из диапазона, связанного с динамическим диапазоном МДФ: Е40=ВПР(D13;СМЕЩ(МДФ;0;0;;2);2;0)
Ну, уж за одно и цена профиля там считается (цену я, конечно, взял с потолка просто для примера)

Скрытие/показ строк именно 42:43 прописано в макросе "жёстко", как вы и просили.
Но можно, конечно, как-то их "обозвать" (присвоить имена) и тогда в макросе прописать, что нужно скрывать/показывать не конкретные строки, а именованные диапазоны.
Тогда вы сможете изменять число строк таблицы комплектующих, не изменяя макроса.
Да и ячейку, в которую выбирается из списка тип обработки торцов, лучше бы сделать именованной.
Назовите, например, ячейку D14="Обработка", а строки 42:43="Прятать". Тогда макрос можно будет переписать так:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [Обработка]) Is Nothing Then
       [Прятать].EntireRow.Hidden = Target.Value = "ПВХ"
    End If
End Sub
[/vba]
Вот, я сделал в примере. Там для наглядности список именованных диапазонов выведен красным шрифтом на втором листе.
К сообщению приложен файл: 2071981.xls (66.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеДиапазон МДФ определён не "жёстко" , как было изначально сделано у вас: МДФ='Цена МДФ кв.м.'!$A$6:$A$31
а динамически, т.е. его размер зависит от количества значений ниже ячейки А6: МДФ=СМЕЩ('Цена МДФ кв.м.'!$A$6;0;0;СЧЁТЗ('Цена МДФ кв.м.'!$A$6:$A$105);1)
Поэтому вы можете свободно удалять/добавлять разные типы МДФ из списка - размер именованного диапазона будет автоматически изменяться вместе с ним.
И цены в таблицу для подсчёта Итого берутся не из фиксированного диапазона Е40=ВПР(D13;'Цена МДФ кв.м.'!A6:B31;2;0) , а из диапазона, связанного с динамическим диапазоном МДФ: Е40=ВПР(D13;СМЕЩ(МДФ;0;0;;2);2;0)
Ну, уж за одно и цена профиля там считается (цену я, конечно, взял с потолка просто для примера)

Скрытие/показ строк именно 42:43 прописано в макросе "жёстко", как вы и просили.
Но можно, конечно, как-то их "обозвать" (присвоить имена) и тогда в макросе прописать, что нужно скрывать/показывать не конкретные строки, а именованные диапазоны.
Тогда вы сможете изменять число строк таблицы комплектующих, не изменяя макроса.
Да и ячейку, в которую выбирается из списка тип обработки торцов, лучше бы сделать именованной.
Назовите, например, ячейку D14="Обработка", а строки 42:43="Прятать". Тогда макрос можно будет переписать так:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [Обработка]) Is Nothing Then
       [Прятать].EntireRow.Hidden = Target.Value = "ПВХ"
    End If
End Sub
[/vba]
Вот, я сделал в примере. Там для наглядности список именованных диапазонов выведен красным шрифтом на втором листе.

Автор - Alex_ST
Дата добавления - 08.02.2012 в 15:15
Alex_ST Дата: Среда, 08.02.2012, 17:08 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Я тут от делать нечего ещё чуть причесал-украсил табличку
К сообщению приложен файл: 8145987.xls (66.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЯ тут от делать нечего ещё чуть причесал-украсил табличку

Автор - Alex_ST
Дата добавления - 08.02.2012 в 17:08
Rusel Дата: Четверг, 09.02.2012, 07:07 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Alex_ST,
Совсем здорово получилось, мои коллеги обалдеют от таких наворотов.... Спасибо за уделенное внимание и время...
А можно ли сделать так, чтобы в основной таблице (где перечисляются фасады, их цвета и размеры) после того как ввели последнюю позицию (№17) при нажатии ЕНТЕР добавлялась новая строка. Это понадобится если позиций будет больше, чем 17.
Или я уже совсем обнаглел??? facepalm
 
Ответить
СообщениеAlex_ST,
Совсем здорово получилось, мои коллеги обалдеют от таких наворотов.... Спасибо за уделенное внимание и время...
А можно ли сделать так, чтобы в основной таблице (где перечисляются фасады, их цвета и размеры) после того как ввели последнюю позицию (№17) при нажатии ЕНТЕР добавлялась новая строка. Это понадобится если позиций будет больше, чем 17.
Или я уже совсем обнаглел??? facepalm

Автор - Rusel
Дата добавления - 09.02.2012 в 07:07
Alex_ST Дата: Четверг, 09.02.2012, 09:27 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Rusel,
в вашей таблице, похоже придётся поглубже покопаться чтобы реализовать вашу абсолютно логичную "хотелку".
Там вообще нужно будет сделать немного по другому: сделать список выбора материалов и работ, а около него не выводимую на печать кнопочку, которая будет добавлять в список новые строки с выбранными работами. И скорее всего, список с кнопочкой лучше будет делать на Юзер-Форме …
А меня сейчас подгрузили на работе. Поэтому заняться СЕЙЧАС (сегодня - наверняка) не смогу. Может быть, завтра будет время поковыряться.

К стати! Надеюсь, форма бланка заказа у вас приказом по организации не закреплена как неизменная?
Если НЕТ, то почему бы сразу в строках с материалами не считать их стоимость и стоимость работ? А в строке Итого сразу не подбивать сумму?
Тогда не нужна будет вторая (нижняя) табличка, что облегчит жизнь.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 09.02.2012, 09:33
 
Ответить
СообщениеRusel,
в вашей таблице, похоже придётся поглубже покопаться чтобы реализовать вашу абсолютно логичную "хотелку".
Там вообще нужно будет сделать немного по другому: сделать список выбора материалов и работ, а около него не выводимую на печать кнопочку, которая будет добавлять в список новые строки с выбранными работами. И скорее всего, список с кнопочкой лучше будет делать на Юзер-Форме …
А меня сейчас подгрузили на работе. Поэтому заняться СЕЙЧАС (сегодня - наверняка) не смогу. Может быть, завтра будет время поковыряться.

К стати! Надеюсь, форма бланка заказа у вас приказом по организации не закреплена как неизменная?
Если НЕТ, то почему бы сразу в строках с материалами не считать их стоимость и стоимость работ? А в строке Итого сразу не подбивать сумму?
Тогда не нужна будет вторая (нижняя) табличка, что облегчит жизнь.

Автор - Alex_ST
Дата добавления - 09.02.2012 в 09:27
Rusel Дата: Четверг, 09.02.2012, 13:07 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Alex_ST,
Форма не закреплена, работаю с той, которая была до меня. Если все данные будут в одной таблице - это хорошо. Но, как вы наверное уже поняли, в случае обработки торцов фасадов в алюминиевый профиль, добавляются стоимости уголков и сама работа по сборке в алюминиевый профиль, а в случае закатки в ПВХ - стоимость ПВХ включает в себя и работу по закатке.
Но если даже останется все как есть, ничего страшного, то что уже есть - это тоже супер!!!
 
Ответить
СообщениеAlex_ST,
Форма не закреплена, работаю с той, которая была до меня. Если все данные будут в одной таблице - это хорошо. Но, как вы наверное уже поняли, в случае обработки торцов фасадов в алюминиевый профиль, добавляются стоимости уголков и сама работа по сборке в алюминиевый профиль, а в случае закатки в ПВХ - стоимость ПВХ включает в себя и работу по закатке.
Но если даже останется все как есть, ничего страшного, то что уже есть - это тоже супер!!!

Автор - Rusel
Дата добавления - 09.02.2012 в 13:07
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!