Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Автоматическая нумерация строк, устойчивая к сортировке
 
Уважаемые господа!  
Я ищу решение не для конкретной задачи, а обощенное. Такое, которое потом можно перенести в надстройку и оно будет работать везде.  
Поэтому код, котором зашиты имена листов, адреса диапазонов и другие привязки (исключая те, которые станут несложным правилом, например название identity столбца таблицы должно быть id) не подходит.  
Спасибо!
Автоматическая нумерация строк, устойчивая к сортировке
 
{quote}{login=слэн}{date=01.06.2010 10:02}{thema=}{post}почему теряется? если это не формула, а константа, то никак она потеряться не может, сортировка переставляет целые строки таблицы, если вы не зададите другое поведение..{/post}{/quote}  
 
Константа раздается макросом, о проблеме макроса читайте мой предыдущий ответ.
Автоматическая нумерация строк, устойчивая к сортировке
 
{quote}{login=R Dmitry}{date=01.06.2010 12:33}{thema=Re: Re: Автоматическая нумерация строк, устойчивая к сортировке}{post}Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, [B:B]) Is Nothing _
      Then  
      Dim ilastrow As Long  
   With Sheets("Лист1")  
       ilastrow = .Cells(Rows.Count, 2).End(xlUp).Row  
       .Cells(ilastrow, 1) = Val(.Cells(ilastrow - 1, 1)) + 1  
       End With  
      End If  
End Sub  
в Лист1, id первый столбец, событие во втором{/post}{/quote}  
 
Макрос - это, конечно, хорошо. Делал макрос, работавщий на уровне всей книги и обслуживавший в ней все таблицы, в которых встречается столбец с определенным именем ("#"). НО!  
 
Когда макрос записывает значение ячейки, undo history обнуляется. Что неприемлемо для пользователя. Представьте, пользователь вводит данные, используя TAB, и каждый раз, когда создается новая строка и срабатывает макрос, отмена последних действий становится невозможна. :(  
 
Еще пробовал написать макрофункцию, которая использует CustomProperties листа, добавляя в них новое свойство (аналогично базам данных). При каждом обращении к ней эта функция увеличивает значение такого свойства на 1 и возвращает его. Работает. НО!  
 
При добавлении новой строки excel пересчитывает все формулы столбца с этой функцией и получается, что айдишники каждый раз раздаются заново. :(((
Автоматическая нумерация строк, устойчивая к сортировке
 
{quote}{login=R Dmitry}{date=01.06.2010 12:36}{thema=1}{post}бд начинается с первой строки.  
нет файла нет точного решения{/post}{/quote}  
Да дело-то не в конкретном файле. Часто встречается задачи, когда приходится использовать айдишники для имитации select запросов. Типа вот такая формула:  
"=VLOOKUP(MAX((condition1)*(condition2)*id),range,column,true)". Она позволяет произвести поиск одной записи в таблице по определенным критериям и получить ее id, затем получить содержимое другого столбца той же таблицы по этому id.    
Подобный подход я использую во многих книгах excel 2007 совместно с таблицами.  
Но! Приходится для таких таблиц выключать автофильтр, ибо при сортировке связь между записью и айдишником теряется.
Автоматическая нумерация строк, устойчивая к сортировке
 
Всем привет.  
Нужны идеи о том, как в excel создать identity столбец. То есть столбец, автоматически заполняемый последовательными номерами записей.  
Решения типа "=R[-1]+1" и "=СТРОКА()-1" не подходят из-за того, что при сортировке данных номера, создаваемые этими формулами, остаются как были и перестают соответствовать своим записям.
Спасибо!
Страницы: 1
Loading...