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

Страницы: 1 2 След.
Преобразование значения ссылки в текст, Не могу преобразовать в тектс
 
Sanja, спасибо! Так просто и я не знал)
Спасибо ребят!  Z, Dyroff, Казанский,
Преобразование значения ссылки в текст, Не могу преобразовать в тектс
 
Dyroff, подскажите пожалуйста, как можно вставить именно значение?
Изменено: ILUHA - 18.12.2017 14:19:59
Преобразование значения ссылки в текст, Не могу преобразовать в тектс
 
В ячейке D1 и Е1 ссылки на файл, которого у меня нет. Но мне нужно ЗНАЧЕНИЕ этих ячеек преобразовать в текст.
Чтоб. например, в ячейке D2 было "101000201087" и соответственно в ячейке E2 "ОК11-28 кабель....и тд"
Что-то не могу сообразить...
Помогите пожалуйста
Рассчитать Price, согласно указанной на этом же листе Price Policy
 
Ann_Ann, прикрепите этот ексель - файл, для рассмотрения Вашей задачи.
Изменено: ILUHA - 27.01.2017 00:34:49
Код работает, но с увеличение БД долго обрабатывается..., оптимизация кода
 
The_Prist, спасибо Вам большое! Путем всего возможного, что Вы мне тут посоветовали, мне удалось ускорить работу макроса с 12 с до 0,6 с !!! :idea:
Я считаю результат достигнут!
Еще раз, ВСЕМ спасибо!  ;)
Код работает, но с увеличение БД долго обрабатывается..., оптимизация кода
 
Казанский, а я приложил файл. Или что-то не то?
Автофильтром не пробовал, тоже как вариант. Спасибо, буду перебирать и этот вариант.
Код работает, но с увеличение БД долго обрабатывается..., оптимизация кода
 
Цитата
The_Prist написал: -избавиться от Select и Activate
Не могу додуматься, как уйти от этого в этом случае...

А вот за обновление экрана не знал. Сейчас буду читать. Может что и получится.
Цитата
The_Prist написал: -на время работы кода отключать обновление экрана
Спасибо Вам.
Изменено: ILUHA - 28.01.2016 21:42:29
Код работает, но с увеличение БД долго обрабатывается..., оптимизация кода
 
Прикрепляю файл. Без архива не помещается...(удалил всё, что можно)
Код работает, но с увеличение БД долго обрабатывается..., оптимизация кода
 
Здравствуйте! У меня была определенная задача, которую получилось решить. Но дело в том, что с увеличением БД обработка данной задачи занимает значительное время... При нажатии кнопки "Фильртовать по дате" все это и происходит.
Гуру VBA, если Вам не трудно, может подскажете какой-то другой вариант обработки? Заранее спасибо.
Код
Sub Mod4()
 ' tm = Timer
    'Находим последнюю строку и проверяем по условию
    lr = Cells(Rows.Count, 1).End(xlUp).Row
   
    DateDn = Worksheets("ОтчТопливо").Range("D5").Value
    DateUp = Worksheets("ОтчТопливо").Range("F5").Value
    
    For i = lr To 2 Step -1
    
    DateNow = Cells(i, 3)
        If DateNow >= DateDn And DateNow <= DateUp Then
              
            Rows(i).Select
            
            Selection.Copy
            
            Worksheets("ОтчТопливо").Activate
            Worksheets("ОтчТопливо").Range("A" & Rows.Count).End(xlUp)(2).Select
            Selection.PasteSpecial Paste:=xlValues
            Range("A1").Select
            Worksheets("БазаДанных").Activate
            Application.CutCopyMode = False
            Range("A1").Select
        End If
    Next

Вставка формулы массива в ячейку с помощью VBA
 
Мотя, ну, стало быть, так оно и есть
Вставка формулы массива в ячейку с помощью VBA
 
Мотя, я с удовольствием оценю Ваши "5 копеек"  ;)
Да, я использую и формулы и макросы. Честно я делаю по мере своих возможностей и нашедшей информации. Поэтому у меня так и получается.
Цитата
Мотя написал: Не проще ли, создать тривиальный, "гибкий" макрос, решающий Вашу проблему?  
Да, скорее всего Вы правы, но я пока не могу ))
Вставка формулы массива в ячейку с помощью VBA
 
gling, и Вы правы, черт возьми  8)
А вообще, спасибо Вам, действительно много дельных советов и подсказок!  :) :idea:
Отслеживание диапазона в формуле
 
vikttur, я понял) Спасибо Вам!
Отслеживание диапазона в формуле
 
vikttur, да да!  :) Честное слово, я сам в шоке от этого! )) Я очень хочу уйти от этого кошмара.
У Вас хорошие варианты.
Вариант 1 - каким образом удалить данные, а не строки? Я удаляю таким вот образом: Rows(i).Delete , но это я удаляю строки.
Код
[I]
lr = Cells(Rows.Count, 1).End(xlUp).Row[/I]
[I]For i = lr To 12 Step -1[/I]
[I]    If Cells(i, 1) = 0 Then[/I]
[I]        Rows(i).Delete[/I]
[I]    End If[/I]
[I]Next[/I]

