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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 13 След.
Ушел из жизни Сергей (Serge_007)
 
Уход из жизни близких - всегда тяжелая утрата!
Искренне соболезную
Поиск первой пустой ячейки в столбце
 
МатросНаЗебре, благодарю!!! Заработало!)
Поиск первой пустой ячейки в столбце
 
Доброго дня!
Тем таких море, но почему-то макрос ни в какую не хочет находить ПЕРВУЮ пустую ячейку в столбце N, находит последнюю и всё тут.
В чем может быть дело?
Код
    If Not Intersect(Target, Range("Числа")) Is Nothing Then 
        iLastRow = Cells(Rows.Count, "N").End(xlUp).Row + 1
        Cells(iLastRow, "N") = Target
        Cells(iLastRow, "N").Offset(0, 4).Select
        Cancel = True
    End If
Пример не могу приложить, прошу прощения - корпоративный интернет (скачать можно, выложить - нет)
Автоматизация процесса открытия пустой (новой) книги с последующим открытием необходимого файла в ней
 
Sanja, спасибо большое, всё как надо!!!
Автоматизация процесса открытия пустой (новой) книги с последующим открытием необходимого файла в ней
 
Доброго дня, господа и дамы!
Возможна ли автоматизация такого действия: из файла "Рабочий" открываю пустую (новую книгу "Книга1") и в ней открываю файл Ексель  (всегда один и тот же назовем условно "Отчет"), путь к которому можно прописать гиперссылкой в ячейке "Е6", или в самом коде (не принципиально).
Это для работы со вторым файлом "Отчет" в другом окне, чтобы видеть информацию в файле "Рабочий" без переключения между окнами.
Пример приложить возможности нет - корпоративный интернет.
Надеюсь понятно объяснил.
Хороших выходных всем!
Подсветка ячейки, если в адресе электронной почты входящего сообщения (активного окна) есть часть, указанная в этой ячейке
 
МатросНаЗебре, Очередное ОООгромное спасибо!!!!
Успехов и хорошего дня!!!
Подсветка ячейки, если в адресе электронной почты входящего сообщения (активного окна) есть часть, указанная в этой ячейке
 
МатросНаЗебре,  8-0  работает!!! Одно "НО" - как убрать выделение из строки, когда оно мне не надо (т.е. необходимое действие выполнил и по нажатию выделение стало предыдущим цветом (из ячейки "R1" например)? И при переходе на сообщение из другого региона выделение срабатывает, но выделение предыдущего остается, а надо чтобы очистилось (стало прежнего цвета из ячейки R1).
Код
Sub MailRangeJob(rr As Range)
    Dim oOutlook As Object 'Outlook.Application
    On Error Resume Next
    Set oOutlook = GetObject(, "Outlook.Application")
    Dim MailItem1 As Object 'MailItem
    Set MailItem1 = oOutlook.ActiveExplorer.Selection.Item(1)
    Dim sMail As String
    sMail = MailItem1.SenderEmailAddress
    On Error GoTo 0
    If sMail <> "" Then
        Dim cl As Range
        For Each cl In rr.Cells
            If InStr(sMail, cl.Value) > 0 Then
                cl.Interior.Color = Range("Q1").Interior.Color 'RGB(200, 200, 200)
            Else
            End If
        Next
    End If
End Sub
Изменено: evg_glaz - 29.11.2023 11:08:28
Подсветка ячейки, если в адресе электронной почты входящего сообщения (активного окна) есть часть, указанная в этой ячейке
 
Доброго всем дня!
В первой строке в диапазоне Q1:AF1 в ячейках перечислены части адресов почты, с которых поступает информация. Адреса разные, но часть адреса всегда одинакова (в зависимости от региона), например PetrovPP@dvgd.ru или SidorovMM@klgd.ru (всего 16 различных окончаний, которые и перечислены в ячейках первой строки). В данном случае письма приходят и первая часть до "@" может меняться по фамилии, а после "@" dvgd.ru или klgd.ru  неизменно.
Как бы реализовать такую фишку, чтобы если во входящем (выделенном в почте Оутлук) сообщении есть часть адреса из первой строки, то ячейка, содержащая эту часть подсвечивалась цветом по Worksheet_SelectionChange в диапазоне "G:G" например (цвет беру из определенных ячеек), и по клику на А1 например заливалась предыдущим цветом какой был (также из определенных ячеек цвет). Если письмо с "левого" адреса и части после "@" в первой строке нет, то ничего не меняется соответственно.
Надеюсь внятно объяснил, т.к. файл выложить нет возможности - корпоративный интернет, скачать можно, выложить - нет.
Цель задачи - не гадать, из какого региона информация, а наглядно видеть для дальнейших определенных действий.
Буду благодарен за помощь!
Когда в модуле листа есть Option Explicit не работает код
 
Цитата
написал:
Смешно
Точно)))) с переменным успехом график)))
Когда в модуле листа есть Option Explicit не работает код
 
