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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление информации при наступлении указанной даты - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление информации при наступлении указанной даты (Макросы/Sub)
Удаление информации при наступлении указанной даты
lebensvoll Дата: Среда, 17.01.2018, 14:11 | Сообщение № 1
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые форумчане!!!
В виду того что долговечных сотрудничеств нет, между работодателем и сотрудником. Задумался над тем, что: А ПОЧЕМУ Я ДОЛЖЕН ОСТАВЛЯТЬ СВОИ НАРАБОТКИ РАБОТОДАТЕЛЮ!? Тем более что они "Наработки" стали пользоваться спросом в организации... Мало ли что бывает увольнение по собственному, сокращение или просто увольнение...
Задумался и начал искать макрос "Удаление информации при наступлении указанной даты" и нашел очень хороший материал My WebPage
Но в виду того что не особо разбираюсь в кодах :'( прошу вас помощи:
1. Не могли бы помочь понять данный макрос "Пояснениями". Что означает то или другое действие кода!?
2. А также дополнить его:
- Если Листы будут именоваться иначе а не "Sheet1; Sheet2; Sheet3" а как то иначе.
- Также если лист "Служ" будет скрыт и запоролен, как и сам этот макрос. И как это сделать
Мне это нужно для понимания действия кода.
Заранее Вам всем при много благодарен!!!
К сообщению приложен файл: MakrosDeletTime.xlsm (15.9 Kb)


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал Manyasha - Суббота, 20.01.2018, 13:59
 
Ответить
СообщениеДобрый день, уважаемые форумчане!!!
В виду того что долговечных сотрудничеств нет, между работодателем и сотрудником. Задумался над тем, что: А ПОЧЕМУ Я ДОЛЖЕН ОСТАВЛЯТЬ СВОИ НАРАБОТКИ РАБОТОДАТЕЛЮ!? Тем более что они "Наработки" стали пользоваться спросом в организации... Мало ли что бывает увольнение по собственному, сокращение или просто увольнение...
Задумался и начал искать макрос "Удаление информации при наступлении указанной даты" и нашел очень хороший материал My WebPage
Но в виду того что не особо разбираюсь в кодах :'( прошу вас помощи:
1. Не могли бы помочь понять данный макрос "Пояснениями". Что означает то или другое действие кода!?
2. А также дополнить его:
- Если Листы будут именоваться иначе а не "Sheet1; Sheet2; Sheet3" а как то иначе.
- Также если лист "Служ" будет скрыт и запоролен, как и сам этот макрос. И как это сделать
Мне это нужно для понимания действия кода.
Заранее Вам всем при много благодарен!!!

Автор - lebensvoll
Дата добавления - 17.01.2018 в 14:11
Manyasha Дата: Среда, 17.01.2018, 21:46 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
lebensvoll, название темы должно отражать суть задачи. Дайте более конкретное название теме.
Задумался и начал искать макрос "Удаление информации при наступлении указанной даты"
сами искали по такому запросу, а другим предлагаете искать по текущему названию?))


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеlebensvoll, название темы должно отражать суть задачи. Дайте более конкретное название теме.
Задумался и начал искать макрос "Удаление информации при наступлении указанной даты"
сами искали по такому запросу, а другим предлагаете искать по текущему названию?))

Автор - Manyasha
Дата добавления - 17.01.2018 в 21:46
fan-vba Дата: Среда, 17.01.2018, 22:53 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 10 ±
Замечаний: 0% ±

Excel 2007
Можно еще "красивее" распрощаться deal
[vba]
Код
Sub удаление_книги()
    If Date > #1/30/2018# Then
        Application.DisplayAlerts = False
        ThisWorkbook.ChangeFileAccess xlReadOnly
        Kill ThisWorkbook.FullName
        Application.DisplayAlerts = True
        ThisWorkbook.Close 0
    End If
End Sub
[/vba]
 
Ответить
СообщениеМожно еще "красивее" распрощаться deal
[vba]
Код
Sub удаление_книги()
    If Date > #1/30/2018# Then
        Application.DisplayAlerts = False
        ThisWorkbook.ChangeFileAccess xlReadOnly
        Kill ThisWorkbook.FullName
        Application.DisplayAlerts = True
        ThisWorkbook.Close 0
    End If
End Sub
[/vba]