Вариант 2 - вообще-то я именно такое решение для себя и видел, пока диапазон не стал сам изменяться. И у меня не получилось сделать так ОтчТопливо!R12C3:R100C3
чтоб R100C3 не менялось на R15C3(например)
Вариант 3 - не рассматривал ...
Вариант 4 - было б хорошо, но я пока не справлюсь с такой задачей ...  :(
ну и наконец, Вариант 5 !!! Я очень жду праздников и улетаю в отпуск ))))) забываю за компьютер на 10 дней  8) Надеюсь в Питере будет настоящая зима, а не как у нас в Крыму )))
Изменено: ILUHA - 27.12.2015 01:43:08
Вставка формулы массива в ячейку с помощью VBA
 
Михаил Лебедев, Александр Сергеевич, gling,  заметил такую ситуацию. Вот код:
Код
Sheets("ИтогТопливо").Select
    Range("F16").Select
    Selection.FormulaArray = _
        "=SUMIFS(ОтчТопливо!R12C7:R100C7,ОтчТопливо!R12C4:R100C4,MIN(IF(ОтчТопливо!R12C2:R100C2=RC[-2],ОтчТопливо!R12C4:R100C4)),ОтчТопливо!R12C1:R100C1,MAX(IF(ОтчТопливо!R12C2:R100C2=RC[-2],ОтчТопливо!R12C1:R100C1)))"

Sheets("ИтогТопливо").Select
    Range("F15").Select
    Selection.FormulaArray = _
        "=SUMIFS(ОтчТопливо!R12C6:R15C6,ОтчТопливо!R12C3:R15C3,MIN(IF(ОтчТопливо!R12C1:R15C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C3:R15C3)),ОтчТопливо!R12C9:R15C9,MAX(IF(ОтчТопливо!R12C1:R15C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C9:R15C9)))"
Разница лишь в том, что в первом случае сравнивается с ячейкой
ОтчТопливо!R12C2:R100C2=RC[-2] ,
а во втором случае с функцией СЦЕПИТЬ
ОтчТопливо!R12C1:R15C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1]))


так вот во втором случае выпадает ошибка:
"Run time error 1004
Нельзя установить свойство FormulaArray класса Range"
Вставка формулы массива в ячейку с помощью VBA
 
ikki, я не думаю, что стОит так ёрничать, т.к. вопрос по поводу количества символов в ячейке - это так, вопрос в формате диалога с человеком, и я не делал из этого вопроса тему на этом форуме.
Спасибо за понимание.
Вставка формулы массива в ячейку с помощью VBA
 
gling, а не знаете какое количество разрешено?
Отслеживание диапазона в формуле
 
vikttur, попробовал примастырить Ваш вариант в свою формулу....и просто абалдел от внешнего вида формулы)
Но так и не заработало...
{=СУММЕСЛИМН(ОтчТопливо!$G$12:ИНДЕКС(ОтчТопливо!$G$12:$G$100000;СЧЁТЕСЛИ(ОтчТопливо!$G:$G;">0"));ОтчТопливо!$D$12:ИНДЕКС(ОтчТопливо!$D$12:$D$100000;СЧЁТЕСЛИ(ОтчТопливо!$D:$D;">0"));МИН(ЕСЛИ(ОтчТопливо!$B$12:ИНДЕКС(ОтчТопливо!$B$12:$B$100000;СЧЁТЕСЛИ(ОтчТопливо!$B:$B;">0"))=D7;ОтчТопливо!$D$12:ИНДЕКС(ОтчТопливо!$D$12:$D$100000;СЧЁТЕСЛИ(ОтчТопливо!$D:$D;">0"))));ОтчТопливо!$A$12:ИНДЕКС(ОтчТопливо!$A$12:$A$100000;СЧЁТЕСЛИ(ОтчТопливо!$A:$A;">0"));МАКС(ЕСЛИ(ОтчТопливо!$B$12:ИНДЕКС(ОтчТопливо!$B$12:$B$100000;СЧЁТЕСЛИ(ОтчТопливо!$B:$B;">0"))=D7;ОтчТопливо!$A$12:ИНДЕКС(ОтчТопливо!$A$12:$A$100000;СЧЁТЕСЛИ(ОтчТопливо!$A:$A;">0")))))}
Отслеживание диапазона в формуле
 
Александр Сергеевич,
Цитата
Александр Сергеевич написал: Правильность вставки нарушена
пытаюсь понять, что Вы имели в виду...
Цитата
удаляйте и вставляйте строки целиком
Отслеживание диапазона в формуле
 
Александр Сергеевич, да я понимаю. Это я прикрепил просто вырезку из проекта )
Отслеживание диапазона в формуле
 
