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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2013, 10:48   #1
Leeroy
 
Регистрация: 18.02.2013
Сообщений: 4
По умолчанию макрос защиты от ошибки

Добрый день, гуру. Передо мной встала задача, в которой я не совсем компетентен, по-этому прошу вашей помощи. Есть макрос, который копирует лист из книги эксель в новую книгу, вот он:

' SendStandPlus2LP Макрос
' Копирование графика "Равномерный" в новую книгу с убиением формул, для отправки Лизингополучателю электронно.
'

'
Sheets("ГрафикРавномерн").Select
Sheets("ГрафикРавномерн").Copy
Cells.Select
Range("A7").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1:G1").Select
Sheets("ГрафикРавномерн").Select
Sheets("ГрафикРавномерн").Name = "Равномерный"

Встала задача прикрутить к нему "защиту от дурака", т.е. добавить правило: Если ЛП!I23>ЛП!E16 то выскакивает сообщение "Покупка денег дороже продажи, продолжить?" и кнопки "да" "нет".
Не думаю, что это очень сложная задача, но мне, как человеку, не являющимся програмистом это сделать довольно сложно. Прошу вашей помощи и заранее благодарен.
Leeroy вне форума Ответить с цитированием
Старый 06.11.2013, 10:59   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Что-то не вижу связи между кодом и вопросом...
Ну а код можно чуть пооптимизироавать:

Код:
    Sheets("ГрафикРавномерн").Copy
    With ActiveSheet
        .UsedRange.Value = .UsedRange.Value
        .Name = "Равномерный"
    End With
Хотя может быть...
Код:
    With Sheets("ЛП")
        If [I23] > [E16] Then
            If MsgBox("Покупка денег дороже продажи, продолжить?", vbYesNo) = 7 Then Exit Sub
        End If
    End With

    Sheets("ГрафикРавномерн").Copy
    With ActiveSheet
        .UsedRange.Value = .UsedRange.Value
        .Name = "Равномерный"
    End With
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.11.2013 в 11:15.
Hugo121 вне форума Ответить с цитированием
Старый 06.11.2013, 11:08   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Если ЛП это у Вас имя листа (я так понял) то вставьте в начале Вашего кода (или в любом нужном месте) вот это
Код:
If Sheets("ЛП").Range("I23").Value > Sheets("ЛП").Range("I16").Value Then
        Select Case MsgBox("Покупка денег дороже продажи, продолжить?", vbYesNo Or vbExclamation Or vbDefaultButton1, "ВНИМАНИЕ")
        Case vbNo
            Exit Sub
        End Select
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 06.11.2013, 11:26   #4
Leeroy
 
Регистрация: 18.02.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Что-то не вижу связи между кодом и вопросом...
Ну а код можно чуть пооптимизироавать:

Код:
    Sheets("ГрафикРавномерн").Copy
    With ActiveSheet
        .UsedRange.Value = .UsedRange.Value
        .Name = "Равномерный"
    End With
Хотя может быть...
Код:
    With Sheets("ЛП")
        If [I23] > [E16] Then
            If MsgBox("Покупка денег дороже продажи, продолжить?", vbYesNo) = 7 Then Exit Sub
        End If
    End With

    Sheets("ГрафикРавномерн").Copy
    With ActiveSheet
        .UsedRange.Value = .UsedRange.Value
        .Name = "Равномерный"
    End With
Спасибо огромное, вы сэкономили мне пару дней работы
Leeroy вне форума Ответить с цитированием
Старый 06.11.2013, 12:08   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Советую взять msgbox от Виктора - посолиднее
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для защиты ячеек по наличии в них данных ru3000 Microsoft Office Excel 16 16.10.2022 22:14
Игра - викторина. Ошибки, ошибки, ошибки!.. three_cats Общие вопросы C/C++ 1 27.10.2012 21:47
Макрос - проверка на ошибки MaxxVer Microsoft Office Excel 12 16.08.2012 14:30
[Вопрос] Макрос для проверки столбцов на ошибки ShowMeYourStyle Microsoft Office Excel 1 04.07.2011 19:47
Макрос по авто сохранению данных в формат CSV, где ошибки? TKinfront Microsoft Office Excel 0 21.03.2011 21:35