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

Вход

Регистрация

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

 

= Мир MS Excel/удаление/копирование столбцов для сохранения диапазона - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин, _Boroda_  
удаление/копирование столбцов для сохранения диапазона
карандаш Дата: Среда, 13.02.2013, 15:37 | Сообщение № 21
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (Serge_007)
Если выпадающий список основан на имени с другого листа, то в Excel старше 2007 он работать не будет

как же тогда быть с конвертацией?
у меня спсок на одном листе, а данные на другом
какой смысл в этой конвертации, если в 2010 работать не будет и у Алекса есть 2010?
"ничего не понимаю" (с)


Сообщение отредактировал карандаш - Среда, 13.02.2013, 15:38
 
Ответить
Сообщение
Цитата (Serge_007)
Если выпадающий список основан на имени с другого листа, то в Excel старше 2007 он работать не будет

как же тогда быть с конвертацией?
у меня спсок на одном листе, а данные на другом
какой смысл в этой конвертации, если в 2010 работать не будет и у Алекса есть 2010?
"ничего не понимаю" (с)

Автор - карандаш
Дата добавления - 13.02.2013 в 15:37
Serge_007 Дата: Среда, 13.02.2013, 15:42 | Сообщение № 22
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (карандаш)
как же тогда быть с конвертацией?

На все вопросы ответы есть в ПРАВИЛАХ
карандаш, я Вам сейчас начну замечания выносить за неоднократные их нарушения и игнорирование моих предупреждений!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (карандаш)
как же тогда быть с конвертацией?

На все вопросы ответы есть в ПРАВИЛАХ
карандаш, я Вам сейчас начну замечания выносить за неоднократные их нарушения и игнорирование моих предупреждений!

Автор - Serge_007
Дата добавления - 13.02.2013 в 15:42
карандаш Дата: Среда, 13.02.2013, 17:42 | Сообщение № 23
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (Serge_007)
неоднократные их нарушения и игнорирование моих предупреждений!

каких именно?
файл выложен в 2003 в сообщении №19
ваша реплика №20
мой вопрос в №21
ваше негодование №22
негодование на что? на вопрос? так это просто вопрос, потому как он логично вытекает из ваших же слов, что в 2007 и старше работать не будет в случае разных листов. В данном случае как раз такой случай.
Поэтому я просто поинтересовался. Свои правила не навязываю, в чужой монастырь со своим Уставом не лезу, в Правилах форума ответа на возникший вопрос - как разрешить создавшуюся ситуацию - не нашëл.
я опять чего-то недопонял, недочитал и что-то нарушил?
 
Ответить
Сообщение
Цитата (Serge_007)
неоднократные их нарушения и игнорирование моих предупреждений!

каких именно?
файл выложен в 2003 в сообщении №19
ваша реплика №20
мой вопрос в №21
ваше негодование №22
негодование на что? на вопрос? так это просто вопрос, потому как он логично вытекает из ваших же слов, что в 2007 и старше работать не будет в случае разных листов. В данном случае как раз такой случай.
Поэтому я просто поинтересовался. Свои правила не навязываю, в чужой монастырь со своим Уставом не лезу, в Правилах форума ответа на возникший вопрос - как разрешить создавшуюся ситуацию - не нашëл.
я опять чего-то недопонял, недочитал и что-то нарушил?

Автор - карандаш
Дата добавления - 13.02.2013 в 17:42
Serge_007 Дата: Среда, 13.02.2013, 17:56 | Сообщение № 24
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (карандаш)
негодование на что? на вопрос?

Третий и последний раз пишу: ЧИТАЙТЕ ПРАВИЛА
В них есть ответы на ВСЕ Ваши вопросы
Старайтесь прилагать файлы в версии Excel 2003-го офиса(xls)
ЧТО ТУТ НЕПОНЯТНОГО?! ЧТО ТУТ НЕЯСНО?! КАКИЕ МОГУТ ВОЗНИКАТЬ ВОПРОСЫ О ФОРМАТЕ?!
По русски, чёрным по-белому написано про формат XLS
Другие форматы прикладывать НЕ НАДО! Нет в правилах рекомендаций прикладывать другие форматы!
Вы же, то вообще файл не приложите, то в другом формате, то игнорируете мои просьбы всё же прочитать правила

