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

Страницы: 1
Активация ячейки по значениям из других ячеек, Вопрос активации ячейки
 
Разобрался, не на тот лист вставил код, спасибо)
Изменено: Paren - 25.04.2022 14:28:46
Активация ячейки по значениям из других ячеек, Вопрос активации ячейки
 
Добрый день. Вопрос конечно глупый и возможно уже был на форуме, если был дайте ссылку. В общем в двух ячейках находится адрес ячейки которую необходимо активировать. Не получается по ним ее активировать. В ячейках Row и cols находятся цифры столбца и строки. Задача состоит в том чтобы именно из данных ячеек, содержащих номер строки и столбца, активировать нужную ячейку.
Код
Sub tert()
Row = Cells(1, 2).Value
cols = Cells(1, 3).Value
Лист2.Cells(Row, cols).Activate
End Sub
Запрос даты и времени из Интернета
 
Фишка в том, что если дата просрочена файл удаляет вкладки, сохраняется и закрывается, о том что стоит дата проверки никто не знает, я ее по умолчанию обновляю, а старые файлы этого отчета никто не смотрит, всем нужны новые и файл собирается накопительно ежедневно. Файл как раз открываетсяч на компах в рабочих группах, но кто-то может его забрать домой.
Изменено: Paren - 01.12.2021 13:07:10
Запрос даты и времени из Интернета
 
Как раз этот макрос и выводит 00:00:00 (((
Запретить макрос могут, но тогда отчет не будет считаться и данные будут бесполезны. А на счет отключить интернет, такого не получиться, так как интернет корпоративный и нужны админ права, да еще до такого додуматься нужно. А я две проверки зашью, одну из интернета, другую от виндоус.:))))
Изменено: Paren - 01.12.2021 12:57:52
Запрос даты и времени из Интернета
 
У меня зашит штатный таймер в файл, который отпраляеется группе лиц в том числе руководству, и если дата больше указанной в коде - файл самоудаляет вкладки и выкл макрос. Проблема в том, что данные пользователи, будучи безграмотными в макросах не смогут исправить код, а вот дату в виндоус перевести на месяц назад смогут и файл не удалит вкладки. Решил попробовать доставать дату из интернета а не из виндоус, чтобы дату откатить не могли. И на макрос я наложил пароль, чтобы не так просто было его поправить если вдруг все же додумаются и сам код очень коряво написал, для плохой читабельности.
Запрос даты и времени из Интернета
 

Всем добрый день. Подсмотрел в интернете макрос по получению даты и времени из интернета, при запуске процедуры "ВывестиТекущуюДатуИВремя" выводит вместо даты 00:00:00, может кто сможет подсказать что не так?

Код
Function GetRealTime(Optional ByVal GMT& = 4) As Date
    On Error Resume Next: Err.Clear: Dim http As Object, URL$, GMT_Time$, m$, mv$
    'GetRealTime = Now        ' значение по-умолчанию

    Set http = CreateObject("Microsoft.XMLHTTP")
    URL$ = "http://yandex.ru/"        ' можно указать практически любой сайт
    http.Open "GET", URL$, False
    http.Send
 
    GMT_Time = http.GetResponseHeader("Date")
    Set http = Nothing
 
    ' пример полученной строки:  Sun, 27 Apr 2014 06:14:44 GMT
    'If Not (GMT_Time Like "???, *# ??? #### ##:##:##*GMT*") Then Exit Function
    GMT_Time = Trim(Split(GMT_Time, ",")(1))
    GMT_Time = Trim(Split(GMT_Time, "GMT")(0))
    m$ = Trim(Split(GMT_Time)(1))
    mv$ = (InStr(1, "janfebmaraprmayjunjulaugsepoctnovdec", m$, vbTextCompare) + 2) / 3
    GMT_Time = Replace(GMT_Time, " " & m$ & " ", "." & Format(mv$, "00") & ".")
 
    GetRealTime = CDate(GMT_Time) + Val(GMT&) / 24
End Function

Sub ВывестиТекущуюДатуИВремя()
    t = GetRealTime
    MsgBox t, vbInformation, "Текущее время (в Москве)"
 End Sub
Вставка массива из буфера обмена
 
Спасибо за ссылку, я уже разобрался. Помог комментарий из прошлых ответов:
В данном варианте много нюансов:
1. .GetFromClipboard не возвращает массив, а работает ТОЛЬКО с текстом единой строкой. Значит надо на массив разбивать по переносу строки, а вдобавок и по табуляции, т.к. могут быть и столбцы. Первый нюанс в том, что разбиение может произойти некорректно, если внутри ячеек так же есть перенос на строки или табуляции. Плюс внутри UDF в том виде, в котором она сейчас не предусмотрен вывод в несколько ячеек - только в одну. Нужно переделывать под формулу массива, но второй нюанс в том, что UDF некорректно обрабатывает структуры ячеек из буфера, т.к. в момент вызова функции из ячейки листа буфер будет очищен.
Если эти нюансы отбросить, то можно соорудить процедуру:
Код
Sub S_ClipboardText()
    Dim asr, asc, lr&
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipboard
        asr = Split(.GetText, vbNewLine)
        For lr = LBound(asr) To UBound(asr)
            If asr(lr) <> "" Then
                asc = Split(asr(lr), vbTab)
                ActiveCell.Offset(lr, 0).Resize(, UBound(asc) + 1).value = asc
            End If
        Next
    End With
