Быстрый ввод даты без разделителей
Смольный
Дата: Четверг, 23.12.2021, 17:33 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация:
0
±
Замечаний:
0% ±
Добрый вечер всем. И снова нужна помощь профи этого форума. В интернете нашел макрос на ввод даты без разделителей, но он работает в формате даты 12.01.2021, обязательно нужно вводить шесть цифр, можно ли отредактировать этот макрос, чтоб при вводе в ячейку 1201 получалось 12 января? Сам макрос в прикрепленном файле.
Добрый вечер всем. И снова нужна помощь профи этого форума. В интернете нашел макрос на ввод даты без разделителей, но он работает в формате даты 12.01.2021, обязательно нужно вводить шесть цифр, можно ли отредактировать этот макрос, чтоб при вводе в ячейку 1201 получалось 12 января? Сам макрос в прикрепленном файле. Смольный
Ответить
Сообщение Добрый вечер всем. И снова нужна помощь профи этого форума. В интернете нашел макрос на ввод даты без разделителей, но он работает в формате даты 12.01.2021, обязательно нужно вводить шесть цифр, можно ли отредактировать этот макрос, чтоб при вводе в ячейку 1201 получалось 12 января? Сам макрос в прикрепленном файле. Автор - Смольный Дата добавления - 23.12.2021 в 17:33
Serge_007
Дата: Четверг, 23.12.2021, 17:40 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Здравствуйтепри вводе в ячейку 1201 получалось 12 января
текущего года:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
Dim StrVal As String
Dim dDate As Date
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("I2:I10" )) Is Nothing Then
With Target
StrVal = Format (.Text, "0000" )
If IsNumeric (StrVal) And Len (StrVal) = 4 Then
Application.EnableEvents = False
dDate = DateValue (Left (StrVal, 2 ) & "/" & Mid (StrVal, 3 , 2 ) & "/" & Year (Date ))
.NumberFormat = "dd/mm/yyyy"
.Value = CDate (DateSerial (Year (dDate), Month (dDate), Day (dDate)))
End If
End With
End If
Application.EnableEvents = True
End Sub
Admin: Вопросы по макросам необходимо размещать в разделе по VBA
Здравствуйтепри вводе в ячейку 1201 получалось 12 января
текущего года:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
Dim StrVal As String
Dim dDate As Date
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("I2:I10" )) Is Nothing Then
With Target
StrVal = Format (.Text, "0000" )
If IsNumeric (StrVal) And Len (StrVal) = 4 Then
Application.EnableEvents = False
dDate = DateValue (Left (StrVal, 2 ) & "/" & Mid (StrVal, 3 , 2 ) & "/" & Year (Date ))
.NumberFormat = "dd/mm/yyyy"
.Value = CDate (DateSerial (Year (dDate), Month (dDate), Day (dDate)))
End If
End With
End If
Application.EnableEvents = True
End Sub
[admin]Вопросы по макросам необходимо размещать в разделе по VBA[/admin] Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Здравствуйтепри вводе в ячейку 1201 получалось 12 января
текущего года: [vba]
Private Sub Worksheet_Change(ByVal Target As Range )Dim vValDim StrVal As StringDim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target ; Range("I2:I10")) Is Nothing Then With Target StrVal = Format(.Text ; "0000") If IsЧumeric(StrVal ) And Len(StrVal ) = 4 Then Application.EnableEvents = False dDate = DateValue(Left(StrVal ; 2) & "/" & Mid(StrVal ; 3; 2) & "/" & Year(Date )) .NumberFormat = "dd/mm/yyyy" .Value = CDate(DateSerial(Year(dDate ); Month(dDate ); Day(dDate ))) End If End With End If Application.EnableEvents = ТrueEnd Sub
[/vba] [admin]Вопросы по макросам необходимо размещать в разделе по VBA[/admin] Автор - Serge_007 Дата добавления - 23.12.2021 в 17:40
Смольный
Дата: Четверг, 23.12.2021, 17:45 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация:
0
±
Замечаний:
0% ±
Serge_007 , пробовал я так, не работает. пишу 1201 а получается 27 сентября.
Serge_007 , пробовал я так, не работает. пишу 1201 а получается 27 сентября.Смольный
Ответить
Сообщение Serge_007 , пробовал я так, не работает. пишу 1201 а получается 27 сентября.Автор - Смольный Дата добавления - 23.12.2021 в 17:45
Serge_007
Дата: Четверг, 23.12.2021, 17:49 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Как? Не верю. Что-то неправильно делаете. Пробуйте в моем файле
Как? Не верю. Что-то неправильно делаете. Пробуйте в моем файле Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Как? Не верю. Что-то неправильно делаете. Пробуйте в моем файле Автор - Serge_007 Дата добавления - 23.12.2021 в 17:49
Смольный
Дата: Четверг, 23.12.2021, 17:54 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация:
0
±
Замечаний:
0% ±
Serge_007 , Попробовал в Вашем файле, так же как у меня. если ввожу 1002 то получается 10.02.2021 если меняю формат ячейки чтоб не показывало год то 28.09
Serge_007 , Попробовал в Вашем файле, так же как у меня. если ввожу 1002 то получается 10.02.2021 если меняю формат ячейки чтоб не показывало год то 28.09Смольный
Ответить
Сообщение Serge_007 , Попробовал в Вашем файле, так же как у меня. если ввожу 1002 то получается 10.02.2021 если меняю формат ячейки чтоб не показывало год то 28.09Автор - Смольный Дата добавления - 23.12.2021 в 17:54
Serge_007
Дата: Четверг, 23.12.2021, 17:56 |
Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
если ввожу 1002 то получается 10.02.2021
Значит макрос корректно работаетесли меняю формат ячейки чтоб не показывало год то 28.09
Опять что-то неправильно делаете, возможно формат меняете ДО ввода даты
если ввожу 1002 то получается 10.02.2021
Значит макрос корректно работаетесли меняю формат ячейки чтоб не показывало год то 28.09
Опять что-то неправильно делаете, возможно формат меняете ДО ввода датыSerge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение если ввожу 1002 то получается 10.02.2021
Значит макрос корректно работаетесли меняю формат ячейки чтоб не показывало год то 28.09
Опять что-то неправильно делаете, возможно формат меняете ДО ввода датыАвтор - Serge_007 Дата добавления - 23.12.2021 в 17:56
Смольный
Дата: Четверг, 23.12.2021, 18:05 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация:
0
±
Замечаний:
0% ±
Serge_007 , ну да, до ввода даты, получается после каждого ввода даты нужно заходить и менять формат ячейки?
Serge_007 , ну да, до ввода даты, получается после каждого ввода даты нужно заходить и менять формат ячейки?Смольный
Ответить
Сообщение Serge_007 , ну да, до ввода даты, получается после каждого ввода даты нужно заходить и менять формат ячейки?Автор - Смольный Дата добавления - 23.12.2021 в 18:05
Serge_007
Дата: Пятница, 24.12.2021, 09:31 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
меняю формат ячейки чтоб не показывало год
Если год не нужен, то и дата не нужна, можно обойтись текстом (формат ячеек тоже поменяйте на текстовый):
Private Sub Worksheet_Change(ByVal Target As Range)
'Dim vVal
Dim StrVal As String
'Dim dDate As Date
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("I2:I10" )) Is Nothing Then
With Target
StrVal = Format (.Text, "0000" )
If IsNumeric (StrVal) And Len (StrVal) = 4 Then
Application.EnableEvents = False
' dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Year(Date))
' .NumberFormat = "dd/mm/yyyy"
' .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate)))
.Value = Left (StrVal, 2 ) & "." & Right (StrVal, 2 )
End If
End With
End If
Application.EnableEvents = True
End Sub
меняю формат ячейки чтоб не показывало год
Если год не нужен, то и дата не нужна, можно обойтись текстом (формат ячеек тоже поменяйте на текстовый):
Private Sub Worksheet_Change(ByVal Target As Range)
'Dim vVal
Dim StrVal As String
'Dim dDate As Date
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("I2:I10" )) Is Nothing Then
With Target
StrVal = Format (.Text, "0000" )
If IsNumeric (StrVal) And Len (StrVal) = 4 Then
Application.EnableEvents = False
' dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Year(Date))
' .NumberFormat = "dd/mm/yyyy"
' .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate)))
.Value = Left (StrVal, 2 ) & "." & Right (StrVal, 2 )
End If
End With
End If
Application.EnableEvents = True
End Sub
Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение меняю формат ячейки чтоб не показывало год
Если год не нужен, то и дата не нужна, можно обойтись текстом (формат ячеек тоже поменяйте на текстовый):[vba]
Private Sub Worksheet_Change(ByVal Target As Range )'Dim vValDim StrVal As String 'Dim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target ; Range("I2:I10")) Is Nothing Then With Target StrVal = Format(.Text ; "0000") If IsЧumeric(StrVal ) And Len(StrVal ) = 4 Then Application.EnableEvents = False' dDate = DateValue(Left(StrVal ; 2) & "/" & Mid(StrVal ; 3; 2) & "/" & Year(Date ))' .NumberFormat = "dd/mm/yyyy"' .Value = CDate(DateSerial(Year(dDate ); Month(dDate ); Day(dDate ))) .Value = Left(StrVal ; 2) & "." & Right(StrVal ; 2) End If End With End If Application.EnableEvents = ТrueEnd Sub
[/vba]Автор - Serge_007 Дата добавления - 24.12.2021 в 09:31
Смольный
Дата: Пятница, 24.12.2021, 12:41 |
Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация:
0
±
Замечаний:
0% ±
Serge_007 , спасибо за Ваше терпение.
Serge_007 , спасибо за Ваше терпение.Смольный
Ответить
Сообщение Serge_007 , спасибо за Ваше терпение.Автор - Смольный Дата добавления - 24.12.2021 в 12:41
10q
Дата: Воскресенье, 21.07.2024, 02:53 |
Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация:
0
±
Замечаний:
0% ±
2019
Serge_007, добрый день! Искал решения вопроса по быстрому вводу времени и набрел на этот топик. Макрос работает, но если ошибочно ввести, например 1243, то отображается 15.04.1903. Если попытаться исправить или вводить дату в других ячейках диапазона, то ошибка остается, все даты привязываются к 1900 году. Спасибо! зы: а интересует собственно следующее: ввод 643 -> отображает 06:43 и далее, что бы можно было работать с данными, для вычисления времени.
Serge_007, добрый день! Искал решения вопроса по быстрому вводу времени и набрел на этот топик. Макрос работает, но если ошибочно ввести, например 1243, то отображается 15.04.1903. Если попытаться исправить или вводить дату в других ячейках диапазона, то ошибка остается, все даты привязываются к 1900 году. Спасибо! зы: а интересует собственно следующее: ввод 643 -> отображает 06:43 и далее, что бы можно было работать с данными, для вычисления времени. 10q
Ответить
Сообщение Serge_007, добрый день! Искал решения вопроса по быстрому вводу времени и набрел на этот топик. Макрос работает, но если ошибочно ввести, например 1243, то отображается 15.04.1903. Если попытаться исправить или вводить дату в других ячейках диапазона, то ошибка остается, все даты привязываются к 1900 году. Спасибо! зы: а интересует собственно следующее: ввод 643 -> отображает 06:43 и далее, что бы можно было работать с данными, для вычисления времени. Автор - 10q Дата добавления - 21.07.2024 в 02:53
Pelena
Дата: Воскресенье, 21.07.2024, 08:37 |
Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19425
Репутация:
4568
±
Замечаний:
±
Excel 365 & Mac Excel
Искал решения вопроса по быстрому вводу времени
а тема про ввод даты. про время посмотрите здесь
Искал решения вопроса по быстрому вводу времени
а тема про ввод даты. про время посмотрите здесь Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Искал решения вопроса по быстрому вводу времени
а тема про ввод даты. про время посмотрите здесь Автор - Pelena Дата добавления - 21.07.2024 в 08:37