Страницы: 1
RSS
Автоматическая нумерация ячеек на всех листах книги
 
Помогите пожалуйста!  
Суть вот в чем: на листе в зависимости от того, что введено в ячейке столбца "С" автоматически проставляется номер в соседней ячейке столбца "В". То есть происходит автоматическая нумерация ячеек.    
Для этого использую формулу =ЕСЛИ(ЕПУСТО(C5);"";СЧЁТЗ($C$5:C5))  
 
Но мне надо сделать так, чтобы автоматическая нумерация происходила не только на одной странице (листе) данной книге, а на всех имеющихся листах. Например ввел на листе1 в ячейке значение и автоматом там проставился номер, затем ввел значение на втором листе и там должен проставиться автоматом следующий номер.  
Как это можно реализовать?
 
Не очень понятно что Вы хотите. На первом листе у Вас допустим 3 заполоненных, что должно быть на втором? Если продолжение то формула =ЕСЛИ(ЕПУСТО(C5);"";СЧЁТЗ($C$5:C5)+СЧЁТЗ(Лист1!C5:C17)). если что то другое более подробно опишите.
 
Я правильно понял, что после того, как мы ввели 4 значения на первом листе,  
и на втором листе вводим первое значение, ему присваивается номер 5 (нумерация сохраняется даже после закрытия и последующего открытия книги - к примеру, завтра вы откроете книгу, введёте новое значение - и оно получит номер 6)?  
 
1) Тут надо использовать макросы - формулами вряд ли получится обойтись.  
макросами решение устроит?  
 
2) Нужно видеть ваш оригинальный файл - есть сомнения, что вы сможете адаптировать макрос под свой файл (ваш пример не содержит заголовков, так что о структуре реальных данных можно только догадываться)
 
EducatedFool, вы совершенно правильно поняли меня =)  
Снизу приложил файлик. Документ задуман как создание библиотеки.  
Вопрос мой относится к ячейке "Порядковый номер". Данный столбец с ячейками присутствует на двух страницах "Автор книги 1" и "Автор книги 2".
 
{quote}{login=The_Prist}{date=24.07.2011 10:24}{thema=}{post}Без макросов вижу реализацию как-то так(см.вложение).{/post}{/quote}  
 
Не то немного =) получиться должно таким образом, как я указал во вложенном файлике.  
Например ввел №1, в соседней ячейке должно автоматом проставиться 1, на другом листе ввел №2 - соответстсвенно - 2, перешел снова на первый лист поставил №3 - в результате 3.
 
Если я правильно понял то формула такая  
=ЕСЛИ(C11<>"";ЕСЛИ(МАКС('книги автора 2'!$B$4:B55)>'книги автора 1'!B10;МАКС('книги автора 2'!$B$4:B55)+1;'книги автора 1'!B10+1);"")  
но нужен еще и макрос на обоих листах который при переходе с листа на лист удалял бы формулы из заполненных ячеек в столбце "В". В макросах не силен может кто другой напишет. Без макроса будет циклическая ссылка.  
Или сразу все макросом.
 
к сожалению это не то =(
 
Ага, макрос нужен...  
 
http://forum.msexcel.ru/microsoft_excel/avtomaticheskaya_numeratsiya_yacheek_na_v­seh_listah_knigi-t6056.0.html  
 
http://www.programmersforum.ru/showthread.php?t=161506
 
это и я понял =) но как его написать? слишком замудренный макрос не нужен
 
{quote}{login=Medvedoc}{date=25.07.2011 01:50}{thema=}{post}это и я понял =) но как его написать? слишком замудренный макрос не нужен{/post}{/quote}  
 
ну вот, если ничего не напутал
 
пропустил - формулы из столбца В надо убрать, а то они мешают
 
ТО что нужно =) молодец!  
 
Работает на 100%  
Единственное - не понял как его подключить в своем документе. Просто у меня страниц будет гораздо больше, чем два листа
 
{quote}{login=Medvedoc}{date=25.07.2011 02:52}{thema=}{post}ТО что нужно =) молодец!  
 
Работает на 100%  
Единственное - не понял как его подключить в своем документе. Просто у меня страниц будет гораздо больше, чем два листа{/post}{/quote}  
 
единственный минус - нумерация после цифры 11 начинает скакать через одну цифру.  
то есть 11 13 15 17 и т.д.
 
нумирация начинает скакать из-за формул в столбце В - просто их удалить и все будет корректно  
 
 
про подключить - скопировать код из модуля ЭтаКнига в нужный файл. Будут просматриваться все листы, которые начинаются со слова "книги".  
 