Автор - fan-vba
Дата добавления - 17.01.2018 в 22:53
lebensvoll Дата: Четверг, 18.01.2018, 10:34 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Manyasha, доброе утро!!!
Да я вот именно хочу понять сам код, для себя "чтоб вы помогли написать пояснения" что означает каждое действие кода примерно:
[vba]
Код
Private Sub Workbook_Open()
    Dim sh As Worksheet, i As Long 'Обьевляем переменную
    With Sheets("Служ") 'На каком листе условие
[/vba]
Вот именно это я имел ввиду "ПОЯСНЕНИЕ".
А вот ДОПОЛНЕНИЕ уже я так понимаю предлагает fan-vba, даже не дополнение а упрощение :o
Спасибо вам огромное за ответы


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Четверг, 18.01.2018, 10:35
 
Ответить
СообщениеManyasha, доброе утро!!!
Да я вот именно хочу понять сам код, для себя "чтоб вы помогли написать пояснения" что означает каждое действие кода примерно:
[vba]
Код
Private Sub Workbook_Open()
    Dim sh As Worksheet, i As Long 'Обьевляем переменную
    With Sheets("Служ") 'На каком листе условие
[/vba]
Вот именно это я имел ввиду "ПОЯСНЕНИЕ".
А вот ДОПОЛНЕНИЕ уже я так понимаю предлагает fan-vba, даже не дополнение а упрощение :o
Спасибо вам огромное за ответы

Автор - lebensvoll
Дата добавления - 18.01.2018 в 10:34
fan-vba Дата: Пятница, 19.01.2018, 17:05 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 10 ±
Замечаний: 0% ±

Excel 2007
я для себя понимаю этот код так:
[vba]
Код
Private Sub Workbook_Open()
    Dim sh As Worksheet, i As Long
    'объявляются переменные:
    ' sh - переменная, указывающая на листы книги
    ' i - числовая переменная для цикла в большом диапазоне целых чисел
    With Sheets("Служ") ' указываем на объект лист с именем "Служ" для запуска различных операторов
        If Date = Fix(.Range("Z3").Value) And .Range("Z3").Value <> "" Then
        ' условие на проверку совпадения текущей даты с датой в ячейке Z3,
        ' а также условие на то, что ячейка Z3 не пустая
            Application.DisplayAlerts = False 'отключение системных предупреждений
            For Each sh In Worksheets ' перебор всех листов в книге
                If sh.Name <> .Name Then ' условие на "не" совпадение листов с именем листа "Служ"
                    sh.Delete 'удаление всех листов книги, кроме листа "Служ"(благодаря условию выше)
                End If 'здесь заканчивается текущее условие перебора листов
            Next sh ' тут заканчивается перебор всех листов
            Application.DisplayAlerts = True 'включение системных предупреждений
            For i = 1 To 3 'запуск цикла на 3 шага
                Sheets.Add After:=Sheets(Sheets.Count) ' добавление нового листа (3 листа - по количеству шагов в цикле)
                ActiveSheet.Name = "Sheet" & i 'присвоение созданному листу имени (Sheets1, Sheets2,Sheets3 соответственно)
            Next i ' окончания цикла
            .Range("Z3").ClearContents 'очищение данных в ячейке Z3
        End If 'окончание проверки условий в ячейке Z3
    End With
End Sub
[/vba]
а кодом из 3 поста заполнены большинство моих проектов на моей работе)


Сообщение отредактировал fan-vba - Пятница, 19.01.2018, 17:18
 
Ответить
Сообщениея для себя понимаю этот код так:
[vba]
Код
Private Sub Workbook_Open()
    Dim sh As Worksheet, i As Long
    'объявляются переменные:
    ' sh - переменная, указывающая на листы книги
    ' i - числовая переменная для цикла в большом диапазоне целых чисел
    With Sheets("Служ") ' указываем на объект лист с именем "Служ" для запуска различных операторов
        If Date = Fix(.Range("Z3").Value) And .Range("Z3").Value <> "" Then
        ' условие на проверку совпадения текущей даты с датой в ячейке Z3,
        ' а также условие на то, что ячейка Z3 не пустая
            Application.DisplayAlerts = False 'отключение системных предупреждений
            For Each sh In Worksheets ' перебор всех листов в книге
                If sh.Name <> .Name Then ' условие на "не" совпадение листов с именем листа "Служ"
                    sh.Delete 'удаление всех листов книги, кроме листа "Служ"(благодаря условию выше)
                End If 'здесь заканчивается текущее условие перебора листов
            Next sh ' тут заканчивается перебор всех листов
            Application.DisplayAlerts = True 'включение системных предупреждений
            For i = 1 To 3 'запуск цикла на 3 шага
                Sheets.Add After:=Sheets(Sheets.Count) ' добавление нового листа (3 листа - по количеству шагов в цикле)
                ActiveSheet.Name = "Sheet" & i 'присвоение созданному листу имени (Sheets1, Sheets2,Sheets3 соответственно)
            Next i ' окончания цикла
            .Range("Z3").ClearContents 'очищение данных в ячейке Z3
        End If 'окончание проверки условий в ячейке Z3
    End With
