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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 19:55   #21
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

попробуйте так
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("D4:D500,E4:E500")) Is Nothing Then Exit Sub
With Application
        .ScreenUpdating = False: .Calculation = xlCalculationManual: .EnableEvents = False
End With

If Target.Column = 4 Then
    If Cells(Target.Row, 4).Value <> Cells(Target.Row, 1).Value Then MsgBox "Вы ввели неверный номер Покупателя", vbCritical, "Ошибка": GoTo Metka
    If Cells(Target.Row, 4).Value = Cells(Target.Row, 1).Value Then
        .....
    End If
Else
    ......
End If
Metka:
With Application
        .ScreenUpdating = True: .Calculation = xlCalculationAutomatic: .EnableEvents = True
End With
End Sub
nilem вне форума Ответить с цитированием
Старый 03.12.2012, 14:07   #22
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

В продолжение темы. Ситуацию с обработкой листа я вроде уладил. Но начинал-то я эту тему из-за того, что при ручном вводе информации на лист образуется сильный тормоз. В результате пошагового создания файла с нуля выяснилось, что тормоз образуется после подключения на другом листе формул ВПР2, ссылки в которых идут на этот лист. Код формулы
Код:
Function VLOOKUP2(Table As Range, SearchColumnNum As Integer, SearchValue As Variant, _
                n As Integer, ResultColumnNum As Integer)
    Dim i As Long, iCount As Long
    Dim avArr
    avArr = Table.Value
    For i = 1 To UBound(avArr, 1)
        If avArr(i, SearchColumnNum) = SearchValue Then
            iCount = iCount + 1
        End If
        If iCount = n Then
            VLOOKUP2 = avArr(i, ResultColumnNum)
            Exit For
        End If
    Next i
End Function
был взят http://programmersforum.ru/showthrea...ght=%C2%CF%D02. Не в первый раз сталкиваюсь с такой проблемой как оказывается. Причем, проблема тормоза ВПР2 возникает не понятно почему (для меня по крайней мере), но и пропадает тоже не могу ни с чем связать. Пытался уйти от использования этой функции, но альтернативы пока не нашел. Кстати, конструкция, предложенная как альтернатива в той теме http://programmersforum.ru/member.php?u=52800
Код:
=ИНДЕКС(Table;НАИМЕНЬШИЙ(ЕСЛИ(Ссылка_на_диапазон_для_поиска_значения=SearchValue;СТРОКА(Ссылка_на_диапазон_для_поиска_значения));n);ResultColumnNum)
не сработала почему-то (столбец F на листе Электронный счет). Посмотрите, пожалуйста, может что посоветуете.
Еще раз Спасибо!
Вложения
Тип файла: rar свежий.rar (38.0 Кб, 6 просмотров)
strannick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие элементы кода могут тормозить загрузку моего сайта? Pyatachok HTML и CSS 3 08.11.2012 23:05
При многократном использовании VBA-скрипта, он начинает тормозить :( bag Microsoft Office Excel 2 09.04.2010 16:15
Я стал папой Квэнди Свободное общение 43 01.01.2010 21:24
Система начинает тормозить Cotlean Свободное общение 7 28.09.2009 10:41
УРРРААААА!!! Я стал папой !!!! merax Свободное общение 33 28.05.2008 00:51