PS. в оригинальном файле был код в модулях листов - он не нужен, т.к. я включил его в свой код
 
Отлично! =) прекрасно работает. Просто сразу формулы не увидел =)
 
{quote}{login=Medvedoc}{date=25.07.2011 03:13}{thema=}{post}Отлично! =) прекрасно работает. Просто сразу формулы не увидел =){/post}{/quote}  
 
я тоже:)
 
написали же удали формулы в столбце В.  
Проверил без формул работает нормально.
 
У меня еще пару вопросов имеется =)  
 
1 вопрос - каким образом сделать заставку при запуске документа?  
2 вопрос - как организовать поиск по книге? ( то есть на титульном листе имеется поле для ввода искомого слова или набора слов и кнопка поиск. Найденные результаты должны выводиться в отдельной ячейке или организована гипрессылка для автоматического перехода на искомый лист с этим словом.
 
и по старому вопросу - как мне сделать фиксированную ширину столбца "С"?
 
{quote}{login=Medvedoc}{date=25.07.2011 03:31}{thema=}{post}и по старому вопросу - как мне сделать фиксированную ширину столбца "С"?{/post}{/quote}  
 
убрать из макроса строки cc.EntireColumn.AutoFit
 
{quote}{login=}{date=25.07.2011 03:33}{thema=Re: }{post}{quote}{login=Medvedoc}{date=25.07.2011 03:31}{thema=}{post}и по старому вопросу - как мне сделать фиксированную ширину столбца "С"?{/post}{/quote}  
 
убрать из макроса строки cc.EntireColumn.AutoFit{/post}{/quote}  
 
Ага, помогло =) Благодарствую. Откуда у вас такой талант по программированию?
 
а на оставшиеся два вопроса не ответите?
 
Появился вопросик =)  
 
вот макрос, который был в моем файлике  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
Dim cc As Range  
Application.ScreenUpdating = False  
Application.EnableEvents = False  
 
For Each cc In Target  
If Not Intersect(cc, Range("A2:A5000")) Is Nothing Then  
With cc(1, 3)  
.Value = IIf(Trim(cc) = "", "", Now)  
.EntireColumn.AutoFit  
End With  
End If  
Next  
 
Application.EnableEvents = True  
Application.ScreenUpdating = True  
 
End Sub  
=================================================  
 
Вот в этой строчке With cc(1, 2) указывалось место вывода даты на листе, как сделать данное в вашем новом файлике с кодом?
 
cc.Offset(0, 1) = Now
 
{quote}{login=}{date=25.07.2011 04:17}{thema=}{post}cc.Offset(0, 1) = Now{/post}{/quote}  
 
а куда эту строчку вставить в новом коде?
 
{quote}{login=Medvedoc}{date=25.07.2011 04:31}{thema=Re: }{post}{quote}{login=}{date=25.07.2011 04:17}{thema=}{post}cc.Offset(0, 1) = Now{/post}{/quote}  
 
а куда эту строчку вставить в новом коде?{/post}{/quote}  
 
так она там есть
 
Sorry =) сглупил    
Нашел строчку, спасибо огромное!!!!!!!!!!!!!!!!!!!!
 
{quote}{login=Medvedoc}{date=25.07.2011 03:21}{thema=Поиск слова по листам всей книги}{post}У меня еще пару вопросов имеется =)  
 
1 вопрос - каким образом сделать заставку при запуске документа?  
2 вопрос - как организовать поиск по книге? ( то есть на титульном листе имеется поле для ввода искомого слова или набора слов и кнопка поиск. Найденные результаты должны выводиться в отдельной ячейке или организована гипрессылка для автоматического перехода на искомый лист с этим словом.{/post}{/quote}  
 
выдержка из правил форума:  
4. Придерживайтесь правила "Один вопрос - одна тема".
 
{quote}{login=webley}{date=25.07.2011 05:01}{thema=Re: Поиск слова по листам всей книги}{post}{quote}{login=Medvedoc}{date=25.07.2011 03:21}{thema=Поиск слова по листам всей книги}{post}У меня еще пару вопросов имеется =)  
 
1 вопрос - каким образом сделать заставку при запуске документа?  
2 вопрос - как организовать поиск по книге? ( то есть на титульном листе имеется поле для ввода искомого слова или набора слов и кнопка поиск. Найденные результаты должны выводиться в отдельной ячейке или организована гипрессылка для автоматического перехода на искомый лист с этим словом.{/post}{/quote}  
 
выдержка из правил форума:  
4. Придерживайтесь правила "Один вопрос - одна тема".{/post}{/quote}  
 
уже понял =) тему новую создал
Страницы: 1
Читают тему
Наверх