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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 31 След.
Возвращать дату на несколько дней раньше/позже от указанной в ячейке, дата
 
+10 или -10 к ячейке с датой.
Макрос для удаления кода на определенную дату, удаления кода на определенную дату
 
Дмитрий(The_Prist) Щербаков, Дмитрий понял.
С моей стороны отмена.
Макрос для удаления кода на определенную дату, удаления кода на определенную дату
 
Всех приветствую.
Если никто не взял в работу, то я пишу в личку.

Вячеслав, сообщите, если уже с кем-то сотрудничаете по данному вопросу.
Изменено: asesja - 20.02.2026 15:23:49
Перенос данных по условию, Перенести данные из таблицы в таблицу по условию
 
HelenPerfect, поправил.
Перенос данных по условию, Перенести данные из таблицы в таблицу по условию
 
Цитата
написал:
остаются, не стираются
Понял. Доберусь до компа, поправлю.
Изменено: asesja - 08.02.2026 23:18:56
Перенос данных по условию, Перенести данные из таблицы в таблицу по условию
 
HelenPerfect, здравствуйте.
Вариант макросом.
Изменено: asesja - 08.02.2026 20:15:35
Расчет часового расхода (воды), Фильтр по значениям
 
mmakshakov, здравствуйте.
Возможно не понял, что от чего нужно отнять, но я сложил данные из столбца "C" в разрезе каждого часа, как в сводной у Sanja
Если не так понял, для корректировки расчета поясните подробнее.
Копирование данных с одного листа на другой
 
Цитата
написал:
Ну да ладно, что эти программисты понимают!
Главное — чтобы компьютер не догадался, что они не понимают, как это работает."😜
Изменено: asesja - 06.02.2026 12:58:57
Что за символ появляется после конвертации таблицы из Ворда в Эксель и как от него избавиться?
 
Код
Sub Макрос1()
    Dim rng As Range
    Set rng = Range("A1:H5")
    rng.Replace Chr(13), Chr(10)
    rng.Replace Chr(11), Chr(10)
    rng.FormulaLocal = rng.FormulaLocal
End Sub
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Заменяем возврат каретки на перенос строки, как предложил Старичок, только сразу для всего диапазона. У меня сработало.
Код
Sub Макрос1()
    Dim rng As Range
    Set rng = Range("A1:K1123")
    rng.Replace Chr(13), Chr(10)
    rng.FormulaLocal = rng.FormulaLocal
End Sub
Как сделать список вперемешку? 111 222 333 - 123 123 123
 
Создание генератора чисел
 
SingOrDie, ещё такой вариант.
Защита Листа Excel от удаления, VBA либо другим способом
 
sokol92, спасибо большое!
Тоже отличный вариант.
Ошибка буфера обмена
 
Вам нужно приложить файл с примером, где происходит ошибка.
Ошибка буфера обмена
 
Здравствуйте.
Попробуйте перед заменой столбцов прописать очистку буфера обмена.
Защита Листа Excel от удаления, VBA либо другим способом
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
При активации листа. Событие такое есть, выше приводил с ним пример
Дмитрий, спасибо. Я использую это событие для некоторых действий.
Да, лучше туда прописать.  
Изменено: asesja - 28.01.2026 13:40:55
Защита Листа Excel от удаления, VBA либо другим способом
 
Цитата
Sanja написал:
Иметь в книге ДВА идентичных шаблона
Они не статичные. Данные меняются. В двух одновременно менять и отслеживать изменения не вариант.
Цитата
Дмитрий(The_Prist) Щербаков написал:
Раз даете такую волю пользователям с этими листами
Да, доступ есть, все предупреждены, но хотелось бы некую "защиту от дурака".

Цитата
Дмитрий(The_Prist) Щербаков написал:
значит лист удалили или переименовали и об этом надо сразу сообщать и пусть уже пользователь думает, что делать
Кстати да, при закрытии/открытии проверять нужные листы и выводить сообщение с дальнейшим выходом.
Это конечно не предотвратит попытку удаления, но причину обозначит при открытии документа.

"Cancel = True" - не с той оперы.)) Не обращайте внимания.
Изменено: asesja - 28.01.2026 11:42:39
Защита Листа Excel от удаления, VBA либо другим способом
 