Непонятная для меня ситуация, даже не знаю, что и где копать...
На листе ОтчТопливо таблица заполнена до 30-йстрки, на листе ИтогТопливо в ячейке F7 прописан диапазон ОтчТопливо!$G$12:$G$30(в этой формуле меняется только столбец, а кол-во строк везде 30). Так вот, если на листе ОтчТопливо удалить например нижние 5 строк(чтоб таблица была заполнена до 25-й строки), то на листе ИтогТопливо в той же ячейке F7 диапазон меняется и становится ОтчТопливо!$G$12:$G$25. А в обратную сторону этот диапазон не меняется...
Почему изменился диапазон? И как сделать так, чтоб этот диапазон не менялся вовсе либо так же менялся и в бОльшую сторону?
Вставка формулы массива в ячейку с помощью VBA
 
Отзовитесь пожалуйста....
Вставка формулы массива в ячейку с помощью VBA
 
SuperCat, я так тоже пробовал...ошибка

"Run time error 1004

Нельзя установить свойство FormulaArray класса Range"
Вставка формулы массива в ячейку с помощью VBA
 
vikttur, так вроде как читал. Если Вы намекаете на то, что нужно использовать  FormulaArray, то я с этого начал эту тему и пытался использовать её, но у меня вылетает ошибка. Или я что-то не понял?
Вставка формулы массива в ячейку с помощью VBA
 
Михаил Лебедев, смог запустить таким кодом:
Код
Workbooks.Application.Run "Итог.xlsm!Mod2"
где Mod2 - это отдельный модуль с таким кодом:
Код
Sub Mod2()
    Sheets("ИтогТопливо").Select
    Range("F16").Select
    Selection = "=SUMIFS(ОтчТопливо!R12C6:R100C6,ОтчТопливо!R12C3:R100C3,MIN(IF(ОтчТопливо!R12C1:R100C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C3:R100C3)),ОтчТопливо!R12C9:R100C9,MAX(IF(ОтчТопливо!R12C1:R100C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C9:R100C9)))"
End Sub
Работает, код вставляется, но самое главное НО то, что вставляется не как массив, а просто формула, а мне так не подходит...
Вставка формулы массива в ячейку с помощью VBA
 
Михаил Лебедев, я как-то понял да не понял...
Получается я создаю новый модуль(макрос) в котором пишу этот код. А как мне вызвать макрос именно в тот момент, когда мне это нужно?
Возможно так:
- при нажатии кнопки выполняются всякие мои действия, а потом в конце каким-то образом запустить этот макрос? Или не правильно?
Вставка формулы массива в ячейку с помощью VBA
 
вот выкладываю сам тестовый файлик.
Вставка формулы массива в ячейку с помощью VBA
 
Добрый вечер, господа!
Записал макрорекордером действие и получил вот это:
Код
Sheets("ИтогТопливо").Select
    Range("F16").Select
    Selection.FormulaArray = "=SUMIFS(ОтчТопливо!R12C6:R100C6,ОтчТопливо!R12C3:R100C3,MIN(IF(ОтчТопливо!R12C1:R100C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C3:R100C3)),ОтчТопливо!R12C9:R100C9,MAX(IF(ОтчТопливо!R12C1:R100C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C9:R100C9)))"
Но самое главное то, что я запускаю этот макрос и выдает ошибку
"Run time error 1004
Метод Select из класса Range завершен неверно"


Что делаю не правильно?
Изменено: ILUHA - 25.12.2015 21:55:36
Выборка из сформированной таблицы, Нужно выбирать определенные данные из таблицы и вставлять в другую
 
Юрий М, Казанский, вот что мне записал рекордер:
Код
Sheets("ИтогТопливо").Select
    Range("F16").Select
    Selection.FormulaArray = "=SUMIFS(ОтчТопливо!R12C6:R100C6,ОтчТопливо!R12C3:R100C3,MIN(IF(ОтчТопливо!R12C1:R100C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C3:R100C3)),ОтчТопливо!R12C9:R100C9,MAX(IF(ОтчТопливо!R12C1:R100C1=(CONCATENATE(RC[-2],"" Гос. Номер "",RC[-1])),ОтчТопливо!R12C9:R100C9)))"
Ошибка осталась...

"Run time error 1004
Метод Select из класса Range завершен неверно"
Изменено: ILUHA - 25.12.2015 00:20:06
Выборка из сформированной таблицы, Нужно выбирать определенные данные из таблицы и вставлять в другую
 
Заменил на английский, ничего не поменялось.
Код
Worksheets("ИтогТопливо").Range("F16").FormulaArray = "=SUMIFS(ОтчТопливо!$F$12:$F$100;ОтчТопливо!$C$12:$C$100;MIN(IF(ОтчТопливо!$A$12:$A$100=(CONCATENATE(D16;"" Гос. Номер "";E16));ОтчТопливо!$C$12:$C$100));ОтчТопливо!$I$12:$I$100;MAX(IF(ОтчТопливо!$A$12:$A$100=(CONCATENATE(D16;"" Гос. Номер "";E16));ОтчТопливо!$I$12:$I$100)))"
Страницы: 1 2 След.
Наверх