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

Страницы: 1 2 3 След.
Удаляется условное форматирование при выполнении макроса
 
Karataev,  меня тоже заинтересовал ваш вариант подсветки активной строки, но у меня возникает ошибка "application-defined or object-defined error 1004" в макросе "Private Sub Установить_заливку(CrossRange As Range)"
If objFormCond.Type = xlExpression Then 'application-defined or object-defined error
If objFormCond.Formula1 = "=1" Then 'application-defined or object-defined error
Не подскажите, что вызывает ошибку? У меня Excel 2007
Код
Private Sub Установить_заливку(CrossRange As Range)
    Dim objFormCond As Object, i As Long
    For i = Me.Cells.FormatConditions.Count To 1 Step -1
        Set objFormCond = Me.Cells.FormatConditions(i)
        If objFormCond.Type = xlExpression Then 'application-defined or object-defined error
            If objFormCond.Formula1 = "=1" Then 'application-defined or object-defined error
                objFormCond.ModifyAppliesToRange CrossRange
                Exit For
            End If
        End If
    Next
End Sub
Изменено: sashgera - 06.12.2021 15:38:21
Правило условного форматирования макросом (заливка строки и столбца)
 
New,
Цитата
sashgera написал:
.FormatConditions.Delete в условии не подходит, так как не будет возможности отмены действий на листе (Ctrl+Z)
Правило условного форматирования макросом (заливка строки и столбца)
 
Здравствуйте
Сделал подсветку строки и столбца через условное форматирование
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim WorkRange As Range
    'адрес рабочего диапазона подсветки
    Set WorkRange = Range("A4:M35")
    'если активная ячейка в рабочем диапазоне и нет УФ: добавить УФ
    If WorkRange.Address = Union(WorkRange, ActiveCell).Address And ActiveCell.FormatConditions.Count = 0 Then
        i = ActiveCell.Address(0, 0)
        MyFormula = "=ИЛИ(И(ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));И(ЯЧЕЙКА(""строка"")<>СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")=СТОЛБЕЦ(" & i & ")))"
        WorkRange.FormatConditions.Add Type:=xlExpression, Formula1:=MyFormula
        WorkRange.FormatConditions(WorkRange.FormatConditions.Count).SetFirstPriority
        With WorkRange.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 5296274
            .TintAndShade = 0
        End With
        WorkRange.FormatConditions(1).StopIfTrue = False
    End If
    ActiveCell.Calculate
End Sub
Пожалуйста, помогите изменить формулу:
Код
"=ИЛИ(И(ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));И(ЯЧЕЙКА(""строка"")<>СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")=СТОЛБЕЦ(" & i & ")))"
- если активная ячейка вне рабочего диапазона - убрать цвет заливки подсветки
- при выделении более одной ячейки - убрать цвет заливки подсветки
- выделенная строка (клик по ее номеру) - подсвечена полностью в пределах рабочего диапазона
- подсвечивать не весь столбец, а только его четвертую ячейку сверху

.FormatConditions.Delete в условии не подходит, так как не будет возможности отмены действий на листе (Ctrl+Z)
Исключить из диапазона скрытые столбцы
 
Александр П., спасибо!!!
Исключить из диапазона скрытые столбцы
 
Здравствуйте
В диапазоне "CH:DE,DF:EC", есть несколько скрытых столбцов
как их найти и исключить из диапазона
Код
Range("CH:DE,DF:EC").ColumnWidth = 6
всем столбцам в диапазоне делаем ширину 6, кроме скрытых столбцов
По ключевому слову изменить значение ячеек
 
Mershik, спасибо! теперь все OK
По ключевому слову изменить значение ячеек
 
Kuzmich, большое спасибо!
По ключевому слову изменить значение ячеек
 
Здравствуйте
Нужно по столбцу 'C' найти ячейки со словом 'полный' и в ячейках со смещением вправо прибавить к текущей сумме 1000.
Если в ячейках (которые со смещением) пусто или не цифра - то пропускать их.
Код
Sub полный()
Set Rng = Columns("C:C").Find("полный")

Rng.Offset(, 4) = Round(Rng.Offset(, 4) + 1000)
Rng.Offset(, 5) = Round(Rng.Offset(, 5) + 1000)

End Sub
Изменить цвет текста определенных символов
 
Андрей VG, Ігор Гончаренко, большое спасибо!
Изменить цвет текста определенных символов
 
Здравствуйте, помогите пожалуйста, с макросом, нужно найти в выделенном диапазоне определенные символы: * - + ? /
и в найденном изменить цвет текста на красный
Определить цвет заливки активной ячейки
 
RAN, спасибо!
Определить цвет заливки активной ячейки
 
Здравствуйте
Так я определяю цвет заливки активной ячейки
Код
Sub ОпределитьЦветЗаливкиАктивнойЯчейки()
    MsgBox ActiveCell.Interior.Color
End Sub
MsgBox показывает цвет заливки ячейки в Interior.Color
Как вместо Interior.Color получить цвет активной ячейки в RGB?
Изменить на листе цвет заливки
 
Юрий М, понятно, спасибо
Изменить на листе цвет заливки
 
Код
Sub НайтиБелыйЦветЗаливки()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Cells
    If rng.Interior.ThemeColor = xlThemeColorDark1 And rng.Interior.TintAndShade = 0 Then
        MsgBox "цвет заливки: (Белый, Фон 1) " & rng.Address(0, 0)
        rng.Interior.ThemeColor = xlNone
        MsgBox "цвет заливки: Нет заливки"
    End If