Дмитрий(The_Prist) Щербаков, Sanja спасибо за советы.
Но в данном случае обратился на форум, т.к. не смог найти нужного и удобного решения. Всё в проекте гораздо сложнее, предложенные варианты реализуемы но, для меня неудобны. Хранение данных в другой книге можно сделать, но опять таки мне неудобно и неудобно будет пользователям.
С листом, который нужно защитить от удаления (их может быть несколько), происходит плотное программное и ручное взаимодействие, создаются его копии с другим именем как в ручную, так и программно.
Дмитрий(The_Prist) Щербаков, "Activeworkbook.Sheets("Лист2").Delete" не рассматриваю угрозой. Это будет умышленное удаление и понятно, что сделано специально. После такого соответствующий разбор "полёта".
Нужно что-то типа перехвата события. Некая "защита от дурака" с предупреждением или что-то типа деактивации пункта "Удалить" на нужном листе.
Использую пока вот такой способ, как говорится "на всякий случай" с закрытием книги без сохранения. Но в старых версиях может не сработать.
"Cancel = True" в этом событии не срабатывает (нет такой переменной, пример от другой процедуры), поэтому использую Close.
Можно даже "Application.Quit", чтобы у злоумышленника не возникало желание делать запрещённые действия)). Можно ещё добавить запись в файл данных пользователя или ПК, на котором была попытка удаления для дальнейшего персонального предупреждения.
Код
Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)
    If Sh.Name = "Шаблон" Then
        MsgBox "Удаление листа 'Шаблон' запрещено!" & vbCrLf & "" & vbCrLf & "Данный лист является системным.", 16, "Info"
        ActiveWorkbook.Close False
    End If
End Sub
Я уже понял, что вариантов практически нет, кроме "Защиты книги (структуры)" и затем программно это обыгрывать.
Но мало ли появится интересное решение.
Изменено: asesja - 28.01.2026 12:08:22
Защита Листа Excel от удаления, VBA либо другим способом
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Я бы на Вашем месте все же воспользовался защитой книги.
Дмитрий, спасибо, но как я написал защита книги не подходит.  
Проект сложный, листов очень много, часть из них программно добавляется, удаляется, копируется, супер-скрывается и т.д. Некоторые действия должны выполнятся вручную. Структура недолжна быть защищена.
Конечно, все ручные действия можно зашить макросами и программно снимать защиту листа выполнять нужные действия и обратно устанавливать, но в данном проекте мне это не очень удобно. Поэтому ищу вариант защиты листа от удаления без блокировки структуры (защиты книги).
Так же понимаю, что почти любую защиту можно взломать, если задаться целью.
Изменено: asesja - 27.01.2026 20:23:37
Защита Листа Excel от удаления, VBA либо другим способом
 
Здравствуйте.
Подскажите, пож-та, как в книге Excel защитить лист от удаления пользователями.
Защита структуры в качестве защиты от удаление не подходит.
Лист, который нужно "обезопасить" от удаления, будет скрываться пользователями и отображаться при необходимости внесения  изменений, эта функция не должна быть заблокирована.
VBA приветствуется. Обычные пользователи не будут иметь пароль от проекта.
Создание массива чисел при выполнении условий
 
Здравствуйте.
Код
Sub ЗаполнитьМассив ()
    Dim arr(1 To 100), i%, counts(1 To 5), p
    For i = 1 To 100
        arr(i) = Int(Rnd() * 5 + 1)
    Next
    p = Array(0, 0, 0.25, 0.15, 0.1, 0.05)
    For i = 1 To 100
        If counts(5) < 100 * p(5) Then arr(i) = 5: counts(5) = counts(5) + 1
    Next
    For i = 1 To 100
        If arr(i) <> 5 Then
            If counts(4) < 100 * p(4) Then arr(i) = 4: counts(4) = counts(4) + 1
        End If
    Next
    For i = 1 To 100
        If arr(i) <> 5 And arr(i) <> 4 Then
            If counts(3) < 100 * p(3) Then arr(i) = 3: counts(3) = counts(3) + 1
        End If
    Next
    For i = 1 To 100
        If arr(i) <> 5 And arr(i) <> 4 And arr(i) <> 3 Then
            If counts(2) < 100 * p(2) Then arr(i) = 2: counts(2) = counts(2) + 1
        End If
    Next
    For i = 1 To 100
        If arr(i) > 1 Then counts(arr(i)) = counts(arr(i)) + 1 Else counts(1) = counts(1) + 1
    Next
    Range("A1:A100").Value = Application.Transpose(arr)
    MsgBox "Распределение:" & vbCrLf & _
           "5: " & counts(5) & "%" & vbCrLf & _
           "4: " & counts(4) & "%" & vbCrLf & _
           "3: " & counts(3) & "%" & vbCrLf & _
           "2: " & counts(2) & "%" & vbCrLf & _
           "1: " & counts(1) & "%"