End Sub
Но если Вам нужен не только текст ячеек, но и другие свойства(заливка, границы, формулы и т.д.) - то Вам нужен принципиально другой подход. И лучше описать словами что хотите получить.
Изменено: Дмитрий(The_Prist) Щербаков - 15 янв 2020 09:29:22
Вставка массива из буфера обмена
 
Добрый день. Прошу Вас подсказать функцию которая может из буфера обмена вставить данные в двумерный массив. Ручным способом все просто: выделяю в 1с диапазон, нажимаю Ctrl+C, открываю Excel Ctrl+V и диапазон скажем А1:j10 заполнен. Мне необходимо чтобы я после копирования Ctrl+C нажал на свою кнопку в Excel (или нажал сочетание клавиш, которые присвоил макросу) и данные из буфера памяти вставились в указанный(в макросе) диапазон также как после нажатия в выбранной ячейке Ctrl+V.
Поиск значения по двум столбцам в ВБА, Помочь разобрать формулу в ВБА
 
Обалдеть))
Спасибо Огромное)))
Все работает)))
Поиск значения по двум столбцам в ВБА, Помочь разобрать формулу в ВБА
 
Добрый день. Нуждаюсь в помощи Гуру VBA.
Не получается разработать формулу для поиска значения по двум параметрам в вба.
Во вложении файл, в нем необходимо при запуске макроса в синей ячейке находилось значение по двум параметрам из желтых ячеек. (как по формуле excel в синей ячейке)
Разбор формулы Индекс Поискпоз, Поиск значения в таблице
 
Добрый день. Прошу помочь разобраться с формулой. Задача состоит в следующем: В 1ом и 2ом столбце стоят данные, например 1й столбец содержит названия складов: склад1, склад2, склад3. Второй столбец содержит названия полок: полка 1, полка2 полка три. В третьем толбце стоят цены. Необходимо в vba найти цену напротив нужного склада в котором нужная полка. Например склад1 полка2 найденная цена - 100р.
Если например склады были бы в первом столбце со строки 3 до строки 5, а полки стояли бы на пример на второй строке с 2го по 4й столбец формула была бы следующей:
в Excel =Индекс(B3:D5;ПОИСКПОЗ("склад1";A3:A5;0);ПОИСКПОЗ("полка2";B2:D2;0))
в  VBA
c = Application.Match("склад1", Range(Cells(3, 1), Cells(5, 1)), 0)
d = Application.Match("полка2", Range(Cells(2, 2), Cells(2, 4)), 0)
Cells(7, 1).Value = Application.Index(Range(Cells(3, 2), Cells(5, 4)), c, d)
Эта формула работает
А как оформить формулу в вба если в ecxel следующее:
Excel  =Индекс(C3:C5;ПОИСКПОЗ("склад1"&"полка2";A3:A5&B3:B5;0))
а как в ВБА?
Суммировать все значения в столбце, соответствующие периоду дат
 
ААААА
Я нашел!!!!!!!!!!!!!
Невероятно!!!!
Код
Cells(21, 21).Value = Application.SumIfs(Range("FS200:FS5000"), Range("HY200:HY5000"), ">=" & Range("T6").Value2, Range("HY200:HY5000"), "<=" & Range("A3").Value2)

Почему Value2 а не Value?????????
Суммировать все значения в столбце, соответствующие периоду дат
 
Формула в Ecxel считается нормально, у меня весь отчет в формулах рассчитан, теперь переписываю на VBA чтобы формул в ячейках не было видно
в Excel выглядит так:= СУММЕСЛИМН($FS$200:$FS$5000; $HY$200:$HY$5000;">="&$T$6;$HY$200:$HY$5000;"<="&$A$3)
А в VBA не получается как только не пробовал.По формуле как указал New в ячейке появляется значение ИМЯ! Ячейка Т6 заполняется по макросу от ячейки А3
Cells(6, 20) = DateSerial(DatePart("YYYY", Cells(3, 1)), DatePart("M", Cells(3, 1)), 1)
Проставил Value получилось вот так
Cells(21, 21).Value = Application.SumIfs(Range("FS200:FS5000"), Range("HY200:HY5000"), ">=" & Range("T6").Value, Range("HY200:HY5000"), "<=" & Range("A3").Value)
В ячейке ответ 0,00 ((( а должно быть  4 424
Суммировать все значения в столбце, соответствующие периоду дат
 
Попробовал вот так
Cells(21, 21) = Application.SumIfs(Range("FS:FS"), Range("HY:HY"), ">=" & Range("T6"), Range("HY:HY"), "<=" & Range("A3"))
всеравно не получилось(((
Суммировать все значения в столбце, соответствующие периоду дат
 
День добрый.
Прошу помочь поправить формулу в VBA
Задача в следующем. В столбце FS содержатся суммы, в столбце HY даты в которые эти суммы были получены. Ячейка Т6 всегда содержит дату первого дня выбранного месяца, а ячейка A3 содержит выбранную дату данного месяца.
Пример: Ячейка T6 содержит 01.08.2020. Ячейка А3 содержит 21.08.2020. Необходимо найти диапазон дат в столбце HY и суммировать относительно этого диапозона данные из стобца FS. Другими словами, необходимо суммировать все значения в столбце FS соответствующие датам с 01.08.2020 до 21.08.2020.
Код
Cells(21, 21) = Application.SumIfs(Range("FS:FS"), Range("HY:HY"), ">=" & "T6", Range("HY:HY"), "<=" & "A3")
Страницы: 1
Наверх