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

Страницы: 1 2 След.
перенос строки если какая либо из ячеек залита цветом
 
Hugo, спасибо ))) до листов дошло уже
перенос строки если какая либо из ячеек залита цветом
 
Hugo, спасибо, а можно не в другую книгу, а на другой лист или хотя бы статичные имена? Если можно с шапкой, но и так если что огромное спасибо...



Решено имя книги/листа (или номер без ковычек)
u.Copy Workbooks("!PON.xlsb").Sheets("Лист10").Cells(1)
Изменено: Blazhenniy - 01.03.2018 14:45:56
перенос строки если какая либо из ячеек залита цветом
 
Пытливый, а как ?
перенос строки если какая либо из ячеек залита цветом
 
Всем добра.
Поиском не нашел. Можно ли средствами макросов перенести всю строку на другой лист, если в определенном  столбце(столбцах) ячейка залита цветом.

пример пустой, данные могут быть где угодно, в т.ч пустые ячейки могут быть везде кроме столбца А

Если надо подправить пример, скажите что
Изменено: Blazhenniy - 01.03.2018 13:12:31
Как удалить не удаляемые связи (старые) с несуществующими книгами
 
ни один из способов не помог кроме  
сохраняете файл как... тип файла: xlsb
открыв файл архиватором - удалить папку xl / externalLinks
закрываем, открываем, на все отвечаем да и т.п
Изменено: Blazhenniy - 27.02.2018 11:21:31
Подстановка значений макросом из формулы
 
Irregular Expression, создал макрос который выделяет нужные ячейки и применяю UCase перед функцией, однако очень долго... вообще может есть какой то макрос который всю книгу приводит в один регистр но быстро?

понял что функция сравнивает только точные значения, т.е. чуствительна к регистру.
Подстановка значений макросом из формулы
 
А можно как то в моем коде
Код
Public Function GetARM2(ByRef base As Excel.Range, ByVal city As String, ByVal street As String, ByVal house As String, ByVal house2 As String) As String
    Dim arr As Variant: arr = base.Value2
    Dim j As Long
    For i = 1 To UBound(arr, 1)
        If city Like CStr(arr(i, 1)) _
        And street Like CStr(arr(i, 2)) _
       And house Like CStr(arr(i, 3)) _
       And house2 Like CStr(arr(i, 4)) Then
           j = i
           Exit For
        ElseIf i = UBound(arr, 1) Then
           j = 0
        End If
    Next
    If j > 0 Then
       GetARM2 = arr(i, 6)
    Else
       GetARM2 = "нет такого"
    End If
End Function
исправить что бы при сравнении листа1 ячейки G с листом 2 ячейкой D не учитывался регистр
т.е. там идет корпус дома и может быть и цифрой и буквой и словом, и вот когда текст а не цифра, не учитывался бы регистр.
Подстановка значений макросом из формулы
 
Irregular Expression, теперь на пропуски не реагирует

СПАСИБО функция работает можно ваять алгоритм дальше)))

подправил в предыдущем сообщении вариант с точным значением.

С макросами думаю будет намного сложнее, но к подсказкам готов...


Изменено: Blazhenniy - 16.01.2018 16:14:39
Подстановка значений макросом из формулы
 
=GetARM(Лист2!A$3:G$15044;D1;E1;F1)
Код
Public Function GetARM(ByRef base As Excel.Range, ByVal city As String, ByVal street As String, ByVal house As Double) As String
    Dim arr As Variant: arr = base.Value2
    Dim j As Long
    For i = 1 To UBound(arr, 1)
        If city Like CStr(arr(i, 1)) _
        And street Like CStr(arr(i, 2)) _
        And Fix(house) >= CDbl(Trim(arr(i, 3))) _
        And Fix(house) <= CDbl(Trim(arr(i, 4))) Then
           j = i
           Exit For
        ElseIf i = UBound(arr, 1) Then
           j = 0
        End If
    Next
    If j > 0 Then
       GetARM = arr(i, 6)
    Else
       GetARM = "нет такого"
    End If
