Страницы: 1
RSS
VBA. Границы строк и столбцов
 
Добрый день всем!
Прошу помощи у тех, кто с макросами на ты, а не на вы...

Код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub
If ActiveCell.Row = 1 Then Exit Sub
If ActiveCell.Row = 2 Then Exit Sub

Dim r As Long
Dim str As String

If Target.Column = 1 Then
    str = Target.Value
    Application.EnableEvents = False
    
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A3:A" & r).ClearContents
    
    Target.Value = str
End If

  Application.EnableEvents = True
  
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("R3:R30")) Is Nothing Then
Range("D10").Select
End If

If Target.Count > 1 Then Exit Sub
If ActiveCell.Row = 1 Then Exit Sub
If ActiveCell.Row = 2 Then Exit Sub
    
Dim r As Long
    
Application.ScreenUpdating = False

    Cells.Font.Size = 11
    Cells.Font.Bold = False
    
    r = Cells(Rows.Count, 1).End(xlUp).Row
    Cells.Range("A3:S" & r).Interior.ColorIndex = 0
    
    Dim LastCol As Integer
    LastCol = Cells(3, Columns.Count).End(xlToRight).Column
            
    Target.EntireRow.Font.Size = 12
    Target.EntireRow.Font.Bold = True
    Target.EntireRow.Interior.ColorIndex = 46
    Cells(ActiveCell.Row, 3).Interior.ColorIndex = 6
    Cells(ActiveCell.Row, 1) = "*"
    
Application.ScreenUpdating = True
    
End Sub

Что требуется от кода:
1. При выборе любой ячейки в первом столбце проставляется символ "*", кроме 1 и 2 строк.
2. В первом столбце должен быть только один символ "*"
3. При выборе любой ячейки выделяется цветом и размером шрифта строка до колонки S.
4. Запретить пользователю выбор столбца R следующим образом: при выборе этого столбца выделение должно смещаться в столбец D.

Вопросы:

1. В этой части кода происходит очистка от предыдущего выделения
Код
    Cells.Font.Size = 11
    Cells.Font.Bold = False
Как ограничить Cells только до диапазона в котором введены данные? чтобы он не менял шрифт и жирность на всем листе, а нашел крайнюю правую нижнюю границу и только в этом диапазоне применил изменения

2. Как в этой части кода
Код
    Target.EntireRow.Font.Size = 12
    Target.EntireRow.Font.Bold = True
    Target.EntireRow.Interior.ColorIndex = 46
заменить entirerow таким образом, чтобы справа строка была ограничена столбцом S?

3. Как в этой части кода
Код
If Not Intersect(Target, Range("R3:R30")) Is Nothing Then
Range("D10").Select
End If
сменить диапазон R3:R30 на весь столбец? как изменить код, чтобы выделение переносилось в 4 столбец строки на которую нажал пользователь?

Буду рад любым предложениям по улучшению кода и ускорению его работы!

Заранее благодарю!
 
Название темы должно отражать суть вопроса.
Один вопрос - одна тема
 
Alemox, на всякий случай - если модераторы не пропустят, можно бан схлопотать. Надеюсь, уяснили?
Страницы: 1
Наверх