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

Страницы: 1
Правило условного форматирования макросом (заливка строки и столбца)
 
Здравствуйте
Сделал подсветку строки и столбца через условное форматирование
Код
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, кроме скрытых столбцов
По ключевому слову изменить значение ячеек
 
Здравствуйте
Нужно по столбцу '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
Изменить цвет текста определенных символов
 
Здравствуйте, помогите пожалуйста, с макросом, нужно найти в выделенном диапазоне определенные символы: * - + ? /
и в найденном изменить цвет текста на красный
Определить цвет заливки активной ячейки
 
Здравствуйте
Так я определяю цвет заливки активной ячейки
Код
Sub ОпределитьЦветЗаливкиАктивнойЯчейки()
    MsgBox ActiveCell.Interior.Color
End Sub
MsgBox показывает цвет заливки ячейки в Interior.Color
Как вместо Interior.Color получить цвет активной ячейки в RGB?
Изменить на листе цвет заливки
 
Здравствуйте
Нужно найти на листе диапазоны с заливкой (Белый, Фон 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
Пожалуйста, помогите поправить макрос
Узнать ширину окна без учета полосы прокрутки
 
Здравствуйте
Мне нужно узнать ширину окна без учета полосы прокрутки
так, получаю ширину окна с учетом прокрутки
Код
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
Вывести автосумму вверху таблицы
 
Здравствуйте
Так получаю автосумму столбца "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"?
пример во вложении
Десятичные знаки при использовании числа в тексте
 
Здравствуйте
при использовании амперсанда нет десятичных знаков, формат ячейки указан числовой
как сделать, что бы были десятичные знаки?
Код
="Всего наименований "&A1&","&" на сумму "&B1&" руб."
Вставить текст в последнюю ячейку столбца
 

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

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

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

Скрытие строк со значением ноль, медленно скрываются строки
 
Здравствуйте
Есть макрос, при выполнении которого скрываются строки со значением 0 или пустые в столбце "A"
Скрытие строк, как мне кажется, происходит медленно. Пожалуйста, помогите, если это возможно, оптимизировать макрос.
Во вложении - тест, в реальности на листе данных гораздо больше.
Код
Sub кмк_скрыть_строки_наличие_0()
 Application.ScreenUpdating = False 'отключение обновление экрана
 Dim c As Range
 LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'последняя заполненная строка в столбце "A"
 For Each c In Range(Cells(3, 1), Cells(LastRow, 1)) 'выбор с 3 до последней заполненной строки, столбца "A"
 If c = 0 Then 'сравнение с нулем
 c.EntireRow.Hidden = True 'скрыть строки с нулем
 ActiveSheet.Shapes("Прямоугольник 4").ZOrder msoBringToFront 'кнопка "показать скрытые строки" на передний план
 End If
 Next
 Application.ScreenUpdating = True 'включение обновление экрана
End Sub


Изменить цвет текста
 
Здравствуйте
Пожалуйста, помогите написать макрос
Нужно в столбце "B", начиная с 4 строки и до конца таблицы, найти цвет текста "Красный" и заменить на серый (Белый, Фон 1, более темный оттенок 35%)
Подобное форматирование средствами Excel не подойдет, т.к. очень часто приходится делать
Удалить часть символов в ячейке столбца
 
Здравствуйте
Пожалуйста, помогите, как при помощи макроса в ячейках столбца B первые четыре символа оставить, остальные удалить.
Поставить в ячейках столбца метку по условию
 
Здравствуйте
В ячейках столбца A есть еврокод (набор цифр и латинских букв), например: 5252RV.
Помогите, пожалуйста, сделать следующее:
поставить в ячейках столбца C знак "+", при условии, если в ячейках столбца A есть латинская буква "V"
Найти значение выше порогового и прибавить к нему 3000
 
Здравствуйте
Подскажите, пожалуйста, как  можно сделать следующее:
найти в определенном столбце числа, значения которых 2600 и выше и прибавить к ним 3000
Измененные числа выделить красным цветом.

например:
2600+3000=5600
2700+3000=5700
Изменено: sashgera - 11.09.2016 20:07:09
Округлить число до сотен
 
Здравствуйте
подскажите, пожалуйста, как с момощью макроса можно округлить все числа в определенном столбце до сотен
например,
если число 2140, то округлить в меньшую сторону до 2100
если число 2160, то округлить в большую сторону до 2200
если число 2150, то округлить в большую сторону до 2200
Проверка на пропущенное число
 
Здравствуйте
в столбце B есть числа от 300 до 800 (числа не по порядку)
пожалуйста, подскажите, как макросом сделать проверку на пропущенное число и вывести пропущенные числа в MsgBox
Изменено: sashgera - 23.06.2016 11:48:47
Цвет ячейки в зависимости от директории файла
 
Здравствуйте
При открытии книги в ячейке выводится полный путь до директории этого файла
Код
Private Sub Workbook_Open()
Cells(1, 1).Value = ThisWorkbook.Path & "\" & ThisWorkbook.Name
End Sub
Пожалуйста, подскажите как сделать проверку - если в пути
C:\Users\vasya\Desktop\папка1\Книга2.xlsm
будет - папка1
то закрасить ячейку A:1 красным цветом, если такой папки в пути файла нет - ячейку A:1 оставить без заливки цветом
Удаление строк таблицы по условию
 
Здравствуйте
Есть макрос, который удаляет строки, если в столбце 'B' имеются числа от 0 до 100

Код
Sub Макрос22()
Dim sh As Worksheet, i As Long
Set sh = Sheets("Лист1")
With sh.UsedRange.Columns(2)
     For i = .Rows.Count To 1 Step -1
         With .Cells(i)
             If 0 <= CLng(Trim$(.Value)) And CLng(Trim$(.Value)) <= 100 Then .EntireRow.Delete
         End With
     Next i
End With
End Sub
 

Помогите, пожалуйста, изменить код макроса, что бы строки удалялись, начиная со строки  'B2' и до последней активной ячейки этого столбца (строки в таблице добавляются/удаляются).
Если в ячейке вместо числа имеется знак № – то строку не удалять
..и как все сделать наоборот: не удалять строки, если в ячейках числа от 0 до 100, а остальные удалить. Если в ячейке вместо числа имеется знак № – то строку не удалять
Прокрутка до именованной ячейки
 
В таблице более 1000 строк и строки постоянно добавляются, в шапке таблицы несколько кнопок для быстрого перехода по ней, на кнопке макрос типа:
Код
Range(Names("test")).Select

При выполнении макроса, прокрутка до именованной ячейки "test" происходит на середину экрана.
Если так:
Код
Range(Names("test")).Select
ActiveWindow.SmallScroll Down:=18

то при изменении размера окна (например, сделать окно меньше), именованная ячейка прокручивается выше видимого экрана.
Что можно изменить в макросе, чтобы при его выполнении ячейка "test" ВСЕГДА была вверху экрана. Помогите, плиз
Изменено: sashgera - 02.02.2013 02:14:55
вывод MsgBox на несколько компов
 
Здравствуйте.  
В сетевой папке лежит файл test.xlsm, в течение рабочего дня этот файл открыт на нескольких компах, но когда необходимо заменить его копированием, приходится орать на весь офис, чтобы его закрыли. Как вывести на мониторы всех компов MsgBox "закройте файл"  
Пробовал так:  
Sub test()  
MsgBox "закройте файл",    
End Sub  
и  
Sub start_test()  
Application.Run "'\\shareddocs\папка-тест\test.xlsm'!Module1.test "  
End Sub  
При выполнении макроса start_test с моего компа, MsgBox "закройте файл" виден только на моем компе, а надо, чтобы на всех.
Страницы: 1
Наверх