Дмитрий(The_Prist) Щербаков, большое спасибо!!! Буду изучать при наличии времени!
Когда в модуле листа есть Option Explicit не работает код
 
asesja, спасибо!!!
Когда в модуле листа есть Option Explicit не работает код
 
МатросНаЗебре, Спасибо большое!!!
Надо было сразу спросить на форуме - пол дня копаюсь)))
Изменено: evg_glaz - 25.10.2023 14:21:15
Когда в модуле листа есть Option Explicit не работает код
 
Подскажите, пожалуйста, как исправить! Есть код - если изменения вносятся в ячейку, она мигает (изменения вносятся другим кодом по ПКМ, сделал, чтобы видно было, что макрос сработал):
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Not Intersect(Target, Range("F1")) Is Nothing Then 'Примечания в примечания
            'ThisWorkbook.Sheets("Лист1").Application.Speech.Speak "с" '[O1]
            With ActiveSheet.[F1]
            .Interior.Color = Sheets("Лист2").[A1].Interior.Color
                Start = Timer
                Do While Timer < Start + 0.3 ' пауза в секундах
                    DoEvents
                Loop
            .Interior.Color = Sheets("Лист2").[E1].Interior.Color
            End With
        End If
        
End Sub
Если в модуле листа есть
Код
Option Explicit
То код в строке
Код
Start = Timer
ругается на Start  (выделяет синим). Что можно сделать?
Вырезать строку и вставить выше в этой же таблице "вставить вырезанные ячейки"
 
Дмитрий(The_Prist) Щербаков, спасибо большое, всё как надо!
Код
Target.EntireRow.Cut
out_rng.Insert
Эти строки не додумал)))
Вырезать строку и вставить выше в этой же таблице "вставить вырезанные ячейки"
 
Доброго всем времени суток!  В столбце А таблицы стоят метки (буква "а"), т.е. задачи, описанные в строках, выполнены, а ниже в этой же таблице строки без меток (т.е. не выполненные задачи). Помогите скорректировать код, пожалуйста (или может есть иное решение), чтобы копируемая строка не заменяла данные в строке вставки (следующая строка после последней метки), а вставлялась как ПКМ "вставить скопированные ячейки"
и после вставки строки в столбце А появлялась метка - буква "а", т.е. выполненная задача (если ставить метку перед копированием, то получается некорректно, т.к. код видит ее последней строкой).
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, [A7:A1000]) Is Nothing Then
         If Target.Cells.CountLarge > 1 Then Exit Sub
        With Target.Offset(0, 0)
            Cancel = True
            Set trgt_rng = Range([A7], [A7].End(xlDown))
            If Target.Count = 1 Then
                    Set out_rng = [A1].Offset(Cells.Rows.Count - 1).End(xlUp).Offset(1)
                    Target.EntireRow.Copy out_rng
                    Target.EntireRow.Delete
                    Application.CutCopyMode = False
                    Exit Sub
            End If
        End With
        Cancel = True
    End If
End Sub
Надеюсь понятно объяснил, т.к. файл приложить не имею возможности - корпоративный интернет, прошу прощения!
Изменено: evg_glaz - 24.10.2023 12:25:13
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, разобрался!
Код
Private WithEvents CB As CommandBars, InitFlg As Boolean
Private AW As Window, mvShape As shape, shWdh!, shHgt!


Option Explicit

Private Sub varInit()     'инициализация переменных
    Set CB = CommandBars
    Set AW = ActiveWindow
    Set mvShape = Shapes("Подсказка_Дислок")
    shWdh = mvShape.Width
    shHgt = mvShape.Height
    InitFlg = True
End Sub

Private Sub CB_OnUpdate() 'событие скроллинга
    Dim mTop!
    mTop = AW.VisibleRange.Rows(1).Top
    If mTop <> mvShape.Top Then
        With mvShape
          .Top = mTop
          .Width = shWdh
          .Height = shHgt
        End With
    End If
End Sub
переместил наверх модуля и заработало! Большое спасибо!!!

