Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Сентябрь 2019, 17:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Нужна помощь. Найти значение на одном листе, вставить найденное в другой лист  (Прочитано 5808 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Стартовое сообщение: 10 Август 2015, 10:40 »

Вот макросом ищу в таблице значения:

sht1 = ThisComponent.Sheets.GetByName("TEMP")
sht2 = ThisComponent.Sheets.GetByName("PLAT")
REG = sht.getCellByPosition(0,0).Value
For i = 1 To 5000
If sht2.getCellByPosition(0,i).Value = REG Then
PLAT = sht2.getCellByPosition(5,i).Value
DAT = sht2.getCellByPosition(6,i).Value
End If
Next

Подскажите как сделать, что бы при нахождении совпадения (REG) вставлять из этой строки значения PLAT и DAT на лист TEMP

* PLAT.ods (17.17 Кб - загружено 7 раз.)
Записан

Сгорая сам, другим свети всегда!
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 10 Август 2015, 11:37 »

Я не совсем понял, что нужно? Собрать все (или не все) записи (строки), в которых в REG равен числу в ячейке А2 на втором листе?

Вообще это задача для фильтра — вы ему даёте критерий, а он возвращает все соответствия.
Записан

ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #2: 10 Август 2015, 11:52 »

В том то и дело, что нужен макрос.
Ввел номер REG на листе TEMP, нажал кнопку, макрос пробежался по таблице PLAT и если REG совпал с заданным в А2 остановился скопировал по этой строке данные из листа PLAT на лист TEMP (дату и сумму платежа), потом дальше побежал и так до конца таблицы PLAT.
Записан

Сгорая сам, другим свети всегда!
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #3: 10 Август 2015, 12:01 »

В том то и дело, что нужен макрос.
А кто против макроса?  Крутой
Ввел номер REG на листе TEMP, нажал кнопку, макрос пробежался по таблице PLAT и если REG совпал с заданным в А2 остановился скопировал по этой строке данные из листа PLAT на лист TEMP (дату и сумму платежа), потом дальше побежал и так до конца таблицы PLAT.
Слишком много беготни.  Смеющийся
В ячейке А2 есть выпадающий список.
Проверяйте:

* PLAT1.ods (20.77 Кб - загружено 29 раз.)
Записан

ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #4: 10 Август 2015, 12:23 »

Улыбка прямо в цель! Оперативно, спасибо!
Записан

Сгорая сам, другим свети всегда!
ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #5: 10 Август 2015, 13:04 »

а можно сделать сортировку по дате?
Записан

Сгорая сам, другим свети всегда!
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #6: 10 Август 2015, 13:12 »

а можно сделать сортировку по дате?
В смысле? Полученные данные сортировать или отобрать только нужную дату?
Записан

ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #7: 10 Август 2015, 13:14 »

сортировать полученные данные.
Записан

Сгорая сам, другим свети всегда!
ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #8: 10 Август 2015, 13:37 »

и еще, можно ли привязать вывод найденного не к номеру листа, а к имени, например выводить результат на "Лист3"
oCellAddress.Sheet=1
Записан

Сгорая сам, другим свети всегда!
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #9: 10 Август 2015, 13:42 »

Чтобы перенести всё это в другой документ нужно:
1. скопировать макрос
2. сделатъ в нужных ячейках выпадающий список (в меню Данные>Проверка...>Разрешить: Диапазон ячеек) см. Проверка
3. щёлкнуть по ярлыку листа(того, в котором ячейка со списком) и в выпадающем меню выбрать События листа..., и назначить макрос событию см. Событие


* Проверка.png (59.92 Кб, 653x469 - просмотрено 16 раз.)

* Событие.png (44.89 Кб, 603x254 - просмотрено 14 раз.)
Записан

rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #10: 10 Август 2015, 13:46 »

и еще, можно ли привязать вывод найденного не к номеру листа, а к имени, например выводить результат на "Лист3"
oCellAddress.Sheet=1
Должен быть номер листа, но если нужно, можно получить номер листа по его имени. Это лишнее усложнение.
Записан

ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #11: 10 Август 2015, 13:52 »

ок, с номером листа можно не заморачиваться и так много сделали/объяснили. Спасибо!
Записан

Сгорая сам, другим свети всегда!
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #12: 10 Август 2015, 14:07 »

а можно сделать сортировку по дате?
Если исходная таблица не "святая корова", то проще всего отсортировать данные в ней, тогда и результат будет отсортированный
Записан

ivamartynov
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Красноярский край, г.Красноярск
Сообщений: 54



« Ответ #13: 10 Август 2015, 14:53 »

Не работает. Переделал так: нажимаю кнопку, ввожу номер он копируется в ячейку и... Тишина не заполняются данные.
Записан

Сгорая сам, другим свети всегда!
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 760


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #14: 10 Август 2015, 15:23 »

Не работает. Переделал так: нажимаю кнопку, ввожу номер он копируется в ячейку и... Тишина не заполняются данные.
Вы что-то делаете не так. Если вы перенесли "всё" в новый документ, то скорей всего не всё. В макросе есть три диапазона (они выделены красным), проверьте что они "соответствуют действительности". Во второй строке макроса адрес изменяемой ячейки должен быть точный. Если не получится, напишите мне адрес листа и ячейки.
Записан

Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!