End Function
я так понимаю что данным способом(через функцию) можно подставлять и точные значения что не так в моем коде?            решено  в столбец C1 формула =GetARM2(Лист2!A$3:G$15044;D1;E1;F1;G1)  функцию в модуль, на лист 2 базу
Код
Public Function GetARM2(ByRef base As Excel.Range, ByVal city As String, ByVal street As String, ByVal house As String, ByVal house2 As String) As String
    Dim arr As Variant: arr = base.Value2
    Dim j As Long
    For i = 1 To UBound(arr, 1)
        If city Like CStr(arr(i, 1)) _
        And street Like CStr(arr(i, 2)) _
       And house Like CStr(arr(i, 3)) _
       And house2 Like CStr(arr(i, 4)) Then
           j = i
           Exit For
        ElseIf i = UBound(arr, 1) Then
           j = 0
        End If
    Next
    If j > 0 Then
       GetARM2 = arr(i, 6)
    Else
       GetARM2 = "нет такого"
    End If
End Function

Изменено: Blazhenniy - 16.01.2018 16:16:11
Подстановка значений макросом из формулы
 
Irregular Expression написал:
Цитата
Так диапазон базы данных абсолютной ссылкой задайте. У меня всё работает, хотя код довольно сырой и слишком привязан к логике конкретной таблицы.
Работает, только на листе с базой от и до пустых быть недолжно, иначе дальше не считает(не учитывает базу ниже пустых строк)
Цитата
Irregular Expression написал:
Заменить > на >= и < на <=.
Тут так и думал, но т.к. второй вариант вы считаете более быстрым воюю с ним.
Цитата
Irregular Expression написал:
Ещё быстрее можно сделать, если использовать макрос без функций. А если уж присобачить, например, алгоритм бинарного поиска, то вообще можно за секунду-две все Ваши 15000 строк пересчитать и секунд за 20 выгрузить в ячейки.
Буду пробыовать, вникать, но страшно становится )))

Спасибо за науку.
Подстановка значений макросом из формулы
 
Irregular Expression, спасибо.
-пример 4 работает,но в форулах надо учитывать, что строго больше или меньше и если интервал от 1 до 50, то 1 и 50 формула выдаст нет локации
-пример 3 (функция) отрабатывает 1е совпадение, второе пишет знач.

Вопрос был в другом, Может как то можно прогнать столбец формулой допустим в ячейцу по порядку вставляется формула (с учетом сдвига на строку вниз),которая делает расчет и записывается значение,переход к следующей ячейке, тем самым формул в файле немного, они не грузят больше файл и комп, т.к. дальше работаешь с текстом.  или это глупости, данный макрос будет долгим или не решаемо?
Макрос сравнение по нескольким параметрам и зпливка цветом
 
skais675,так можно, но может можно еще как? Быстрее ,проще, изощьренней.....
Подстановка значений макросом из формулы
 
Irregular Expression,
1) нет, формула не принципиальна, просто по другому неумею. Авто вычисление отключено коммп выдает ошибку при вставке формулы нет ресурсов,непосчитано. Легко сказать проведите все операции макросом в масиве, я VBA в институтах не проходил, сложна очень...

2) СУММПРОИЗВ(). посчитает сколько таких адресов, но никак не поможет их разбить по категориям. Данной формулой я потом подчитываю по получившимся локациям суммы параметров.
Макрос сравнение по нескольким параметрам и зпливка цветом
 
Есть список адресов каждый параметр в отдельном столбце адрес/улица/дом/корпус/квартира/что нибудь еще....Требуется залить дубликаты адресов цветом, условное форматирование не подходит, т.к. все повтаряется в своем столбике по несколько раз, в итоге почти все залито цветом, можно сцепить, сверить закрасить и удалить лишний столбец но строк многои уйдет на это много времени, может можно сделать проще?
Подстановка значений макросом из формулы
 
Есть формула подставляет значение при выполнении ряда условий, в моем случае использую для определения попадания адреса в определенный район. Т.Е. на листе есть столбцы CDEFG
Наименование локации/Город/Адрес/№ Дома/Корпус
на листе инвест ABCD E F
Город/улица/от/ до/ пусто/Намиенование   локации
Код
=ЕСЛИ(ПОИСКПОЗ(F6;ИНДЕКС(инвест!$C:$C;ПОИСКПОЗ(2;МУМНОЖ(Ч(D6:E6=инвест!$A:$B);{1:1});0)):ИНДЕКС(инвест!$D:$D;ПОИСКПОЗ(2;МУМНОЖ(Ч(D6:E6=инвест!$A:$B);{1:1});0)))=1;ИНДЕКС(инвест!$F:$F;ПОИСКПОЗ(2;МУМНОЖ(Ч(D6:E6=инвест!$A:$B);{1:1});0));"такого адреса нет")