P.S. - у меня криво отображаются коды на сайте и, как было раньше - кто на сайте и сколько не отображается. У всех так, или у меня только, подскажите, пож?
Изменено: evg_glaz - 18.10.2023 13:55:37
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, там каша у меня))).  Видимо это два кода мешают... Первый берет информацию из других книг и на фигуру помещает текст, второй выделяет строку

Код
    With Workbooks("Рабочий файл ").Sheets("Дислокация").Shapes.Range(Array("Подсказка_Дислок")) 'Подсказка кнопка к ячейке
    If Not Application.Intersect(Range("I7:I1000"), Target) Is Nothing Then
        If Target.Cells.CountLarge > 1 Then Exit Sub
        If Target.Offset(0, -1) = "ПРЕД" Or Target = "" Or ActiveSheet.AutoFilterMode = True Then
            Workbooks("Рабочий файл НОВЫЙ").Sheets("Дислокация").Shapes.Range(Array("Подсказка_Дислок")).Visible = False
            Exit Sub
        End If
        
        Dim wbName$, wbPath$, p&, link$
        p = InStrRev(Target.Offset(0, 10), "\")
        wbName = Mid(Target.Offset(0, 10), p + 1)
        wbPath = Left(Target.Offset(0, 10), p)
        link = "='" & wbPath & "[" & wbName & "]Лист1'!Q1"
        link1 = "='" & wbPath & "[" & wbName & "]Лист1'!R1"
        link2 = "='" & wbPath & "[" & wbName & "]Лист1'!S1"
        link3 = "='" & wbPath & "[" & wbName & "]Лист1'!T1"
        link4 = "='" & wbPath & "[" & wbName & "]Лист1'!U1"
        link5 = "='" & wbPath & "[" & wbName & "]Лист1'!V1"
        link6 = "='" & wbPath & "[" & wbName & "]Лист1'!W1"
        link7 = "='" & wbPath & "[" & wbName & "]Лист1'!F1" 'Примечания
        With Target.Offset(, 11) 'за гарницами видимого листа
          .Formula = link
        End With
        With Target.Offset(, 12) 
          .Formula = link1
        End With
        With Target.Offset(, 13) 
          .Formula = link2
        End With
        With Target.Offset(, 14) 
          .Formula = link3
        End With
        With Target.Offset(, 15) 
          .Formula = link4
        End With
        With Target.Offset(, 16) 
          .Formula = link5
        End With
        With Target.Offset(, 25) 
          .Formula = link6
        End With
        With Target.Offset(, 26) 
          .Formula = link7
        End With
               
            .Top = Target.Offset(1, -8).Top
            .Left = Target.Offset(1, -8).Left
            .Visible = True
       
            .TextFrame2.TextRange.Characters.Text = Target.EntireRow.Cells(20) & Chr(10) & Target.EntireRow.Cells(21) _
              & Chr(10) & Target.EntireRow.Cells(22) & Chr(10) & _
              Target.EntireRow.Cells(23) & Chr(10) & Target.EntireRow.Cells(24) & Chr(10) & Target.EntireRow.Cells(34) _
              & Chr(10) & Target.EntireRow.Cells(25) & ":" & Chr(10) & Target.EntireRow.Cells(35)
            .Visible = True 
        Else
            .Visible = False
    End If
    End With

    Dim WorkRange As Range, CrossRange As Range ' выделение ячеек строки
    Set WorkRange = Range("I7:S1000,Z7:AG1000")  'адрес рабочего диапазона с таблицей
        'If Target.Count > 1 Then Exit Sub
            If Coord_Selection = False Then
        WorkRange.FormatConditions.Delete
        Exit Sub
            End If
    If Not Intersect(Target, WorkRange) Is Nothing Then
        Set CrossRange = Intersect(WorkRange, Target.EntireRow)
        WorkRange.FormatConditions.Delete
        CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1"
        CrossRange.FormatConditions(1).Interior.Color = Range("AL1").Interior.Color             'Index = 36
        'Target.FormatConditions.Delete
    End If
    
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, Invalid attribute in Sub or Function
В чистом файле работает нормально.... Что то с моими макросами видимо. Трудновато без файла примера( В чем может быть дело?
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, там и есть
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, Спасибо! Но почему то сразу ругается на
Код
WithEvents CB As CommandBars
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, пробовал всяко-разно... толи руки низко растут, толи голова не там))) где ошибка не пойму.
Может поможете? (прошу прощения - файл приложить нет возможности - корпоративный интернет)
Можно ли отображать определенную область листа с помощью VBA при прокрутке листа, VBA прокрутка
 