Next rng
End Sub

кажется так работает
Изменено: sashgera - 27.09.2020 01:43:06
Изменить на листе цвет заливки
 
Юрий М, да, так работает, но хотелось бы перед заменой заливки, посмотреть в каком месте листа будет происходить замена: MsgBox "цвет заливки: (Белый, Фон 1) " & rng.Address(0, 0)
только MsgBox реагирует и на белый цвет и на все остальные ячейки без заливки

?activecell.Interior.Color
16777215 -это Белый, Фон 1
?activecell.Interior.Color
16777215 -а здесь ячейка без заливки
как я уже писал выше, запись макроса показывает такой код при заливке ячейки (Белый, Фон 1)
Код
Sub Макрос1()
With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
End Sub
как можно это использовать в макросе? моих знаний не хватает..
и вот тестовый фал
Изменено: sashgera - 27.09.2020 01:21:54
Изменить на листе цвет заливки
 
Юрий М, тогда цвета (Белый, Фон 1) и (Белый, Фон 1, более темный оттенок 5%) макрос не различает
Изменить на листе цвет заливки
 
Здравствуйте
Нужно найти на листе диапазоны с заливкой (Белый, Фон 1) и изменить на Без заливки
(у меня excel 2007)
Так конечно не получается:
Код
Sub НайтиБелыйЦветЗаливки()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Cells
If rng.Interior.ThemeColor = xlThemeColorDark1 Then
    MsgBox "цвет заливки: Белый, Фон 1"
    rng.Interior.ThemeColor = xlNone
    MsgBox "цвет заливки: Нет заливки"
End If
Next rng
End Sub
если при записи макроса вручную делать цвет заливки (Белый, Фон 1):
Код
'цвет заливки: Белый, Фон 1
With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
    
'цвет заливки: Нет заливки
With Selection.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
Пожалуйста, помогите поправить макрос
Узнать ширину окна без учета полосы прокрутки
 
sokol92, не подскажите, как узнать ширину заголовка строк? Так не получается
Код
Sub Test()
  Dim n As Double
  With ActiveWindow
    n = .UsableWidth
    .DisplayHeadings = False
    Debug.Print "Ширина заголовка строк ", .UsableWidth - n
    .DisplayHeadings = True
  End With
End Sub
Изменено: sashgera - 14.09.2020 22:06:17
Узнать ширину окна без учета полосы прокрутки
 
sokol92, спасибо
Узнать ширину окна без учета полосы прокрутки
 
Юрий М, спасибо, в стандартном модуле получилось, получил ширину 17, это в пикселях или точках?
Узнать ширину окна без учета полосы прокрутки
 
Здравствуйте
Мне нужно узнать ширину окна без учета полосы прокрутки
так, получаю ширину окна с учетом прокрутки
Код
Set w = ActiveWindow
MsgBox w.Width

Теперь нужно узнать ширину полосы прокрутки, что бы вычесть ее от ширины окна

Нашел на форумах такое решение:

Код
Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Public Const SM_CXVSCROLL = 2
Sub ShowVScrollWidth()
    Dim lVScrollWidth As Long
    lVScrollWidth = GetSystemMetrics32(SM_CXVSCROLL)
    MsgBox lVScrollWidth
End Sub

Макрос разместил в модуле 'ЭтаКнига'
Но выдается ошибка:
Compile error: Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules
Вывести автосумму вверху таблицы
 
New, Юрий М, большое спасибо!
Вывести автосумму вверху таблицы
 
Здравствуйте
Так получаю автосумму столбца "B"
Код
Sub Макрос1()
last_cell = Cells(Rows.Count, 1).End(xlUp).Row
Range("B" & last_cell).FormulaR1C1 = "=SUM(R3C:R[-1]C)"
End Sub
Подскажите, пожалуйста, как дополнительно показать автосумму столбца "B" в ячейке "B1"?
пример во вложении
Десятичные знаки при использовании числа в тексте
 
gling, спасибо, все OK
Код
="Всего наименований "&A1&","&" на сумму "&ТЕКСТ(B1;"0,00")&" руб."
Изменено: sashgera - 01.07.2019 00:41:51
Десятичные знаки при использовании числа в тексте
 
Здравствуйте
при использовании амперсанда нет десятичных знаков, формат ячейки указан числовой
как сделать, что бы были десятичные знаки?
Код
="Всего наименований "&A1&","&" на сумму "&B1&" руб."
Вставить текст в последнюю ячейку столбца
 
Ігор Гончаренко, большое спасибо!
Вставить текст в последнюю ячейку столбца
 

Здравствуйте

Помогите с макросом

Нужно найти последнюю заполненную строку в столбце "A" и вставить текст в ячейку этой строки столбца "C"

Скрытие строк со значением ноль, медленно скрываются строки
 
Jack Famous, все скрывается/открывается молниеносно! Большое спасибо!!!
Скрытие строк со значением ноль, медленно скрываются строки
 
Jack Famous, спасибо, но такой вариант мне не подойдет, нужно именно с A3 и до последней заполненной ячейки столбца A
Скрытие строк со значением ноль, медленно скрываются строки
 
Цитата
Jack Famous написал:
поняли уже, что нужно поменять?
нет, не понял
нужно:
1. Смотрю диапазон с А3 и до конца последней заполненной ячейки столбца А
2. Выделяю в этом диапазоне пустые ячейки или ячейки с цифрой 0 или ячейки с формулой, значение которой 0
3. Скрываю строки, ячейки которых выделил
Страницы: 1 2 3 След.
Наверх