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

Вход

Регистрация

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

 

= Мир MS Excel/Ссылка на предыдущий лист. - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Ссылка на предыдущий лист.
ghost3085 Дата: Среда, 29.05.2013, 10:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Помогите мне в такой проблеме.
У меня документ в нем сейчас около 10 листов. Каждый лист ссылается на пару ячеек предыдущего.
Примет: Лист2 ссылается на ячейку В2 и С5 листа1, Лист3 ссылается на В2 и С5 листа2 и тд.
Имена листов не известны. Как ссылаться на предыдущий лист???
 
Ответить
СообщениеПомогите мне в такой проблеме.
У меня документ в нем сейчас около 10 листов. Каждый лист ссылается на пару ячеек предыдущего.
Примет: Лист2 ссылается на ячейку В2 и С5 листа1, Лист3 ссылается на В2 и С5 листа2 и тд.
Имена листов не известны. Как ссылаться на предыдущий лист???

Автор - ghost3085
Дата добавления - 29.05.2013 в 10:59
Serge_007 Дата: Среда, 29.05.2013, 11:19 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Формулами - никак


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеФормулами - никак

Автор - Serge_007
Дата добавления - 29.05.2013 в 11:19
ghost3085 Дата: Среда, 29.05.2013, 12:14 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Можно и макросом. Желательно обьяснить. Или готовый макрос пришлите если не тяжело, а я его подгоню.
Заранее благодарю.
 
Ответить
СообщениеМожно и макросом. Желательно обьяснить. Или готовый макрос пришлите если не тяжело, а я его подгоню.
Заранее благодарю.

Автор - ghost3085
Дата добавления - 29.05.2013 в 12:14
ghost3085 Дата: Среда, 29.05.2013, 14:08 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Я тут немного поклацал.
У меня 2 функции

Определяем имя листа
[vba]
Код
Function SheetName(iSheetNo As Long) As String
SheetName = Sheets(iSheetNo).Name
End Function
[/vba]

Определяем номер листа
[vba]
Код
Function SheetNo()
Application.Volatile
SheetNo = Application.Caller.Parent.Index
End Function
[/vba]

И, соответственно,

Код
=ДВССЫЛ(sheetname(sheetno()-1)&"!A1")


В результате на чистом фале все работает, но когда переименовываю лист по типу 10-15,04 (с 10 по 15 апреля) в результате ЗНАЧ
Подскажите где копать????

[admin]Оформляйте коды тегами![/admin]


Сообщение отредактировал ghost3085 - Среда, 29.05.2013, 14:12
 
Ответить
СообщениеЯ тут немного поклацал.
У меня 2 функции

Определяем имя листа
[vba]
Код
Function SheetName(iSheetNo As Long) As String
SheetName = Sheets(iSheetNo).Name
End Function
[/vba]

Определяем номер листа
[vba]
Код
Function SheetNo()
Application.Volatile
SheetNo = Application.Caller.Parent.Index
End Function
[/vba]

И, соответственно,

Код
=ДВССЫЛ(sheetname(sheetno()-1)&"!A1")


В результате на чистом фале все работает, но когда переименовываю лист по типу 10-15,04 (с 10 по 15 апреля) в результате ЗНАЧ
Подскажите где копать????

[admin]Оформляйте коды тегами![/admin]

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