Первое предупреждение Вам вынес
Всё, оффтоп закончен


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (карандаш)
негодование на что? на вопрос?

Третий и последний раз пишу: ЧИТАЙТЕ ПРАВИЛА
В них есть ответы на ВСЕ Ваши вопросы
Старайтесь прилагать файлы в версии Excel 2003-го офиса(xls)
ЧТО ТУТ НЕПОНЯТНОГО?! ЧТО ТУТ НЕЯСНО?! КАКИЕ МОГУТ ВОЗНИКАТЬ ВОПРОСЫ О ФОРМАТЕ?!
По русски, чёрным по-белому написано про формат XLS
Другие форматы прикладывать НЕ НАДО! Нет в правилах рекомендаций прикладывать другие форматы!
Вы же, то вообще файл не приложите, то в другом формате, то игнорируете мои просьбы всё же прочитать правила

Первое предупреждение Вам вынес
Всё, оффтоп закончен

Автор - Serge_007
Дата добавления - 13.02.2013 в 17:56
AlexM Дата: Среда, 13.02.2013, 20:03 | Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Застопорился на выпадающих списках с фильтрацией. Как сделать с фильтрацией пока не понял. sad
Этап со сдвижкой пока не начинал. Думаю не смысла, пока нет выпадающего списка с фильтром.
К сообщению приложен файл: Grafik021_new.xls (57.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЗастопорился на выпадающих списках с фильтрацией. Как сделать с фильтрацией пока не понял. sad
Этап со сдвижкой пока не начинал. Думаю не смысла, пока нет выпадающего списка с фильтром.

Автор - AlexM
Дата добавления - 13.02.2013 в 20:03
карандаш Дата: Четверг, 14.02.2013, 15:52 | Сообщение № 26
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
AlexM,
да, все верно
то, что сделано, работает верно
СПАСИБО

но т.к. список фирм будет довольно объемный, то без фильтрации по ФИО менеджера не обойтись
плюс к этому, выпадающий список необходимо сортировать по алфавиту - иначе очень трудно будет искать нужную фирму

а можно ли эту задачу решить предварительной сортировкой диапазона менеджер, ранг, фирма, примечание?

при сортировке задать условия сортировки по менеджерам, потом по фирмам
и уже зная, что список всегда отсортирован (при внесении новой фирмы можно нажать на кнопку "причесать список" и отсортировать диапазон)
можно основываясь на совпадении/несовпадении ячейки с предыдущей уже как-то решить задачу фильтрации по спискам?

не представляю механизма решения, поэтому просто высказал идею.

может поможет какой-нибудь вновь введ§нный вспомогательный столбец с дополнительной информацией?


Сообщение отредактировал карандаш - Четверг, 14.02.2013, 16:01
 
Ответить
СообщениеAlexM,
да, все верно
то, что сделано, работает верно
СПАСИБО

но т.к. список фирм будет довольно объемный, то без фильтрации по ФИО менеджера не обойтись
плюс к этому, выпадающий список необходимо сортировать по алфавиту - иначе очень трудно будет искать нужную фирму

а можно ли эту задачу решить предварительной сортировкой диапазона менеджер, ранг, фирма, примечание?

при сортировке задать условия сортировки по менеджерам, потом по фирмам
и уже зная, что список всегда отсортирован (при внесении новой фирмы можно нажать на кнопку "причесать список" и отсортировать диапазон)
можно основываясь на совпадении/несовпадении ячейки с предыдущей уже как-то решить задачу фильтрации по спискам?

не представляю механизма решения, поэтому просто высказал идею.

может поможет какой-нибудь вновь введ§нный вспомогательный столбец с дополнительной информацией?

Автор - карандаш
Дата добавления - 14.02.2013 в 15:52
карандаш Дата: Четверг, 14.02.2013, 17:23 | Сообщение № 27
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
выкладываю промежуточный файл
пояснения (и вероятный способ решения) внутри
возможно ли на его основе реализовать задачу смещения данных по времени (по дате)?

прим. при конвертации в 2003 эксел предупредил недопустимых потерях
в чем они состоят - не знаю
К сообщению приложен файл: Grafik03.xls (69.0 Kb)
 
Ответить
Сообщениевыкладываю промежуточный файл
пояснения (и вероятный способ решения) внутри
возможно ли на его основе реализовать задачу смещения данных по времени (по дате)?

прим. при конвертации в 2003 эксел предупредил недопустимых потерях
в чем они состоят - не знаю

Автор - карандаш
Дата добавления - 14.02.2013 в 17:23
_Boroda_ Дата: Четверг, 14.02.2013, 17:59 | Сообщение № 28
Группа: Админы
Ранг: Местный житель
Сообщений: 16763
Репутация: 6549 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Связанные списки сделал 2-мя вариантами.
1-й в столбце D, 2-й в столбце H
Первый формула попроще, но должна быть позадумчивей.
Второй наоборот - посложнее, но пошустрее.
Можно сделать комбинированный вариант или добавить еще пару имен и с ними
К сообщению приложен файл: Grafik021_new_2.xlsb (16.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеСвязанные списки сделал 2-мя вариантами.
1-й в столбце D, 2-й в столбце H
Первый формула попроще, но должна быть позадумчивей.
Второй наоборот - посложнее, но пошустрее.
Можно сделать комбинированный вариант или добавить еще пару имен и с ними

Автор - _Boroda_
Дата добавления - 14.02.2013 в 17:59
AlexM Дата: Четверг, 14.02.2013, 18:36 | Сообщение № 29
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (_Boroda_)
Связанные списки сделал 2-мя вариантами

После конвертации в Эксель 2003 в столбце D список не работает, а в Н работает.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (_Boroda_)
Связанные списки сделал 2-мя вариантами

После конвертации в Эксель 2003 в столбце D список не работает, а в Н работает.

Автор - AlexM
Дата добавления - 14.02.2013 в 18:36
карандаш Дата: Четверг, 14.02.2013, 20:30 | Сообщение № 30
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
_Boroda_,
предупреждение при открытии о частичной потери данных
в частности пишет:
[vba]
Код
Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.
Удаленное свойство: Проверка данных из части /xl/worksheets/sheet2.bin
[/vba]

списки работают не одинаково в этих двух столбцах
заполнил список фирм побольше, чтобы было понятно выполняется ли правило сортировки
(понятно, что ваших макросов там нет - файл битый скачался)
К сообщению приложен файл: Grafik-031.xls (72.5 Kb)


Сообщение отредактировал карандаш - Четверг, 14.02.2013, 20:31
 
Ответить
Сообщение_Boroda_,
предупреждение при открытии о частичной потери данных
в частности пишет:
[vba]
Код
Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.
Удаленное свойство: Проверка данных из части /xl/worksheets/sheet2.bin
[/vba]

списки работают не одинаково в этих двух столбцах
заполнил список фирм побольше, чтобы было понятно выполняется ли правило сортировки
(понятно, что ваших макросов там нет - файл битый скачался)

Автор - карандаш
Дата добавления - 14.02.2013 в 20:30
AlexM Дата: Четверг, 14.02.2013, 20:44 | Сообщение № 31
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
А так списки работают? Формулы от _Borodы_
еще вопрос по сдвижке блоков.
Допустим во вором блоке, в котором показывается СЕГОДНЯ суббота или воскресенье. Блок должен быть пустой. Так?
При открытии файла на следующий день блоки с рабочими днями должны сместится на один влево, а если сегодня суббота или воскресенье, то переместится через него. Если файл открыли через неделю, то все блоки должны быть пустыми. продумайте и подтвердите данный алгоритм.
К сообщению приложен файл: Grafik031_new.xls (57.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Четверг, 14.02.2013, 21:15
 
Ответить
СообщениеА так списки работают? Формулы от _Borodы_
еще вопрос по сдвижке блоков.
Допустим во вором блоке, в котором показывается СЕГОДНЯ суббота или воскресенье. Блок должен быть пустой. Так?
При открытии файла на следующий день блоки с рабочими днями должны сместится на один влево, а если сегодня суббота или воскресенье, то переместится через него. Если файл открыли через неделю, то все блоки должны быть пустыми. продумайте и подтвердите данный алгоритм.

Автор - AlexM
Дата добавления - 14.02.2013 в 20:44
карандаш Дата: Четверг, 14.02.2013, 22:08 | Сообщение № 32
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (AlexM)
Допустим во вором блоке, в котором показывается СЕГОДНЯ суббота или воскресенье. Блок должен быть пустой. Так?

необязательно
т.к. в субботу и воскресение никто его открывать не будет (разве что только я и то ради любопытства - как там оно себя ведет в выходные), то в принципе ничего можно не предпринимать
можно просто этот блок закрасить сереньким через УФ, что будет говорить о неактуальности данных и о том, что алгоритм верно работает и сегодня действительно один из выходных дней. А перемещать можно ничего не перемещать, не анализировать.

Цитата (AlexM)
При открытии файла на следующий день блоки с рабочими днями должны сместится на один влево,

да
Цитата (AlexM)
а если сегодня суббота или воскресенье, то переместится через него.

см. первый ответ

Цитата (AlexM)
Если файл открыли через неделю, то все блоки должны быть пустыми.

да
 
Ответить
Сообщение
Цитата (AlexM)
Допустим во вором блоке, в котором показывается СЕГОДНЯ суббота или воскресенье. Блок должен быть пустой. Так?

необязательно
т.к. в субботу и воскресение никто его открывать не будет (разве что только я и то ради любопытства - как там оно себя ведет в выходные), то в принципе ничего можно не предпринимать
можно просто этот блок закрасить сереньким через УФ, что будет говорить о неактуальности данных и о том, что алгоритм верно работает и сегодня действительно один из выходных дней. А перемещать можно ничего не перемещать, не анализировать.

Цитата (AlexM)
При открытии файла на следующий день блоки с рабочими днями должны сместится на один влево,

да
Цитата (AlexM)
а если сегодня суббота или воскресенье, то переместится через него.

см. первый ответ

Цитата (AlexM)
Если файл открыли через неделю, то все блоки должны быть пустыми.

да

Автор - карандаш
Дата добавления - 14.02.2013 в 22:08
AlexM Дата: Пятница, 15.02.2013, 21:11 | Сообщение № 33
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Посмотрите что получилось.

Тестировал файл не полностью, поэтому сообщите все ли работает правильно.
К сообщению приложен файл: Grafik031m_new.xls (57.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Суббота, 16.02.2013, 00:20
 
Ответить
СообщениеПосмотрите что получилось.

Тестировал файл не полностью, поэтому сообщите все ли работает правильно.

Автор - AlexM
Дата добавления - 15.02.2013 в 21:11
карандаш Дата: Суббота, 16.02.2013, 18:29 | Сообщение № 34
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
спасибо
проверил, изменив дату на компе на понедельник 18.02.2013
выявились такие нюансы
1. зависимость от названия листа. (название "расписание 2" получилось случайно)
можно, например, на листе с расписанием в ячейке А1 записать $$$ и закрыть еë от редактирования?
(например, способом из http://www.excelworld.ru/forum/2-3638-39714-16-1360774374
[vba]
Код
Рrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
          If Target.Row <> 1 Then Exit Sub
          If [A1] = "Пароль" Then Exit Sub
          Target.Offset(1).Select
End Sub
[/vba]
только поменять Row <> 1 на А1<>"$$$", а [A1]="Пароль" на [A2]="$$$"
тогда, если в А2 не будет указанных символов, то А1 будет недоступна, а значит изменить еë будет невозможно)

и по значению $$$ в А1 каждого листа искать лист с расписанием. Потом его имя присвоить переменной и оперировать eю, вместо прямого имени, которое может изменить пользователь

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

2. какя-то непонятная "наследственная память" у ячеек со списками
я поменял на листе "адреса" менеджеров и фирмы, но на листе "расписание" при выборе фирмы от менеджера фильтрация работает неправильно (кроме менеджера Гришина)
т.к. в устройстве списков еще не разобрался, то причину указать не могу.
могу только указать следствие.

3. кнопка сортировки для водителя (коммент в файле)
К сообщению приложен файл: Grafik032.xls (77.5 Kb)


Сообщение отредактировал карандаш - Суббота, 16.02.2013, 18:55
 
Ответить
Сообщениеспасибо
проверил, изменив дату на компе на понедельник 18.02.2013
выявились такие нюансы
1. зависимость от названия листа. (название "расписание 2" получилось случайно)
можно, например, на листе с расписанием в ячейке А1 записать $$$ и закрыть еë от редактирования?
(например, способом из http://www.excelworld.ru/forum/2-3638-39714-16-1360774374
[vba]
Код
Рrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
          If Target.Row <> 1 Then Exit Sub
          If [A1] = "Пароль" Then Exit Sub
          Target.Offset(1).Select
End Sub
[/vba]
только поменять Row <> 1 на А1<>"$$$", а [A1]="Пароль" на [A2]="$$$"
тогда, если в А2 не будет указанных символов, то А1 будет недоступна, а значит изменить еë будет невозможно)

и по значению $$$ в А1 каждого листа искать лист с расписанием. Потом его имя присвоить переменной и оперировать eю, вместо прямого имени, которое может изменить пользователь

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

2. какя-то непонятная "наследственная память" у ячеек со списками
я поменял на листе "адреса" менеджеров и фирмы, но на листе "расписание" при выборе фирмы от менеджера фильтрация работает неправильно (кроме менеджера Гришина)
т.к. в устройстве списков еще не разобрался, то причину указать не могу.
могу только указать следствие.

3. кнопка сортировки для водителя (коммент в файле)

Автор - карандаш
Дата добавления - 16.02.2013 в 18:29
AlexM Дата: Суббота, 16.02.2013, 19:57 | Сообщение № 35
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
По первому пункту.
Код для защиты А1
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Address(0, 0) <> "A1" Then Exit Sub
     If [A2] = "$$$" Then Exit Sub
     Target.Offset(1).Select
End Sub
[/vba]
Цитата (карандаш)
и по значению $$$ в А1 каждого листа искать лист с расписанием. Потом его имя присвоить переменной и оперировать им, вместо прямого имени, которое может изменить пользователь

К сожалению фразу не понял.
Расписаний в книге может быть несколько? Ранее об этом вы не писали.
К листам можно обращаться не только по именам, но и по индексам. Самый левый лист с индексом 1, правее с индексом 2 и т.д.
Лучший вариант, когда задача описывается целиком, а потом этапами делается, а тут получается что сделали как бы ВСЕ, а это оказывается только начало. sad
По пункту 2
Без файла, где присутствует непонятная "наследственная память" трудно что-то сказать.
По пункту 3
Цитата (карандаш)
коммент в файле

Где файл?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПо первому пункту.
Код для защиты А1
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Target.Address(0, 0) <> "A1" Then Exit Sub
     If [A2] = "$$$" Then Exit Sub
     Target.Offset(1).Select
End Sub
[/vba]
Цитата (карандаш)
и по значению $$$ в А1 каждого листа искать лист с расписанием. Потом его имя присвоить переменной и оперировать им, вместо прямого имени, которое может изменить пользователь

К сожалению фразу не понял.
Расписаний в книге может быть несколько? Ранее об этом вы не писали.
К листам можно обращаться не только по именам, но и по индексам. Самый левый лист с индексом 1, правее с индексом 2 и т.д.
Лучший вариант, когда задача описывается целиком, а потом этапами делается, а тут получается что сделали как бы ВСЕ, а это оказывается только начало. sad
По пункту 2
Без файла, где присутствует непонятная "наследственная память" трудно что-то сказать.
По пункту 3
Цитата (карандаш)
коммент в файле

Где файл?

Автор - AlexM
Дата добавления - 16.02.2013 в 19:57
карандаш Дата: Суббота, 16.02.2013, 20:18 | Сообщение № 36
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
AlexM,
1. по защите все понятно
2. по фразе
расписание одно
может меняться его расположение - листы могут передвигаться, переименовываться (первым листом я сделал лист для водителя, расписание стало вторым листом. Да и мало ли какие ещ§ изменения могут произойти, а программа должна быть к ним индиферентна)
поэтому нужен способ идентификации листа с расписанием
ничего лучшего я не придумал как следующий метод
метим этот лист тем, что располагаем в ячейке А1 какую-нибудь запись, например $$$ (и защищаем еë от случайного стирания)
теперь мы можем найти лист с расписанием как бы он ни назывался и где бы он не находился. И именно с ним работать в подпрограмме.
может есть и более лучший способ сделать процедуру независимой от имени и месторасположения.

Задача описано полностью. Сделали действительно все. Просто я действительно не смог предусмотреть этих нюансов. Они вылезли на этапе тестирования.

Файл прикрепил позже, т.к. он не прикрепился с первого раза, а когда стал редактировать и переприкреплять - комп завис, пока перезагружался, пока снова прикреплял - прошло время. Возможно вы успели раньше и не видели файла.


Сообщение отредактировал карандаш - Суббота, 16.02.2013, 20:19
 
Ответить
СообщениеAlexM,
1. по защите все понятно
2. по фразе
расписание одно
может меняться его расположение - листы могут передвигаться, переименовываться (первым листом я сделал лист для водителя, расписание стало вторым листом. Да и мало ли какие ещ§ изменения могут произойти, а программа должна быть к ним индиферентна)
поэтому нужен способ идентификации листа с расписанием
ничего лучшего я не придумал как следующий метод
метим этот лист тем, что располагаем в ячейке А1 какую-нибудь запись, например $$$ (и защищаем еë от случайного стирания)
теперь мы можем найти лист с расписанием как бы он ни назывался и где бы он не находился. И именно с ним работать в подпрограмме.
может есть и более лучший способ сделать процедуру независимой от имени и месторасположения.

Задача описано полностью. Сделали действительно все. Просто я действительно не смог предусмотреть этих нюансов. Они вылезли на этапе тестирования.

Файл прикрепил позже, т.к. он не прикрепился с первого раза, а когда стал редактировать и переприкреплять - комп завис, пока перезагружался, пока снова прикреплял - прошло время. Возможно вы успели раньше и не видели файла.

Автор - карандаш
Дата добавления - 16.02.2013 в 20:18
AlexM Дата: Суббота, 16.02.2013, 20:32 | Сообщение № 37
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (карандаш)
может есть и более лучший способ сделать процедуру независимой

На листе расписание всегда в ячейке G1 дата, а в G2 формула "=G1". Может быть на это сделать ориентир.
Мало вероятно что в книге будут листы с точно таким расположением даты и такой формулы.
Алгоритм.
По событию открытия книги пробегаем по всем листам и в том где G1 с датой и G2 с формулой останавливаемся и индекс этого листа используем для кода, который уже отработан.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (карандаш)
может есть и более лучший способ сделать процедуру независимой

На листе расписание всегда в ячейке G1 дата, а в G2 формула "=G1". Может быть на это сделать ориентир.
Мало вероятно что в книге будут листы с точно таким расположением даты и такой формулы.
Алгоритм.
По событию открытия книги пробегаем по всем листам и в том где G1 с датой и G2 с формулой останавливаемся и индекс этого листа используем для кода, который уже отработан.

Автор - AlexM
Дата добавления - 16.02.2013 в 20:32
карандаш Дата: Суббота, 16.02.2013, 20:36 | Сообщение № 38
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (AlexM)
На листе расписание всегда в ячейке G1 дата, а в G2 формула "=G1". Может быть на это сделать ориентир.


ничто не мешает подвинуть их, введя допстроки наверх (например, для написания пояснений или ещ§ чего
а так же ввести новые столцы слева
нужна ячейка, которая никуда не денется и которая никому не нужна
кроме А1 такой не найти, мне кажется

на формулу можно ориентироваться, но ведь и она может измениться со временем (врдуг что-то придется доработать)
но тогда надо перебирать много ячеек на листе

тем более в ячейку А1 можно поместить и более осмысленную информацию, например то же слово "расписание"
и переименовывай и переставляй лист как угодно, и сдвигай ячейки (строки/столбцы) как хочешь, и меняй алгоритм как заблагорассудится


Сообщение отредактировал карандаш - Суббота, 16.02.2013, 20:42
 
Ответить
Сообщение
Цитата (AlexM)
На листе расписание всегда в ячейке G1 дата, а в G2 формула "=G1". Может быть на это сделать ориентир.


ничто не мешает подвинуть их, введя допстроки наверх (например, для написания пояснений или ещ§ чего
а так же ввести новые столцы слева
нужна ячейка, которая никуда не денется и которая никому не нужна
кроме А1 такой не найти, мне кажется

на формулу можно ориентироваться, но ведь и она может измениться со временем (врдуг что-то придется доработать)
но тогда надо перебирать много ячеек на листе

тем более в ячейку А1 можно поместить и более осмысленную информацию, например то же слово "расписание"
и переименовывай и переставляй лист как угодно, и сдвигай ячейки (строки/столбцы) как хочешь, и меняй алгоритм как заблагорассудится

Автор - карандаш
Дата добавления - 16.02.2013 в 20:36
AlexM Дата: Суббота, 16.02.2013, 20:40 | Сообщение № 39
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Тогда у вас не будет работать уже отработанный макрос.
Его под эту сдвижку придется править, а за одно и поправите адреса для поиска листа.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеТогда у вас не будет работать уже отработанный макрос.
Его под эту сдвижку придется править, а за одно и поправите адреса для поиска листа.

Автор - AlexM
Дата добавления - 16.02.2013 в 20:40
карандаш Дата: Суббота, 16.02.2013, 20:45 | Сообщение № 40
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
Цитата (AlexM)
за одно и поправите адреса для поиска листа


адреса править не придется
вы только скажите как присвоить переменной имя листа так, чтобы потом эту переменную можно было поставить в макрос в качестве листа

я все поправлю сам

и как перебрать листы, чтобы найти нужный по содержимому ячейки А1
в общем виде просто покажите, я попробую
[vba]
Код
Set today_1 = Sheets("расписание 2").Range("C4:D20")
[/vba]

[vba]
Код
Set today_1 = Sheets_1.Range("C4:D20")
[/vba]

вот переменная Sheets_1
что нужно сделать, чтобы присвоить ей найденный лист
и как найти этот лист по содержимому ячейки А1?


Сообщение отредактировал карандаш - Суббота, 16.02.2013, 20:49
 
Ответить
Сообщение
Цитата (AlexM)
за одно и поправите адреса для поиска листа


адреса править не придется
вы только скажите как присвоить переменной имя листа так, чтобы потом эту переменную можно было поставить в макрос в качестве листа

я все поправлю сам

и как перебрать листы, чтобы найти нужный по содержимому ячейки А1
в общем виде просто покажите, я попробую
[vba]
Код
Set today_1 = Sheets("расписание 2").Range("C4:D20")
[/vba]

[vba]
Код
Set today_1 = Sheets_1.Range("C4:D20")
[/vba]

вот переменная Sheets_1
что нужно сделать, чтобы присвоить ей найденный лист
и как найти этот лист по содержимому ячейки А1?

Автор - карандаш
Дата добавления - 16.02.2013 в 20:45
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

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