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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос, фиксированные текущее время и дата - Страница 3 - Мир MS Excel

Старая форма входа
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин, _Boroda_  
Макрос, фиксированные текущее время и дата
Hugo Дата: Пятница, 01.04.2011, 16:34 | Сообщение № 41
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3707
Репутация: 792 ±
Замечаний: 0% ±

365
1. Вопрос не по теме.
2. Для удаления строк (и столбцов) циклом надо идти в обратную сторону, т.к. при удалении номера строк/столбцов смещаются.
2a. Здесь вполне можно обойтись без Select и ActiveCell - будет быстрее.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение1. Вопрос не по теме.
2. Для удаления строк (и столбцов) циклом надо идти в обратную сторону, т.к. при удалении номера строк/столбцов смещаются.
2a. Здесь вполне можно обойтись без Select и ActiveCell - будет быстрее.

Автор - Hugo
Дата добавления - 01.04.2011 в 16:34
Michael_S Дата: Суббота, 02.04.2011, 00:10 | Сообщение № 42
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Опять второй страницы не увидел angry
Дал ответ, который уже есть biggrin


Сообщение отредактировал Michael_S - Суббота, 02.04.2011, 00:13
 
Ответить
СообщениеОпять второй страницы не увидел angry
Дал ответ, который уже есть biggrin

Автор - Michael_S
Дата добавления - 02.04.2011 в 00:10
Serge_007 Дата: Суббота, 02.04.2011, 17:47 | Сообщение № 43
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Michael_S)
Опять второй страницы не увидел

Михаил, жми вот эту кнопку:

Она перенаправит тебя к последнему сообщению темы.

К сообщению приложен файл: 9308510.gif (9.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Michael_S)
Опять второй страницы не увидел

Михаил, жми вот эту кнопку:

Она перенаправит тебя к последнему сообщению темы.


Автор - Serge_007
Дата добавления - 02.04.2011 в 17:47
Michael_S Дата: Суббота, 02.04.2011, 19:52 | Сообщение № 44
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (Serge_007)
Михаил, жми вот эту кнопку:

Сереж, да я изначально видел, что там две страницы, потом пока читал, заинтересовался и забыл про вторую :).
Чуть подправил макрос (в кои то веки!), оправил - а тут облом surprised sad
smile
 
Ответить
Сообщение
Quote (Serge_007)
Михаил, жми вот эту кнопку:

Сереж, да я изначально видел, что там две страницы, потом пока читал, заинтересовался и забыл про вторую :).
Чуть подправил макрос (в кои то веки!), оправил - а тут облом surprised sad
smile

Автор - Michael_S
Дата добавления - 02.04.2011 в 19:52
Serge_007 Дата: Суббота, 02.04.2011, 20:17 | Сообщение № 45
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Michael_S)
Чуть подправил макрос, оправил - а тут облом

Думаю не такой уж и облом.
Опыта-то прибавилось smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Michael_S)
Чуть подправил макрос, оправил - а тут облом

Думаю не такой уж и облом.
Опыта-то прибавилось smile

Автор - Serge_007
Дата добавления - 02.04.2011 в 20:17
Гость Дата: Вторник, 03.01.2012, 00:14 | Сообщение № 46
Группа: Гости
Добрый день.
Помогите зафиксировать дату.
Excel 2007. Таблица создана с помощью стилей, т.е. строки добавляются сами.
В одном из столбцов сделан список, при выборе из списка значения "Готов" в столбце Дата должна проставляться текущая дата (в дальнейшем дата не должна меняться)
В данный момент вставка даты реализована формулой ЕСЛИ, но при изменении документа дата постоянно меняется.
 
Ответить
СообщениеДобрый день.
Помогите зафиксировать дату.
Excel 2007. Таблица создана с помощью стилей, т.е. строки добавляются сами.
В одном из столбцов сделан список, при выборе из списка значения "Готов" в столбце Дата должна проставляться текущая дата (в дальнейшем дата не должна меняться)
В данный момент вставка даты реализована формулой ЕСЛИ, но при изменении документа дата постоянно меняется.

