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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.05.2008, 14:53   #1
Диас
 
Регистрация: 12.05.2008
Сообщений: 3
По умолчанию Не дать сохранит файл при условии

Здравствуйте. Имеется файл EXCEL. Как можно сделать его же средствами так, чтобы если заполнил столбец НАИМЕНОВАНИЕ, но забыл вбить ЦЕНУ, пользователь не смог сохранить этот файл???
Диас вне форума
Старый 12.05.2008, 14:58   #2
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Лампочка

Событие
Workbook_BeforeSave
, проверка всего, что надо проверить, и если что-то не так -
Cancel = True
дмидми вне форума
Старый 12.05.2008, 15:25   #3
Диас
 
Регистрация: 12.05.2008
Сообщений: 3
По умолчанию

Это я так понял если я работаю с файлом через скажем Дельфи. А мне надо средствами самого же Excel'a. Или тут тоже есть события?
Диас вне форума
Старый 12.05.2008, 15:32   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

События те же - средства обработки другие.

"Тут Вам не Англия, тут надо глубже копать..."
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 12.05.2008, 16:06   #5
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Радость Или тут их - таки да! - есть

Цитата:
Сообщение от Диас Посмотреть сообщение
Это я так понял если я работаю с файлом через скажем Дельфи. А мне надо средствами самого же Excel'a. Или тут тоже есть события?
Дельфи в данном случае категорически ни при чём.
Это - если Вы хотите использовать именно средства самого Excel'я.

Входите (в VBE) в модуль "Эта книга", из комбобокса вверху слева выбираете объект Workbook, из комбобокса вверху справа - событие BeforeSave, и - вперёд, за орденами!
Как запретить сохранение, я Вам уже написал.
дмидми вне форума
Старый 12.05.2008, 16:19   #6
Диас
 
Регистрация: 12.05.2008
Сообщений: 3
По умолчанию

Большое спасибо!!! Получилось что-то вроде этого:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim i As Integer
For i = 1 To Лист1.UsedRange.Rows.Count
If Лист1.Range("A" & i).Value = "123" And Лист1.Range("B" & i).Value = "123" Then Cancel = True
Next i
If Cancel Then MsgBox ("safsdf")
End Sub

Вдруг кому пригодится )
Диас вне форума
Старый 12.05.2008, 18:59   #7
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Подмигивание Да-да, что-то вроде

Код:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim r As Range, ur As Range
    With Лист1
        Set ur = Intersect(.UsedRange, .Range("A:B"))
    End With
    If Not ur Is Nothing Then
        If ur.Columns.Count = 2 Then
            For Each r In ur.Rows
                If r.Cells(1, 1) = "123" Then
                    If r.Cells(1, 2) = "123" Then
                        MsgBox ("safsdf")
                        Cancel = True
                        Exit For
                    End If
                End If
            Next
        End If
    End If
End Sub
Цитата:
Сообщение от Диас Посмотреть сообщение
Вдруг кому пригодится
дмидми вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как не дать разъединиться с Инетом Crazyman Работа с сетью в Delphi 2 04.03.2008 00:12
DBGridEh+EditMask при условии. Jenya БД в Delphi 1 03.03.2008 13:58
Проблема в условии.. POPOV Общие вопросы C/C++ 6 25.12.2007 13:39
Ошибка в условии запроса boks SQL, базы данных 4 25.10.2007 10:43
TWebBrowser-как перехватить команду скрипта для закрытия окна и не дать ему закрыться Вовик Компоненты Delphi 5 03.10.2007 12:17