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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2012, 10:46   #1
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию Макрос - проверка на ошибки

Добрый день, уважаемые! Прошу Вашей помощи в создании макроса. Конечный макрос я допишу сам (хоть я и полный ноль в этом, но учиться
надо...), а Вас прошу создать по моему описанию упрощенный макрос, в качестве примера (болванки) для меня. Читая книги по ВБА, дело движется очень медленно и многое не понятно...
Описание (на основе файла во вложении):
При начатии кнопки запускается макрос.
1) Задаем диапазон - по строкам со строки 10 до строки с текстом "Итого", по столбцам - с певого по "К";
2) Условие1: если в вышеуказанном диапазоне есть отрицательные значения, то в текстовом поле формы написать "Ошибка - отрицательное
значение".
3) Условие2: если в вышеуказанном диапазоне есть пустые ячейки, то в текстовом поле формы написать "Данные заполнены не полностью по проектам: (сюда вывести через запятую, названия из столбца А, соответствующие строкам диапазона где найдены пустые ячейки)".
4) Условие3: Если значение ячейки 1 (стоящей на пересечении строки с текстом "Итого" и столбца F) больше чем значение ячейки 2 (стоящей на пересечении строки с текстом "Итого" и столбца E) - добавить текст в поле формы "Ошибка2".
Заранее огромное спасибо!
Вложения
Тип файла: rar Проверка1.rar (12.4 Кб, 19 просмотров)
MaxxVer вне форума Ответить с цитированием
Старый 15.08.2012, 12:33   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Private Sub CommandButton1_Click()
    With Worksheets(1)
        With .Range("A10:A" & .Rows.Count)    'диапазон для поиска значений
            Set itogoRng = .Find(What:="итого", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If itogoRng Is Nothing Then     'если значение не найдено
                Me.TextBox1.Text = "Нет ИТОГО!": Exit Sub
            End If
        End With
        Set workRng = .Range(.[A11], .Range("K" & itogoRng.Row))

        If Application.Min(workRng) < 0 Then Me.TextBox1.Text = "Ошибка - отрицательное значение ": Exit Sub
        For Each rr In workRng.Rows
            If Application.CountBlank(rr) > 0 Then txt = txt & ", " & rr.Cells(1, 1).Value
        Next
        If Len(txt) Then Me.TextBox1.Text = "Данные заполнены не полностью по проектам: " & Mid(txt, 3)
        If .Range("F" & itogoRng.Row) > .Range("E" & itogoRng.Row) Then Me.TextBox1.Text = Me.TextBox1.Text & IIf(Len(txt), vbNewLine, "") & "Ошибка2"
    End With
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 15.08.2012, 13:02   #3
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Спасибо, но ничего не происходит, debug ругается "invalid use of Me keyword"... Не понимаю что ему не нравиться... Excel у меня 2010, может в этом дело...
MaxxVer вне форума Ответить с цитированием
Старый 15.08.2012, 13:07   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Пишите вместо Me UserForm1 - у меня оба варианта работают.

Ещё забыл упомянуть - текстбоксу в свойствах поставьте MultiLine=True - так удобнее
Можно это задать по нажатию кнопки - но правильнее установить вручную.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 15.08.2012 в 13:11.
Hugo121 вне форума Ответить с цитированием
Старый 15.08.2012, 13:18   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте..
Вложения
Тип файла: rar Проверка1.rar (15.6 Кб, 38 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 15.08.2012, 13:48   #6
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

я через лист бокс предложу
Вложения
Тип файла: rar Проверка1.rar (17.8 Кб, 21 просмотров)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 15.08.2012, 14:28   #7
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Вариант Hugo121 так и не заработал, а варианты Казанский и staniiislav работают. Спасибо всем Вам огромное!
Не сочтите за наглость, подскажите пожалуйста еще, как добавить возможность выбора книги с диска, по которой будет проведен анализ этим макросом?
MaxxVer вне форума Ответить с цитированием
Старый 15.08.2012, 15:12   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Поищите по GetOpenFileName или FileDialog
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 15.08.2012, 15:32   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как добавить возможность выбора книги с диска
Вбить вопрос в Яндекс или гугл вам религия не позволяет?

http://excelvba.ru/code/GetFileOrFolderPath
(одна из самых читаемых статей на моём сайте)
EducatedFool вне форума Ответить с цитированием
Старый 15.08.2012, 15:43   #10
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Спасибо за инфу. Я не религиозный :-)
MaxxVer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Вопрос] Макрос для проверки столбцов на ошибки ShowMeYourStyle Microsoft Office Excel 1 04.07.2011 19:47
Макрос по авто сохранению данных в формат CSV, где ошибки? TKinfront Microsoft Office Excel 0 21.03.2011 21:35
Проверка условия. Поправить макрос kzld Microsoft Office Excel 14 27.05.2010 06:49
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51