Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Очищать ячейку по условию - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очищать ячейку по условию (Макросы/Sub)
Очищать ячейку по условию
monstr_ork Дата: Четверг, 05.04.2018, 11:17 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте форумчане.
Подскажите пожалуйста, можно ли поставить на ячейку условие, что при закрытии файла она не сохраняется. Т.е. на файл в целом это не распространяется.
Это мне нужно для того, что бы вводить туда значения, но оно мне важно только пока файл открыт.
 
Ответить
СообщениеЗдравствуйте форумчане.
Подскажите пожалуйста, можно ли поставить на ячейку условие, что при закрытии файла она не сохраняется. Т.е. на файл в целом это не распространяется.
Это мне нужно для того, что бы вводить туда значения, но оно мне важно только пока файл открыт.

Автор - monstr_ork
Дата добавления - 05.04.2018 в 11:17
sboy Дата: Четверг, 05.04.2018, 11:18 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2105
Репутация: 604 ±
Замечаний: 0% ±

Excel 2010
Можно очищать эту ячейку перед сохранением/закрытием книги
 
Ответить
СообщениеМожно очищать эту ячейку перед сохранением/закрытием книги

Автор - sboy
Дата добавления - 05.04.2018 в 11:18
monstr_ork Дата: Четверг, 05.04.2018, 11:54 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
sboy, вручную? это не подходит. Если вы имеете что то другое, то могли бы Вы более подробно написать?
 
Ответить
Сообщениеsboy, вручную? это не подходит. Если вы имеете что то другое, то могли бы Вы более подробно написать?

Автор - monstr_ork
Дата добавления - 05.04.2018 в 11:54
sboy Дата: Четверг, 05.04.2018, 12:04 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2105
Репутация: 604 ±
Замечаний: 0% ±

Excel 2010
могли бы Вы более подробно написать?