Excel 2003
Можно функцией пользователя.
Код поместить в Модуль1
[vba]
Код
Function PrevSheet(Cell As Range) As Variant
PrevSheet = Sheets(IIf(ActiveSheet.Index = 1, 1, ActiveSheet.Index - 1)).Range(Cell.Address)
End Function
[/vba]
Чтобы при изменении значений в ячейке, которая является аргументом функции, функция пересчитывалась надо к формуле добавить:
Если формула возвращает число +СЕГОДНЯ()*0, если формула возвращает текст &ЕСЛИ(СЕГОДНЯ()*0;;"")
См.файл.
К сообщению приложен файл: ____.xls (25.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМожно функцией пользователя.
Код поместить в Модуль1
[vba]
Код
Function PrevSheet(Cell As Range) As Variant
PrevSheet = Sheets(IIf(ActiveSheet.Index = 1, 1, ActiveSheet.Index - 1)).Range(Cell.Address)
End Function
[/vba]
Чтобы при изменении значений в ячейке, которая является аргументом функции, функция пересчитывалась надо к формуле добавить:
Если формула возвращает число +СЕГОДНЯ()*0, если формула возвращает текст &ЕСЛИ(СЕГОДНЯ()*0;;"")
См.файл.

Автор - AlexM
Дата добавления - 29.05.2013 в 14:11
ghost3085 Дата: Четверг, 30.05.2013, 10:19 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Спасибо!!
Теперь вопрос как зделать автоматическое обновление данных при перемещение по ячейкам??
Данные не обновляться пока не обновлю ячейку с формулой.
 
Ответить
СообщениеСпасибо!!
Теперь вопрос как зделать автоматическое обновление данных при перемещение по ячейкам??
Данные не обновляться пока не обновлю ячейку с формулой.

Автор - ghost3085
Дата добавления - 30.05.2013 в 10:19
AlexM Дата: Четверг, 30.05.2013, 11:27 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
В модуль "Эта книга" вставить код
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Calculate
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВ модуль "Эта книга" вставить код
[vba]
Код
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Calculate
End Sub
[/vba]

Автор - AlexM
Дата добавления - 30.05.2013 в 11:27
ghost3085 Дата: Четверг, 30.05.2013, 14:06 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Может я конечно что-то не так зделал, но у меня не срабатывает.
Нужно чтоб обновлялись значения в ячейках автоматом как при обычних вычислениях.
Изначально эта задача для человека который не очень знает компьютер, поэтому вручную обновлять ячейки не очень удобно...


Сообщение отредактировал ghost3085 - Четверг, 30.05.2013, 14:11
 
Ответить
СообщениеМожет я конечно что-то не так зделал, но у меня не срабатывает.
Нужно чтоб обновлялись значения в ячейках автоматом как при обычних вычислениях.
Изначально эта задача для человека который не очень знает компьютер, поэтому вручную обновлять ячейки не очень удобно...

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

Excel 2016
Цитата (ghost3085)
обновлялись значения в ячейках автоматом как при обычних вычислениях

Цитата (ghost3085)
автоматическое обновление данных при перемещение по ячейкам?
Так как надо: при пересчёте листа или при перемещении по ячейкам?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (ghost3085)
обновлялись значения в ячейках автоматом как при обычних вычислениях

Цитата (ghost3085)
автоматическое обновление данных при перемещение по ячейкам?
Так как надо: при пересчёте листа или при перемещении по ячейкам?

Автор - Serge_007
Дата добавления - 30.05.2013 в 14:14
ghost3085 Дата: Пятница, 31.05.2013, 10:49 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Извиняюсь что не корректно выразился.
Нужно автоматическое обновление данных/ссылок (как при обычных формулах)
поменял значение в ячейке - формула пересчитала автоматом...
 
Ответить
СообщениеИзвиняюсь что не корректно выразился.
Нужно автоматическое обновление данных/ссылок (как при обычных формулах)
поменял значение в ячейке - формула пересчитала автоматом...

Автор - ghost3085
Дата добавления - 31.05.2013 в 10:49
Serge_007 Дата: Пятница, 31.05.2013, 10:59 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (ghost3085)
поменял значение в ячейке - формула пересчитала автоматом

Цитата (AlexM)
Чтобы при изменении значений в ячейке, которая является аргументом функции, функция пересчитывалась надо к формуле добавить:
Если формула возвращает число +СЕГОДНЯ()*0, если формула возвращает текст &ЕСЛИ(СЕГОДНЯ()*0;;"")
См.файл.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (ghost3085)
поменял значение в ячейке - формула пересчитала автоматом

Цитата (AlexM)
Чтобы при изменении значений в ячейке, которая является аргументом функции, функция пересчитывалась надо к формуле добавить:
Если формула возвращает число +СЕГОДНЯ()*0, если формула возвращает текст &ЕСЛИ(СЕГОДНЯ()*0;;"")
См.файл.

Автор - Serge_007
Дата добавления - 31.05.2013 в 10:59
AlexM Дата: Пятница, 31.05.2013, 11:14 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Еще раз выкладываю файл. Ссылки автоматически обновляются.
К сообщению приложен файл: 0424769.xls (26.5 Kb)



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

Автор - AlexM
Дата добавления - 31.05.2013 в 11:14
ghost3085 Дата: Понедельник, 03.06.2013, 10:40 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Извиняюсь еще раз!!!
Вот пример моей задачи.
Подскажите что делать с этой проблемой.
Ссылки ссылаются на первый лист (по умолчанию), происходит дублирование, если обновить тогда пересчитует. Где копать?????
также возникает цикличиская ссылка....
Добавил!!!
К сообщению приложен файл: 2044838.xls (97.5 Kb)


Сообщение отредактировал ghost3085 - Понедельник, 03.06.2013, 11:45
 
Ответить
СообщениеИзвиняюсь еще раз!!!
Вот пример моей задачи.
Подскажите что делать с этой проблемой.
Ссылки ссылаются на первый лист (по умолчанию), происходит дублирование, если обновить тогда пересчитует. Где копать?????
также возникает цикличиская ссылка....
Добавил!!!

Автор - ghost3085
Дата добавления - 03.06.2013 в 10:40
AlexM Дата: Понедельник, 03.06.2013, 10:45 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Решение было в сообщении №7
С циклической ссылкой не разобрался. Ошибка появляется только при сохранении файла.
К сообщению приложен файл: 2044838_new.rar (16.5 Kb)



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


Сообщение отредактировал AlexM - Понедельник, 03.06.2013, 12:34
 
Ответить
СообщениеРешение было в сообщении №7
С циклической ссылкой не разобрался. Ошибка появляется только при сохранении файла.

Автор - AlexM
Дата добавления - 03.06.2013 в 10:45
ghost3085 Дата: Понедельник, 03.06.2013, 14:26 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Извиняюсь за мучения!!!!!
Большое спасибо. Все работает!!!!! Всем спасибо.
 
Ответить
СообщениеИзвиняюсь за мучения!!!!!
Большое спасибо. Все работает!!!!! Всем спасибо.

Автор - ghost3085
Дата добавления - 03.06.2013 в 14:26
Сергей Дата: Пятница, 17.01.2014, 10:41 | Сообщение № 16
Группа: Гости
Здраствуйте, у меня была такая же проблема, воспользовался вашим решением - работает, для работы циклической ссылки я включил итеративные вычисления, но при любых изменениях значения в ячейках со ссылкой "prevshit" сбиваются, и появляются несуществующие цифры, видимо это связано с тем, что циклическая может выдать неправильное значение, что она собственно и делает. как решить эту проблему? подскажите пожалуйста
 
Ответить
СообщениеЗдраствуйте, у меня была такая же проблема, воспользовался вашим решением - работает, для работы циклической ссылки я включил итеративные вычисления, но при любых изменениях значения в ячейках со ссылкой "prevshit" сбиваются, и появляются несуществующие цифры, видимо это связано с тем, что циклическая может выдать неправильное значение, что она собственно и делает. как решить эту проблему? подскажите пожалуйста

Автор - Сергей
Дата добавления - 17.01.2014 в 10:41
maeglah Дата: Понедельник, 20.01.2014, 20:47 | Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Бьюсь с той же проблемой, ИМХО циклические ссылки возникают при количестве листов с ссылками на предыдущий более 2 х.
Вот эта вот конструкция ActiveSheet.Index, дает нам индекс текущего листа.
При этом если мы откроем последний лист, который будет в данный момент как раз активным, для всех ячеек содержащих данную формул
он так же станет активным, формула замкнется на себя.
И этого может не случиться если листов будет всего два и первый из них будет содержать только стартовые данные.

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


Сообщение отредактировал maeglah - Понедельник, 20.01.2014, 20:48
 
Ответить
СообщениеБьюсь с той же проблемой, ИМХО циклические ссылки возникают при количестве листов с ссылками на предыдущий более 2 х.
Вот эта вот конструкция ActiveSheet.Index, дает нам индекс текущего листа.
При этом если мы откроем последний лист, который будет в данный момент как раз активным, для всех ячеек содержащих данную формул
он так же станет активным, формула замкнется на себя.
И этого может не случиться если листов будет всего два и первый из них будет содержать только стартовые данные.

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

Автор - maeglah
Дата добавления - 20.01.2014 в 20:47
bygaga Дата: Среда, 28.05.2014, 10:12 | Сообщение № 18
Группа: Пользователи
Ранг: Форумчанин
Сообщений: 101
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003, 2007
Сам искал подобное.
Вот нашел подходящее (для себя) решение:

http://forum.msexcel.ru/index.php?topic=1228.0


Сообщение отредактировал bygaga - Среда, 28.05.2014, 10:12
 
Ответить
СообщениеСам искал подобное.
Вот нашел подходящее (для себя) решение:

http://forum.msexcel.ru/index.php?topic=1228.0

Автор - bygaga
Дата добавления - 28.05.2014 в 10:12
acidlisk Дата: Пятница, 19.09.2014, 10:18 | Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
AlexM, а почему для пересчета функции надо добавлять +СЕГОДНЯ()*0 ?
Потому, что excel в любом случае будет считать функцию СЕГОДНЯ() и заодно все значение ячейки пересчитает, что ли? То есть по факту это костыль?
 
Ответить
СообщениеAlexM, а почему для пересчета функции надо добавлять +СЕГОДНЯ()*0 ?
Потому, что excel в любом случае будет считать функцию СЕГОДНЯ() и заодно все значение ячейки пересчитает, что ли? То есть по факту это костыль?

Автор - acidlisk
Дата добавления - 19.09.2014 в 10:18
Goorito Дата: Четверг, 11.04.2019, 06:52 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Всем добра!

Господа профессионалы, нужна помощь профану)
Решил поднять эту тему.

Вопрос совершенно тот же, при копировании листа нужно использовать в некоторых ячейках данные с предыдущего листа, в частности, необходимо в отчете во вложении прописать такую формулу в ячейках B2 и столбце С листа 7.04Н, чтобы брались данные соответственно B3 и столбца F листа и так продолжая при каждом добавлении листа.

Помогите пожалуйста с формулой...
К сообщению приложен файл: 6300319.xlsx (23.4 Kb)


Сообщение отредактировал Goorito - Четверг, 11.04.2019, 06:53
 
Ответить
СообщениеВсем добра!

Господа профессионалы, нужна помощь профану)
Решил поднять эту тему.

Вопрос совершенно тот же, при копировании листа нужно использовать в некоторых ячейках данные с предыдущего листа, в частности, необходимо в отчете во вложении прописать такую формулу в ячейках B2 и столбце С листа 7.04Н, чтобы брались данные соответственно B3 и столбца F листа и так продолжая при каждом добавлении листа.

Помогите пожалуйста с формулой...

Автор - Goorito
Дата добавления - 11.04.2019 в 06:52
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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