Автор - Гость
Дата добавления - 03.01.2012 в 00:14
light26 Дата: Вторник, 03.01.2012, 00:23 | Сообщение № 47
Группа: Друзья
Ранг: Старожил
Сообщений: 1352
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Гость, Пример давайте


Я не волшебник. Я только учусь
 
Ответить
СообщениеГость, Пример давайте

Автор - light26
Дата добавления - 03.01.2012 в 00:23
Serge_007 Дата: Вторник, 03.01.2012, 00:59 | Сообщение № 48
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Гость)
вставка даты реализована формулой ЕСЛИ

Думаю, что вставка даты всё-же реализована функцией СЕГОДНЯ() wink
Тогда см. здесь.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Гость)
вставка даты реализована формулой ЕСЛИ

Думаю, что вставка даты всё-же реализована функцией СЕГОДНЯ() wink
Тогда см. здесь.

Автор - Serge_007
Дата добавления - 03.01.2012 в 00:59
Гость Дата: Вторник, 03.01.2012, 14:05 | Сообщение № 49
Группа: Гости
Quote (Serge_007)
Думаю, что вставка даты всё-же реализована функцией СЕГОДНЯ()

именно так. просто немного не так выразился.
вставка даты реализована функцией СЕГОДНЯ() с проверкой выполнения условия формулой ЕСЛИ

вот ссылка на документ
http://dl.dropbox.com/u/499514/Prim.xlsx
 
Ответить
Сообщение
Quote (Serge_007)
Думаю, что вставка даты всё-же реализована функцией СЕГОДНЯ()

именно так. просто немного не так выразился.
вставка даты реализована функцией СЕГОДНЯ() с проверкой выполнения условия формулой ЕСЛИ

вот ссылка на документ
http://dl.dropbox.com/u/499514/Prim.xlsx

Автор - Гость
Дата добавления - 03.01.2012 в 14:05
Serge_007 Дата: Вторник, 03.01.2012, 20:56 | Сообщение № 50
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Гость)
вставка даты реализована функцией СЕГОДНЯ()

Тогда я ответил на Ваш вопрос выше.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Гость)
вставка даты реализована функцией СЕГОДНЯ()

Тогда я ответил на Ваш вопрос выше.

Автор - Serge_007
Дата добавления - 03.01.2012 в 20:56
Гость Дата: Вторник, 03.01.2012, 21:12 | Сообщение № 51
Группа: Гости
это не подходит, необходимо чтобы автоматически вставлялась дата и оставалась неизменной,
а по вашей ссылке предлагаются способы подразумевающие манипуляции с ячейками, в таком случае мне легче руками дату вставлять.
суть проблемы - автоматизировать процесс.
 
Ответить
Сообщениеэто не подходит, необходимо чтобы автоматически вставлялась дата и оставалась неизменной,
а по вашей ссылке предлагаются способы подразумевающие манипуляции с ячейками, в таком случае мне легче руками дату вставлять.
суть проблемы - автоматизировать процесс.

Автор - Гость
Дата добавления - 03.01.2012 в 21:12
Serge_007 Дата: Вторник, 03.01.2012, 21:32 | Сообщение № 52
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Гость)
суть проблемы - автоматизировать процесс

Запишите те же самые действия макрорекордером. Вот и вся автоматизация smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Гость)
суть проблемы - автоматизировать процесс

Запишите те же самые действия макрорекордером. Вот и вся автоматизация smile

Автор - Serge_007
Дата добавления - 03.01.2012 в 21:32
Гость Дата: Вторник, 03.01.2012, 23:11 | Сообщение № 53
Группа: Гости
по одной ячейке не совсем удобно, а если выделить весь столбец и применить специальную вставку - ошибка получается: http://dl.dropbox.com/u/499514/1.jpg
 
Ответить
Сообщениепо одной ячейке не совсем удобно, а если выделить весь столбец и применить специальную вставку - ошибка получается: http://dl.dropbox.com/u/499514/1.jpg

