Страницы: 1 2 След.
RSS
Таблица-список над основной таблицей. Как найти последнюю строку вспомогательной таблицы?
 
В прилагаемом файле пример-описание проблемы. Есть идеи какие-нибудь? Не поделитесь?
Изменено: Домкрат - 10.01.2020 13:59:59
 
Домкрат, если данные всегда начинаются  с D6 - то массивная,
Код
=МИН(ЕСЛИ(D6:D9999="";СТРОКА($D$6:$D$9999)))-1

УПССС..не дочитал про VBA...,  а между первой таблице и второй всегда будут две пустые строки?!

https://www.excel-vba.ru/chto-umeet-excel/kak-opredelit-pervuyu-zapolnennuyu-yachejku-na-liste/

Изменено: Mershik - 10.01.2020 10:24:18
Не бойтесь совершенства. Вам его не достичь.
 
Mershik,
Цитата
Mershik написал:
а между первой таблице и второй всегда будут две пустые строки?
да, так и будет,  а поповоду определения "КАК ОПРЕДЕЛИТЬ ПЕРВУЮ ЗАПОЛНЕННУЮ ЯЧЕЙКУ НА ЛИСТЕ?" - я в курсе.
 
Код
lr = Cells(21, "B").End(xlUp).Row
Изменено: skais675 - 10.01.2020 10:49:25
 
Посмотрите ЗДЕСЬ
 
Цитата
Домкрат написал:  я в курсе.
ну раз в курсе почему по 1 столбцу не опредделили начало шапки второй табилце и не отняли 3 строки что бы получить нужное Вам значение?
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
skais675 написал:
s = Cells(20, "B").End(xlUp).Row
Коллега, а что если строк будет
Цитата
Сейчас их 14, но может быть и 2 и 20...
С какой начнёте вместо константной?
Можно так
Код
?Range("D6").CurrentRegion.Rows.Count + Range("D6").CurrentRegion.Row - 1
 
Цитата
Mershik написал:
ну раз в курсе почему по 1 столбцу не опредделили начало шапки второй табилце и не отняли 3 строки что бы получить нужное Вам значение?[/USER]
по первой строке был в курсе. сейчас вы подсказали тему, теперь буду думать на вашей подсказкой. может подскажете подробнее, а то мне на неделю примерно буду решать тему.
Изменено: Домкрат - 10.01.2020 10:45:33
 
Андрей VG Немного не понял
Цитата
С какой начнёте вместо константной?
Какая разница, я же указываю последнюю возможную и иду вверх и нахожу последнюю, хоть 14 хоть 2.
Изменено: skais675 - 10.01.2020 10:42:55
 
Цитата
msi2102 написал:
Посмотрите  ЗДЕСЬ
я там видел уже.
 
Цитата
skais675 написал:
я же указываю последнюю возможную и иду вверх и нахожу последнюю, хоть 14 хоть 2.
Сейчас 14 и последняя 19. По условию в файле
Цитата
Сейчас их 14, но может быть и 2 и 20...
Следовательно 19 + (20 - 14) = 25 (столбец С заполнен по 25 строку в номерах строк рабочего листа). Тогда ваш код какую строку укажет?
Хе, хе. Особенно учитывая вот это примечание в файле к столбцу B :)
Цитата
здесь я для удопства пронумеровал, в реале такого не будет.
Изменено: Андрей VG - 10.01.2020 10:47:51
 
Андрей VG, проверяйте
Изменено: skais675 - 10.01.2020 10:49:14
 
Цитата
skais675 написал:
Какая разница, я же указываю последнюю возможную и иду вверх и нахожу последнюю, хоть 14 хоть 2.
вот такая разница:
 
Цитата
skais675 написал:
проверяйте.
А что проверять, если у вас не заполнено хотя бы 18 строк вспомогательной таблицы?!
 
Домкрат , если вторая таблица имеет свойство начинаться с разных строк, тогда нужно доработать. Это так?
Андрей VG Вы имеете ввиду верхнюю таблицу, ну так заполняйте и смотрите, что не так?
Понял, ща доработаем.
Код
rw=Cells(1, "A").End(xlDown).Row - 3
Изменено: skais675 - 10.01.2020 10:56:43
 
по столбцу А : там будет инфа, я в примере удалил там.
я может по-другому столбцу попробую позжее посмотреть, так то вроде нормально возвращает.
Изменено: Домкрат - 10.01.2020 13:52:34
 
Домкрат,
Цитата
Домкрат написал:
по столбцу А : там будет инф
ну попробуйте по Find найти шапку таблицу по названию столбца например КОД ТН... он же повторятся не будет)
Не бойтесь совершенства. Вам его не достичь.
 
та, щас работу дали,- я пожее уже буду смотреть, все равно подсказки помогли сильно, спасибо.
 
Домкрат, http://www.codernotes.ru/articles/vba/poisk-na-liste-excel.html
Скрытый текст
Изменено: Mershik - 10.01.2020 11:12:22
Не бойтесь совершенства. Вам его не достичь.
 
Домкрат, тут не то, там не то, выложите сразу реальную структуру, а то угадалки и догонялки получаются.
Код
rw=Columns(2).Find("Код PLU").Row - 3
 
skais675, а людям не понятен пункт правил
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.
Изменено: Mershik - 10.01.2020 11:14:40
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, Я ИСПРАВЛЮС!
 
Я ИСПРАВЛЮС!

skais675, Mershik, спасибо за помощь, все чётко, и самое главное, что пока не показали,- понятия не имел, насколько всё просто.
Код
Sub Button4_Click()
 f = Columns(4).Find("Код ТН ВЭД").Row - 3
r = Columns(4).Column 
Cells(f, r).Select
End Sub 
всё, теперь я спокоен: знаю где последняя ячейка во вспомогательной таблице есть и как её искать
Изменено: Домкрат - 10.01.2020 13:53:15
 
а существует ли решение БЕЗ основной таблицы 8) ? сейчас же мы отталкиваемся от неё(ищем начало) и выходим уже после на вспомогательную.  
 
Цитата
Домкрат написал:
а существует ли решение БЕЗ основной таблицы
А чем вас
Цитата
Андрей VG написал:
?Range("D6").CurrentRegion.Rows.Count + Range("D6").CurrentRegion.Row - 1
не устроило?
 
А почему никто не предложил вариант с умной таблицей или именованным диапазоном (например, для шапки нижней таблицы)? Тогда сразу всё будет понятно + динамически обновляться?

В примере в оранжевой ячейке показывается строка начала второй таблицы. Первая = начало второй - 3.
Через VBA range("Шапка").Row
Изменено: Wiss - 10.01.2020 13:55:25
Я не волшебник, я только учусь.
 
Цитата
Wiss написал:
А почему никто не предложил вариант с умной таблицей или именованным диапазоном
Ну, зачем же мешать человеку изобретать собственный велосипед?  :D
 
Ну накидали же кучу вариантов, а этот вроде бы самый простой и интуитивно понятный. Просто может быть я о нём чего-то не знаю и "есть нюансы".
Я не волшебник, я только учусь.
 
Цитата
Андрей VG написал:
?Range("D6").CurrentRegion.Rows.Count + Range("D6").CurrentRegion.Row - 1
а как его запустить, назначить переменной?
 
Цитата
Wiss написал:
в оранжевой ячейке показывается строка начала второй таблицы
она меняется.
Страницы: 1 2 След.
Наверх