Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 15:46   #11
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Ну так замените строку
Код:
If Target.Address <> [A1].Address Then Exit Sub
на строку
Код:
If Target.Row < 10 Or Target.Interior.ColorIndex <> 36 Then Exit Sub
EducatedFool вне форума Ответить с цитированием
Старый 10.12.2009, 16:19   #12
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

а что делать если такие ячейки:
Код:
    Dim li As Long, le As Long, lii As Long, lee As Long
    le = cells(9, Columns.Count).End(xlToLeft).Column
    lee = cells(Rows.Count, 3).End(xlUp).Row
        For lii = 10 To lee
            For li = 5 To le - 3
                If cells(lii, li).Interior.ColorIndex = 36 Then
                    cells(lii, li) = .................................................
                    cells(lii, le) = ...............................................
                End If
            Next li
        Next lii
cells(lii, li) = ................................... ..............
cells(lii, le) = ................................... ............
вот эти ячейки
Артур Иваныч вне форума Ответить с цитированием
Старый 10.12.2009, 19:03   #13
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

в том то и дело что сложность для меня во всех этих условиях и циклах
а хочется "историю" дать конкретным ячейкам в таблице...
Артур Иваныч вне форума Ответить с цитированием
Старый 10.12.2009, 19:12   #14
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
в том то и дело что сложность для меня во всех этих условиях и циклах
А кто Вас заставляет делать все эти условия и циклы???
Вы сами всё усложняете...

Выделите ячейки, историю которых надо изменять, присвойте выделенному диапазону имя, а потом проверяйте, попадает ли ячейка в именованный диапазон (одна строка кода)
EducatedFool вне форума Ответить с цитированием
Старый 10.12.2009, 21:28   #15
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

хм
попробую
Артур Иваныч вне форума Ответить с цитированием
Старый 10.12.2009, 21:45   #16
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Так рассуждаем значит:
If Target.Row < 10 Or Target.Interior.ColorIndex <> 36 Then Exit Sub
определяет все ячейки страницы с 10ой строки и до конца листа и только жёлтые
хм...у меня видимо недостаток значий
а как задать цикл(диапазон определённых ячеек)?? ведь мне нужно столбцы от 5го до (Cells(9, Columns.Count).End(xlToLeft).Column - 3) - то есть до предпредпоследнего

Последний раз редактировалось Артур Иваныч; 10.12.2009 в 21:55.
Артур Иваныч вне форума Ответить с цитированием
Старый 10.12.2009, 22:03   #17
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Код:
    If Target.Row < 10 Or Target.Interior.ColorIndex <> 36 Then Exit Sub
    If Target.Column > 5 Or Target.Column < le - 3 Then Exit Sub
но когда пишу так:
If Target.Column > 5 Or Target.Column < le - 3 And Target.Column <> le Then Exit Sub
не работает(
Артур Иваныч вне форума Ответить с цитированием
Старый 11.12.2009, 09:37   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
If Target.Column > 5 Or Target.Column < le - 3 And Target.Column <> le Then Exit Sub
Какая-то нелепая запись.
Во-первых, если Target.Column < le - 3, то этого уже достаточно, чтобы было Target.Column <> le.
Во-вторых, под условие If Target.Column > 5 Or Target.Column < le - 3 подойдет, например, 1-й столбец. Ведь он же меньше, чем le - 3, а операнд у Вас ИЛИ.
Лучше объясните словами, какие ячейки и по каким признакам Вам нужно определить.
И еще. Иногда, лучше написать условия, при которых нужно выполнять процедуру, а не те, при которых делать Exit Sub. Например:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If [условие] Then
        'Ваши действия
    End If
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.12.2009, 15:01   #19
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Код:
Application.ScreenUpdating = False
    Dim li As Long, le As Long, lii As Long, lee As Long
    le = Cells(9, Columns.Count).End(xlToLeft).Column
    If Target.Row < 10 Or Target.Interior.ColorIndex <> 36 Then Exit Sub
    If Target.Column > 4 Or Target.Column < le - 3 And Target.Column = le Then
    Dim comm As String, s As String, i As Integer
    With Target
        On Error Resume Next: comm = .Comment.Text: .Comment.Delete: On Error GoTo 0: .AddComment
        a = Split(comm, Chr(10))
        If UBound(a) > 9 Then
            For i = LBound(a) + 1 To UBound(a): s = s & a(i) & Chr(10): Next
            .Comment.Text Text:=Left$(s, Len(s) - 1) & Target & " : " & "До периода " & Now & Chr(10)
        Else
            .Comment.Text Text:=comm & Target & " : " & "До периода " & Now & Chr(10)
        End If
        .Comment.Shape.TextFrame.AutoSize = True
    End With
    End If
спасибо)))
Артур Иваныч вне форума Ответить с цитированием
Старый 11.12.2009, 15:02   #20
Артур Иваныч
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 138
По умолчанию

Спасибо Ребята!
Эта вещь мне очень нужна была))
Артур Иваныч вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смещение ячеек Zulius Microsoft Office Excel 3 26.11.2009 12:30
макрос - подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-» Vadim_abs Microsoft Office Excel 36 14.07.2009 12:08
суммирование ячеек =) peq Microsoft Office Excel 3 08.05.2009 13:24
Изменение ячеек защищённого листа Slim Microsoft Office Excel 3 07.02.2007 22:28