Автор - Гость
Дата добавления - 03.01.2012 в 23:11
KuklP Дата: Вторник, 03.01.2012, 23:12 | Сообщение № 54
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Гость, Вы топик с начала почитайте. Там макросов - на любой вкус. Вроде как вся тема про автовставку даты.
К сообщению приложен файл: Prim.xlsm (15.3 Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Вторник, 03.01.2012, 23:29
 
Ответить
СообщениеГость, Вы топик с начала почитайте. Там макросов - на любой вкус. Вроде как вся тема про автовставку даты.

Автор - KuklP
Дата добавления - 03.01.2012 в 23:12
Гость Дата: Пятница, 01.11.2013, 13:32 | Сообщение № 55
Группа: Гости
Цитата nilem

Если так, то вот кодец:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Me.UsedRange.Columns(1), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target = "" Then Target.Next = "" Else Target.Next = Now
Application.EnableEvents = True
End Sub
[/vba]

Это надо вставить в модуль листа (ПКМ по ярлычку листа - Исходный текст).


Как реализовать такой функционал не только в А но еще и в G? Интересует работа одновременно в двух этих колонках.
 
Ответить
Сообщение
Цитата nilem

Если так, то вот кодец:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Me.UsedRange.Columns(1), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target = "" Then Target.Next = "" Else Target.Next = Now
Application.EnableEvents = True
End Sub
[/vba]

Это надо вставить в модуль листа (ПКМ по ярлычку листа - Исходный текст).


Как реализовать такой функционал не только в А но еще и в G? Интересует работа одновременно в двух этих колонках.

Автор - Гость
Дата добавления - 01.11.2013 в 13:32
RAN Дата: Пятница, 01.11.2013, 22:17 | Сообщение № 56
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А кто сказал, что этот код для столбца А? Он, с таким же успехом и для G, и для АА, и для ВВ.
Причем и в коде ничего менять не надо.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target(1).Column = 1 Or Target(1).Column = 7 Then
           Application.EnableEvents = False
           If Target(1) = "" Then Target.Next = "" Else Target.Next = Now
           Application.EnableEvents = True
       End If
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 01.11.2013, 22:21
 
Ответить
СообщениеА кто сказал, что этот код для столбца А? Он, с таким же успехом и для G, и для АА, и для ВВ.
Причем и в коде ничего менять не надо.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target(1).Column = 1 Or Target(1).Column = 7 Then
           Application.EnableEvents = False
           If Target(1) = "" Then Target.Next = "" Else Target.Next = Now
           Application.EnableEvents = True
       End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 01.11.2013 в 22:17
vburrito Дата: Понедельник, 09.12.2013, 20:09 | Сообщение № 57
Группа: Гости
Цитата nilem, 27.03.2011 в 15:14, в сообщении № 20[/url
]Если так, то вот кодец:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Me.UsedRange.Columns(1), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target = "" Then Target.Next = "" Else Target.Next = Now
Application.EnableEvents = True
End Sub

Это надо вставить в модуль листа (ПКМ по ярлычку листа - Исходный текст).


Совершенно аналогичная задача у меня, но не смог применить волшебный код, который вы описали.

Предположим, я добавляю заказ в таблицу заказов. Есть поле, "Заказчик", которое с выпадающим списком позволяет выбирать заказчиком из списка клиентов с другой таблицы. После того, как я выбрал Закзачика, я подтвердил факт намерения добавить "новый заказ с текущей датой". Получается, в момент выбора Заказчика в поле "Дата заказа" должна проставиться сегодняшняя дата, НО, она если я открою файл завтра, то дата должна остаться вчерашней =)

Как правильно автор темы написал, некая "фиксированная дата".

Сейчас у меня в поле "Дата заказа" стоит:
=ЕСЛИ(E5=""; " "; СЕГОДНЯ())
(если заказчик еще не выбран, пустота, если выбран, поставить текущую дату)

Но как вы поняли при таком подходе все даты всех заказов будут сегодняшними )
 
Ответить
Сообщение
Цитата nilem, 27.03.2011 в 15:14, в сообщении № 20[/url
]Если так, то вот кодец:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Me.UsedRange.Columns(1), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target = "" Then Target.Next = "" Else Target.Next = Now
Application.EnableEvents = True
End Sub