End Sub
[/vba]
а кодом из 3 поста заполнены большинство моих проектов на моей работе)

Автор - fan-vba
Дата добавления - 19.01.2018 в 17:05
krosav4ig Дата: Пятница, 19.01.2018, 18:06 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Если нужно удалить листы и потом добавить листы с теми же именами, что были у исходных листов, может проще удалить данные с листов?
[vba]
Код
Private Sub Workbook_Open()
    Dim D As Date                       'переменная Дата - условие
    Dim sh As Worksheet                 'объектная переменная Лист Excel
    Dim nam$                            'строковая переменная - имя листа с датой
    
    nam = "Служ"                        'задаем имя листа с датой
    With Me                             'работаем с книгой, из которой запускается этот макрос
        D = .Sheets(nam).[Z3]           'пишем дату с листа в переменную
        If Date >= D Then               'если текущая системная дата >= условие
            For Each sh In .Sheets      'перебор всех листов
                If sh.Name <> nam Then  'если имя листа <> значению переменной nam
                    sh.Columns.Delete   'удаляем всё с листа
                End If
            Next
        End If
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЕсли нужно удалить листы и потом добавить листы с теми же именами, что были у исходных листов, может проще удалить данные с листов?
[vba]
Код
Private Sub Workbook_Open()
    Dim D As Date                       'переменная Дата - условие
    Dim sh As Worksheet                 'объектная переменная Лист Excel
    Dim nam$                            'строковая переменная - имя листа с датой
    
    nam = "Служ"                        'задаем имя листа с датой
    With Me                             'работаем с книгой, из которой запускается этот макрос
        D = .Sheets(nam).[Z3]           'пишем дату с листа в переменную
        If Date >= D Then               'если текущая системная дата >= условие
            For Each sh In .Sheets      'перебор всех листов
                If sh.Name <> nam Then  'если имя листа <> значению переменной nam
                    sh.Columns.Delete   'удаляем всё с листа
                End If
            Next
        End If
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 19.01.2018 в 18:06
Manyasha Дата: Суббота, 20.01.2018, 14:08 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
я вот именно хочу понять сам код

И все же, название "Расписать макрос пояснениями и дополнить" не несет никакой практической ценности, под это название подходит любой макрос, а в теме обсуждается конкретная задача. Тему переименовала.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
я вот именно хочу понять сам код

И все же, название "Расписать макрос пояснениями и дополнить" не несет никакой практической ценности, под это название подходит любой макрос, а в теме обсуждается конкретная задача. Тему переименовала.

Автор - Manyasha
Дата добавления - 20.01.2018 в 14:08
lebensvoll Дата: Понедельник, 22.01.2018, 10:06 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Manyasha, krosav4ig, fan-vba, ВСЕМ СПАСИБО ОГРОМНЕЙШЕЕ, за ответы, поправки и пояснения...


Кто бы ты ни был, мир в твоих руках
 
Ответить
СообщениеManyasha, krosav4ig, fan-vba, ВСЕМ СПАСИБО ОГРОМНЕЙШЕЕ, за ответы, поправки и пояснения...

Автор - lebensvoll
Дата добавления - 22.01.2018 в 10:06
Ефгений Дата: Понедельник, 16.12.2019, 11:38 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 0 ±
Замечаний: 0% ±

2010
Здравствуйте друзья. Скажите а этот скрипт можно применить к ситуации, когда из колонки с диапазоном А2-А1000 каждый понедельник нужно удалять данные?
 
Ответить
СообщениеЗдравствуйте друзья. Скажите а этот скрипт можно применить к ситуации, когда из колонки с диапазоном А2-А1000 каждый понедельник нужно удалять данные?

Автор - Ефгений
Дата добавления - 16.12.2019 в 11:38
_Boroda_ Дата: Понедельник, 16.12.2019, 11:47 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16673
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Именно этот нет, нельзя
Если нужно, то
- Создайте свою тему согласно п.5q Правил форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИменно этот нет, нельзя
Если нужно, то
- Создайте свою тему согласно п.5q Правил форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума

Автор - _Boroda_
Дата добавления - 16.12.2019 в 11:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление информации при наступлении указанной даты (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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