Мог бы, если бы Вы написали поподробней что это за ячейка, на каком листе... :)
[vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Cells(1, 1).ClearContents
End Sub
[/vba]
 
Ответить
Сообщение
могли бы Вы более подробно написать?

Мог бы, если бы Вы написали поподробней что это за ячейка, на каком листе... :)
[vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Cells(1, 1).ClearContents
End Sub
[/vba]

Автор - sboy
Дата добавления - 05.04.2018 в 12:04
n0leg68 Дата: Четверг, 05.04.2018, 12:15 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 11 ±
Замечаний: 0% ±

Excel 2013
А я вот так постоянно очищаю в своих файлах:
[vba]
Код
Private Sub CommandButton1_Click()
Range("B2:B5").ClearContents
End Sub
[/vba]
B2:B5 - это ячейки которые будут очищаться при нажатии на кнопку.


Сообщение отредактировал n0leg68 - Четверг, 05.04.2018, 12:18
 
Ответить
СообщениеА я вот так постоянно очищаю в своих файлах:
[vba]
Код
Private Sub CommandButton1_Click()
Range("B2:B5").ClearContents
End Sub
[/vba]
B2:B5 - это ячейки которые будут очищаться при нажатии на кнопку.

Автор - n0leg68
Дата добавления - 05.04.2018 в 12:15
monstr_ork Дата: Четверг, 05.04.2018, 12:42 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
sboy, ячейка то любая, как я понимаю, ее можно будет поменять тут "Cells(1, 1)", но я что-то не понял, куда этот код вставлять? в модуль или в лист?
Просто у меня что то не стирает значение в ячейке А1, на первом листе
 
Ответить
Сообщениеsboy, ячейка то любая, как я понимаю, ее можно будет поменять тут "Cells(1, 1)", но я что-то не понял, куда этот код вставлять? в модуль или в лист?
Просто у меня что то не стирает значение в ячейке А1, на первом листе

Автор - monstr_ork
Дата добавления - 05.04.2018 в 12:42
monstr_ork Дата: Четверг, 05.04.2018, 12:43 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
n0leg68, дело в том, что мне не надо по нажатию, это я умею сделать, это через макрорекодер можно сделать.

Мне важно только чтобы она не сохранялась, чтобы закрыл лист, а она стерлась. (Можно и при открытии файла. если уж нельзя при закрытии)


Сообщение отредактировал monstr_ork - Четверг, 05.04.2018, 12:44
 
Ответить
Сообщениеn0leg68, дело в том, что мне не надо по нажатию, это я умею сделать, это через макрорекодер можно сделать.

Мне важно только чтобы она не сохранялась, чтобы закрыл лист, а она стерлась. (Можно и при открытии файла. если уж нельзя при закрытии)

Автор - monstr_ork
Дата добавления - 05.04.2018 в 12:43
and_evg Дата: Четверг, 05.04.2018, 12:52 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 306
Репутация: 54 ±
Замечаний: 0% ±

Excel 2007
но я что-то не понял, куда этот код вставлять

А если бы был файл с примером, то не было бы подобных вопросов
 
Ответить
Сообщение
но я что-то не понял, куда этот код вставлять

А если бы был файл с примером, то не было бы подобных вопросов

Автор - and_evg
Дата добавления - 05.04.2018 в 12:52
monstr_ork Дата: Четверг, 05.04.2018, 12:57 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Да без проблем.
К сообщению приложен файл: 0123859.xlsm(13.8 Kb)
 
Ответить
СообщениеДа без проблем.

Автор - monstr_ork
Дата добавления - 05.04.2018 в 12:57
китин Дата: Четверг, 05.04.2018, 13:12 | Сообщение № 10
Группа: Модераторы
Ранг: Участник клуба
Сообщений: 5071
Репутация: 807 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
чтобы закрыл лист

при закрытии файла

дык при деактивации листа или при закрытии файла?


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение
чтобы закрыл лист

при закрытии файла

дык при деактивации листа или при закрытии файла?

Автор - китин
Дата добавления - 05.04.2018 в 13:12
monstr_ork Дата: Четверг, 05.04.2018, 13:16 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
А что значит "деактивации"? Мне важно, чтобы когда закрыл файл там было пусто, открыл, там было пусто. Пока открыт файл, туда вносятся данные, которые я потом буду вытаскивать из этой ячейки.
 
Ответить
СообщениеА что значит "деактивации"? Мне важно, чтобы когда закрыл файл там было пусто, открыл, там было пусто. Пока открыт файл, туда вносятся данные, которые я потом буду вытаскивать из этой ячейки.

Автор - monstr_ork
Дата добавления - 05.04.2018 в 13:16
Mikael Дата: Четверг, 05.04.2018, 13:22 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
закрыл файл там было пусто, открыл, там было пусто

Пока Вы не откроете файл Вы не узнаете пустая там ячейка или нет. Там будет ячейка Шредингера.
Поэтому предлагаю использовать событие открытия книги.

Если очень хочется на закрытие, в модуле книги закомментировал код.

UPD лучше вот так:
[vba]
Код
Private Sub Workbook_Open()
    With ThisWorkbook
        .Worksheets(1).[a2].ClearContents
        .Save
    End With
End Sub
[/vba]
обновил файл
К сообщению приложен файл: BeforeClose-Mik.xlsm(15.3 Kb)


Сообщение отредактировал Mikael - Четверг, 05.04.2018, 13:34
 
Ответить
Сообщение
закрыл файл там было пусто, открыл, там было пусто

Пока Вы не откроете файл Вы не узнаете пустая там ячейка или нет. Там будет ячейка Шредингера.
Поэтому предлагаю использовать событие открытия книги.

Если очень хочется на закрытие, в модуле книги закомментировал код.

UPD лучше вот так:
[vba]
Код
Private Sub Workbook_Open()
    With ThisWorkbook
        .Worksheets(1).[a2].ClearContents
        .Save
    End With
End Sub
[/vba]
обновил файл

Автор - Mikael
Дата добавления - 05.04.2018 в 13:22
monstr_ork Дата: Четверг, 05.04.2018, 13:31 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Mikael, благодарю, то что надо, особенно с закрытием.
[vba]
Код
.Worksheets(1).[A2].ClearContents
[/vba] "Worksheets(1)" - это название листа, то есть я могу прописать любой лист, где мне не нужно чтобы сохранялось?
 
Ответить
СообщениеMikael, благодарю, то что надо, особенно с закрытием.
[vba]
Код
.Worksheets(1).[A2].ClearContents
[/vba] "Worksheets(1)" - это название листа, то есть я могу прописать любой лист, где мне не нужно чтобы сохранялось?

Автор - monstr_ork
Дата добавления - 05.04.2018 в 13:31
Mikael Дата: Четверг, 05.04.2018, 13:35 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
monstr_ork, да, можно и по имени листа: Worksheets("Лист1")
 
Ответить
Сообщениеmonstr_ork, да, можно и по имени листа: Worksheets("Лист1")

Автор - Mikael
Дата добавления - 05.04.2018 в 13:35
monstr_ork Дата: Четверг, 05.04.2018, 13:39 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Mikael, тогда все, вопрос решен.
[p.s.]Плюс поставил[/p.s.]
 
Ответить
СообщениеMikael, тогда все, вопрос решен.
[p.s.]Плюс поставил[/p.s.]

Автор - monstr_ork
Дата добавления - 05.04.2018 в 13:39
Mikael Дата: Четверг, 05.04.2018, 13:50 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 31 ±
Замечаний: 0% ±

Excel 2010
monstr_ork, это, конечно, хорошо :) Рад помочь.
Тогда выложу код на закрытие
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.EnableEvents = False
    With ThisWorkbook
        Dim bSaved As Boolean
        bSaved = .Saved
        .Worksheets(1).[a2].ClearContents
        If bSaved Then .Save
    End With
    Application.EnableEvents = True
End Sub
[/vba]
Но тут есть подводные камни:
если параметр книги .Saved перед закрытием книги равен False, то закрытие книги вызовет окошко с предложением сохранить, нет, отмена. Проблема в том, что событие закрытие возникает перед появлением этого окна, т.е. если даже пользователь нажмет отмена, ячейка все равно уже будет очищена. Поэтому я и предлагал использовать событие открытие книги.
 
Ответить
Сообщениеmonstr_ork, это, конечно, хорошо :) Рад помочь.
Тогда выложу код на закрытие
[vba]
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.EnableEvents = False
    With ThisWorkbook
        Dim bSaved As Boolean
        bSaved = .Saved
        .Worksheets(1).[a2].ClearContents
        If bSaved Then .Save
    End With
    Application.EnableEvents = True
End Sub
[/vba]
Но тут есть подводные камни:
если параметр книги .Saved перед закрытием книги равен False, то закрытие книги вызовет окошко с предложением сохранить, нет, отмена. Проблема в том, что событие закрытие возникает перед появлением этого окна, т.е. если даже пользователь нажмет отмена, ячейка все равно уже будет очищена. Поэтому я и предлагал использовать событие открытие книги.

Автор - Mikael
Дата добавления - 05.04.2018 в 13:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очищать ячейку по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!