Это надо вставить в модуль листа (ПКМ по ярлычку листа - Исходный текст).


Совершенно аналогичная задача у меня, но не смог применить волшебный код, который вы описали.

Предположим, я добавляю заказ в таблицу заказов. Есть поле, "Заказчик", которое с выпадающим списком позволяет выбирать заказчиком из списка клиентов с другой таблицы. После того, как я выбрал Закзачика, я подтвердил факт намерения добавить "новый заказ с текущей датой". Получается, в момент выбора Заказчика в поле "Дата заказа" должна проставиться сегодняшняя дата, НО, она если я открою файл завтра, то дата должна остаться вчерашней =)

Как правильно автор темы написал, некая "фиксированная дата".

Сейчас у меня в поле "Дата заказа" стоит:
=ЕСЛИ(E5=""; " "; СЕГОДНЯ())
(если заказчик еще не выбран, пустота, если выбран, поставить текущую дату)

Но как вы поняли при таком подходе все даты всех заказов будут сегодняшними )

Автор - vburrito
Дата добавления - 09.12.2013 в 20:09
AndreTM Дата: Понедельник, 09.12.2013, 23:59 | Сообщение № 58
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
все даты всех заказов будут сегодняшними
А вы попробуйте реагировать не на событие листа или книги - а, наоборот, повесить куда-нибудь кнопочку, отвечающую за я подтвердил факт намерения добавить "новый заказ с текущей датой". И именно событие нажатия этой кнопочки - должно изменить дату...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
все даты всех заказов будут сегодняшними
А вы попробуйте реагировать не на событие листа или книги - а, наоборот, повесить куда-нибудь кнопочку, отвечающую за я подтвердил факт намерения добавить "новый заказ с текущей датой". И именно событие нажатия этой кнопочки - должно изменить дату...

Автор - AndreTM
Дата добавления - 09.12.2013 в 23:59
igrtsk Дата: Вторник, 10.12.2013, 12:18 | Сообщение № 59
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Мне не так давно на форуме посоветовали такой вариант:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
      For Each cell In Target   'проходим по всем измененным ячейкам
         If Not Intersect(cell, Range("A2:F65536")) Is Nothing Then
              With Range("G" & cell.Row)
              ActiveSheet.Unprotect Password:="1234"  'если ячейки защищены паролем - разблокируем их для макроса
                 .Value = Now
                 ActiveSheet.Protect Password:="1234"  'восстанавливаем защиту ячеек
              End With
         End If
      Next cell
End Sub
[/vba]
Диапазон ячеек выставьте какой вам требуется. Это надо вставить в модуль листа


Инструктор по применению лосей в кавалерийских частях РККА

Сообщение отредактировал igrtsk - Вторник, 10.12.2013, 12:20
 
Ответить
СообщениеМне не так давно на форуме посоветовали такой вариант:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
      For Each cell In Target   'проходим по всем измененным ячейкам
         If Not Intersect(cell, Range("A2:F65536")) Is Nothing Then
              With Range("G" & cell.Row)
              ActiveSheet.Unprotect Password:="1234"  'если ячейки защищены паролем - разблокируем их для макроса
                 .Value = Now
                 ActiveSheet.Protect Password:="1234"  'восстанавливаем защиту ячеек
              End With
         End If
      Next cell
End Sub
[/vba]
Диапазон ячеек выставьте какой вам требуется. Это надо вставить в модуль листа

Автор - igrtsk
Дата добавления - 10.12.2013 в 12:18
vburrito Дата: Вторник, 10.12.2013, 14:09 | Сообщение № 60
Группа: Гости
igrtsk спасибо!

Не могу совсем VB понять =(

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

cell - что такое?

Что-то я вставил в свой лист, ничего не изменилось =( ничего не происходит
 
Ответить
Сообщениеigrtsk спасибо!

Не могу совсем VB понять =(

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

cell - что такое?

Что-то я вставил в свой лист, ничего не изменилось =( ничего не происходит

Автор - vburrito
Дата добавления - 10.12.2013 в 14:09
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

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