Т.е. на листе пишем город Кукуево,адрес-Ленина,№ дома - 100
формула напишет центр(при условии что на листе инвест -  Город,улица совпадет , а № дома будет в диапазоне цифр от-до  наименование локации-центр)

таблица от 1000 до 15000 тыс строк. Уже при 10 формулах машина виснет.


есть вставка ее ввиде макроса
Код
ActiveCell.FormulaR1C1 = _         "=IF(MATCH(RC[3],INDEX(инвест!C3,MATCH(2,MMULT(N(RC[1]:RC[2]=инвест!C1:C2),{1;1}),0)):INDEX(инвест!C4,MATCH(2,MMULT(N(RC[1]:RC[2]=инвест!C1:C2),{1;1}),0)))=1,INDEX(инвест!C6,MATCH(2,MMULT(N(RC[1]:RC[2]=инвест!C1:C2),{1;1}),0)),""такого адреса нет"")"  

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

лист 2 естественно будет дополнятся
Изменено: Blazhenniy - 15.01.2018 15:41:55
Сравнение по двум столбцам и перенос
 
SAS888,
Нет. Вы все правильно пишите, но в моем случае в столбце А эксклюзивный номер и сравнивать достаточно по нему.Т.е.допустим лист 2 13500 строк, а лист 1 одна строка, тогда возможно 2 варианта.
1 Если такого эксклюзивного номера на листе 2 в столбце А , нет просто переносим данные, Итого на листе 2 было 13500 строк, стало 13501 строка
2 Если такой номер есть, то данные с 1 листа появляются на 2м (они могут и не поменяться, но тот файл свежее и нет смысла делать новые проверки, полностью, не полностью, достаточно номера, если он есть то заменяем строку с листа 1 на лист 2 и не паримся ) Итого, было 13500 строк , и 13500 строк осталось, но при совпадении данные обновились.
Изменено: Blazhenniy - 15.01.2018 14:35:19
Сравнение по двум столбцам и перенос
 
SAS888, в существующей таблице уже 13500 строк, и она каждую неделю растет строк на 150-300 ( т.е. если добавляем 300 из них 150 новые которых ранее небыло, 150 старые которые в этой таблице уже были, но с новыми нначениями)
в той из которой берем новые данные изначально около 5000 строк, но методом хитрых махинаций снижаю условно до 500-2000 строк.

по поводу дублей всегда один дубль, если  на листе 1 значение в столбце А совпадает со значением в столбце А на втором листе, то он есть, если там новое значение(отсутствующее на листе 2, то дубля нет.   При наличии одмнаковых заголовков все ок.
Изменено: Blazhenniy - 15.01.2018 13:06:59
Сравнение по двум столбцам и перенос
 
SAS888,спасибо почти, но дублирует  на листе 2 в низу таблицы строку 2 со старыми значениями, на большой таблице задублировало в середине на 538 строке.


По поводу окраски, было бы неплохо выделять те которые были, хотя как специалист скажите какой макрос будет работать быстрее быстрее скрыть, удалить или окрасить?

Как я понял макрос добавляет новые строки в начало таблицы и первую заявку которая совпала дублирует оставляя и старую и новую с другими значениями.

Я правильно понимаю, он сравнивает по значению лист 1 и лист 2 в столбце A, если есть совпадение то перенос с заменой, если совпадений нет , просто перенос, те значения которые были в таблице на странице 2, но небыло совпадений макрос нетрогает?
Изменено: Blazhenniy - 16.01.2018 16:19:30
Сравнение по двум столбцам и перенос
 
SAS888, В ручную долго, и как узнать/указать какой дубликат нужнее? Точнее , стандартными средствами эксэль оставляет тот который находит первым, тогда надо как то вставлять наоботот, те что есть а потом те что были ранее, а комп при копировании таких объемов плачет((.

Спасибо, подумаю и в этом направлении.

Мне казалось будет проще, но исключить руки не получается.

Задача вроде простая, чего небыло добавилось в таблицу, а что было обновляет данные. Но все эти програмы и надстройки громоздки, а машины и люди сдесь простые, им надо открой два файла одновременно и на листе таком то нажми кнопку 1, потом, 2 , потом, 3, получившееся сохрани. Иначе делов не будет.  
Сравнение по двум столбцам и перенос
 
Я так понимаю тему можно закрывать, кроме негатива тут ничего не увидишь. Более того, создавал тему в курилке с реально простым описанием готовых блоков собираешь нужный макрос из рабочих кусков кода..., ее  в этот же день удалили, типа людям это не надо.
Сравнение по двум столбцам и перенос
 
vikttur, тема другая, дуплета учетки в данном случае нет,придирки пусты, цитаты использованы уместно. Просто бытует мнение что задача для местных гуру сильно сложная ...но конечно я тупой или плати (что ближе к истине, но не в моем случае, я на этом не зарабатываю, а хочу облегчить труд нескольким людям), если чей то макрос неработает значит ты что то не так сделал, если неугодное сказал-бан. Может конечно я объясняю плохо, но куда уж точне/понятнее описать пример, чем он описан тут , вряд ли стоит.
Сравнение по двум столбцам и перенос
 
Цитата
Z написал:
OFF Заметки по поводу...
Blazhenniy , который ранее был  KnyazKoldunVasilii , полгода назад уже оглашал свою "хочуху".
Познавательная и поучительная динамика обсуждения в этой теме -  http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=94790&...
не начинайте)) решение так и не найдено. Я подучился))) пример подобрал получше
Цитата
Bema написал:
Если на Листе 3 хотите получить результат, почему формулу вставляете на Лист 1?
лист 3 для понимания был, видимо он и запутал.
Данные то должны перекачивать с листа 1 в лист 2
Сравнение по двум столбцам и перенос
 