End Sub
Как совместить две таблицы по одному столбцу (всю голову сломал), Нужно сделать одну таблицу из нескольких таблиц по одному поставщику (столбцу)
 
muari2006, Приветствую!
См. вложение.
Создание таблицы учёта нарушений
 
Цитата
messire написал:
Вопрос: можно ли сделать так
Можно. См.V2.
Изменено: asesja - 17.01.2026 21:39:21
Создание таблицы учёта нарушений
 
Цитата
messire написал:
Вопрос: можно ли сделать так, что если список пунктов и документов изменяется, это повлечёт автоматическое изменение в листе Реестр?
Да, теоретически можно сделать по событию изменения данных в определённом диапазоне на листе "Типы нарушений", но думаю, с увеличением базы, это будет чуть притормаживать работу.
На мой взгляд, лучше создать кнопку "ОБНОВИТЬ ДАННЫЕ" на листе "Реестр". Но вы сами смотрите как вам удобнее. Можно использовать и другие варианты взаимодействия, к примеру "Смена листа" и прочие события, а также создание "Пользовательской функции UDF", которая будет работать как формула.
Изменено: asesja - 17.01.2026 19:41:05
Создание таблицы учёта нарушений
 
Цитата
messire написал:
Коллеги, помогите реализовать это.
Здравствуйте. См.вложение.
Изменено: asesja - 17.01.2026 18:50:45
USERFORM ход выполнения, Ход выполнения нескольких макросов
 
Цитата
Evgen Evgen написал:
помогите сделать один ползунок на "Обновить всё"
Здравствуйте.
Вот такой вариант, если это то, о чем речь. Оптимизируйте под себя.
https://disk.yandex.ru/d/g9RJ2ZdHHUSc3g
Изменено: asesja - 13.01.2026 21:58:20
Импорт листа из другой книги экселя, Импорт листа из другой книги экселя
 
Цитата
Olegas написал:
но дальше код не работает
Код работает.
Вы удалили перед запуском макроса лист "Замены" из открытой книги, если он там был?

Попробуйте, как порекомендовал модератор, записать макрос и затем лишнее подчистить. Так сможете быстрее разобраться.
Ведь вам же не просто нужны строчки кода, вы собираетесь с ним что-то дальше делать, верно?
Изменено: asesja - 11.01.2026 17:55:48
Импорт листа из другой книги экселя, Импорт листа из другой книги экселя
 
Здравствуйте.
Код
Workbooks.Open("C:\Users\OLEGAS\Desktop\Замены.xlsx").Sheets("Лист1").Copy After:=ThisWorkbook.Sheets(1)
ThisWorkbook.Sheets(2).Name = "Замены"
Workbooks("Замены.xlsx").Close False
Открыть програмно сайт заданный и в поле ввода данных вставить текcт из ячейки A1, VBA
 
Alex, спасибо, что откликнулись. С Селениум долго ковырялся, но никак не срастается. Ссылку на Selenium Type Library добавил, но толи драйвер не той версии, толи что-то не так делаю.

Придумал вот такой вариант.
Может кто-то сможет предложить что-нибудь получше и понадёжнее.
Код
#If VBA7 Then
    Private Declare PtrSafe Function GetForegroundWindow Lib "user32" () As LongPtr
    Private Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
        (ByVal hWnd As LongPtr, ByVal lpString As String, ByVal cch As Long) As Long
#Else
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
        (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
#End If

Sub GIS_MTR_19_TAB_PASTE_ENTER()
    Dim sh As Object
    Dim hWnd As Variant
    Dim title As String

    Set sh = CreateObject("WScript.Shell")

    sh.Run "cmd /c start https://xn--80ajghhoc2aj1c8b.xn--p1ai/checking_codes/", 1, False
    Application.Wait Now + TimeValue("00:00:01")
    Do
        DoEvents
        hWnd = GetForegroundWindow
        title = Space(255)
        GetWindowText hWnd, title, 255
        title = LCase(title)
    Loop Until InStr(title, "проверка") > 0 Or InStr(title, "маркиров") > 0

    sh.SendKeys "{TAB 19}"
    sh.SendKeys "3926200000"
    Application.Wait Now + TimeValue("00:00:01")
    sh.SendKeys "{ENTER}"
End Sub
Поиск в таблице соответствия на наименьшее значение.
 
Здравствуйте.
Вариант на VBA для вашего примера.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 31 След.
Наверх