testuser, и всем форумчанам доброго дня! В сообщении 3# отличный код и пример, нашел прекрасное применение у себя в рабочих файлах, спасибо!!!
Прошу помочь в изменении кода под фигуру "Кнопка_подсказка".
Второй день сижу...
Менять размер фигуры в VBA
 
Sanja, Спасибо за помощь! Подсказка помогла, работает!
Менять размер фигуры в VBA
 
Sanja, прошу прощения, пример приложить нет возможности, т.к. корпоративный интеонет - скачать можно, выложить нельзя(((
На листе кнопка-фигура, на которой отображается информация из других книг (динамически привязана к активной ячейке).
Сейчас ее размер 2,96 х 9,42, если информация не "умещается" в кнопку, нажатием на нее размер изменится на 4,44 х 9,42. Подогнать размер под текст вариант не очень, "визуально не эстетично")))))
Менять размер фигуры в VBA
 
Sanja, добрый день! Наверное у меня рекордер сломан ;) .......
Может у кого есть идеи, как решить задачу?
Менять размер фигуры в VBA
 
Добрый день!
Подскажите, пожалуйста, как программно менять размер фигуры?
Отложить напоминание по времени
 
МатросНаЗебре, спасибо большое за оказываемую помощь!!!
Нашел код ввода даты и времени, может кому пригодится.
Хороших выходных!!!
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C5:C10000,E5:E10000,G5:G10000")) Is Nothing Then
        If Len(Target) = 5 Or Len(Target) = 6 Then
            If IsDate(Format(Target.Value, "00\/00\/00")) Then
                If Mid(Format(Target.Value, "00\/00\/00"), 4, 2) > 12 Then GoTo error_
                Application.EnableEvents = False
                Target = CDate(Format(Target.Value, "00\/00\/00"))
                Application.EnableEvents = True
                Else: GoTo error_
            End If
        ElseIf Len(Target) = 7 Or Len(Target) = 8 Then
            If IsDate(Format(Target.Value, "00\/00\/0000")) Then
                If Mid(Format(Target.Value, "00\/00\/0000"), 4, 2) > 12 Then GoTo error_
                Application.EnableEvents = False
                Target = CDate(Format(Target.Value, "00\/00\/0000"))
                Application.EnableEvents = True
                Else: GoTo error_
            End If
                Else: GoTo error_
        End If
        ElseIf Not Intersect(Target, Range("D5:D10000,F5:F10000,H5:H10000")) Is Nothing Then
            If Len(Target) = 3 Or Len(Target) = 4 Then
                If IsDate(Format(Format(Target.Value, "00:00"), "h:nn")) Then
                    Application.EnableEvents = False
                    Target = Format(Format(Target.Value, "00:00"), "h:nn")
                    Application.EnableEvents = True
                Else
                    Application.EnableEvents = False
                    Application.Undo
                    Application.EnableEvents = True
                End If
            End If
        End If
        Application.EnableEvents = True
        Exit Sub
error_:
        Application.EnableEvents = False
        Target = Empty ' Punto Switcher, гад, отмене мешает
'        Application.Undo
        Application.EnableEvents = True
    End Sub
Отложить напоминание по времени
 
Цитата
написал:
А так?
И в этом варианте всё равно время после применения кода Range("A1").Value = Range("A1").Value +5/24/60 слетает сначала на 00:01 и потом на 00:00
Отложить напоминание по времени
 
МатросНаЗебре, с этим вариантом  (до применения кода  Selection.Value = Range("A2").Value + 5 / 24 / 60)  ввожу в ячейку 12:00, меняется на 20:00, если 11:30 то 18-50 :sceptic:  
Изменено: evg_glaz - 22.09.2023 11:12:14
Отложить напоминание по времени
 
МатросНаЗебре, сбрасывает на 00:01. Модет потому, что время вводу с помощью кода (набором 4 цыфр)
Код
    Dim vVal 'Быстрый ввод времени в ячейку
    Dim StrVal As String
    If Not Intersect(Target, Range("A2:A5")) Is Nothing Then
        With Target
            vVal = Format(.Value, "0000")
            If IsNumeric(vVal) And Len(vVal) = 4 Then
                Application.EnableEvents = False
                .Value = Left(vVal, 2) & ":" & Right(vVal, 2)
                .NumberFormat = "hh:mm" '"[h]:mm"
            End If
        End With
     End If
     Application.EnableEvents = True
Изменено: evg_glaz - 21.09.2023 14:28:56 (Если вбить время в ячейку без применения этого кода (с вводом двоеточия руками), то минуты прибавляются.)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 13 След.
Наверх