че то нито или одно из 2х
вставляю на лист 1 в ячейку а 6? Что это дает?

структуру простого впр я знаю но тут
исходное значение берет с одной ячейки, а надо проанализировать 2 столбца
диапазон сверки тут вся таблица, а сверяем только столбцы а
столбец() мне непонятен

видимо формула сверяет все данные и если на листе 1 и на листе 2 строки совпадают полностью то номер, если не совпадает н/д правильно? тоже нет
Изменено: Blazhenniy - 13.01.2018 21:54:36
Сравнение по двум столбцам и перенос
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

вставил в пример везде ноль
впр по 10000 строк повесит комп(((
и не автоматизирует  можно в  вставить впр в простой в лист1 провприть и чего нет(н/д) перенести на лист 2, но это не выход
Изменено: Blazhenniy - 13.01.2018 21:54:08
Сравнение по двум столбцам и перенос
 
Цитата
Z написал:
Однако
однако непонятно в чем выпад.
удалить(скрыть/пометить)  для этого и написано, что бы был вариант выбора, мне надо удалить, но если скрыть или подкрасить тоже устроит, знаю как с этим бороться дальше.
Желательно, это что бы я потом мог править под себя не дергая лишними вопросами...

итого "требуется сравнить ...перенести"  остальное описаание и надстройки
Сравнение по двум столбцам и перенос
 
Накидал
листь1 и лист 2 рабочие
лист 3 что должно получиться(неучавствует, так для понимания,считайте что в примере его нет)
данные на листе 1 и листе 2 при одинаковых номерах в столбце А могут быть разными
Изменено: Blazhenniy - 13.01.2018 21:53:40
Сравнение по двум столбцам и перенос
 
Добрый день. Знаю, что тема распространенная, но не смог((

Есть две идентичные таблицы на разных листах
в столбце А у каждой индивидуальный номер из кучи цифр в столбцах BCD прочая информация

требуется сравнить одну с другой и если во второй отсутствует такой номер , то из первой, перенести всю строку во вторую, соответственно перенесенные в первой таблице удалить(скрыть/пометить)
P/S/ И желательно что бы можно было имена листов указывать в макросе

Заранее спасибо
Обновление содержимого таблицы из другой такой же таблицы
 
Sanja, да как так то... попытка номер 2
Обновление содержимого таблицы из другой такой же таблицы
 
vikttur,а тут один вопрос

Sanja, нет, а что то не так с примером? Как надо?  
Изменено: KnyazKoldunVasilii - 15.08.2017 16:33:23
Обновление содержимого таблицы из другой такой же таблицы
 
Sanja, тю, да я с уверенностью что в 4м сообщении он есть
Страницы: 1 2 След.
Наверх