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

Вход

Регистрация

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

 

= Мир MS Excel/авто изправление 0000-0000 на 00:00-00:00 - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
авто изправление 0000-0000 на 00:00-00:00
michaelspun Дата: Четверг, 23.01.2014, 01:16 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
ребята нужно помощ. на всех eng форумах без результатно.есть макрос но работает он только на 4 цифри как можно переделать макрос что бы он работал на на 8 с черточкой поредене, 0000-0000.
извеняюсь за мой русский.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim TimeStr As String

On Error GoTo EndMacro
If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then
Exit Sub
End If
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Value = "" Then
Exit Sub
End If

Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 1 = 00:01 AM
TimeStr = "00:0" & .Value
Case 2 ' e.g., 12 = 00:12 AM
TimeStr = "00:" & .Value
Case 3 ' e.g., 735 = 7:35 AM
TimeStr = Left(.Value, 1) & ":" & _
Right(.Value, 2)
Case 4 ' e.g., 1234 = 12:34
TimeStr = Left(.Value, 2) & ":" & _
Right(.Value, 2)
Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
TimeStr = Left(.Value, 1) & ":" & _
Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
Case 6 ' e.g., 123456 = 12:34:56
TimeStr = Left(.Value, 2) & ":" & _
Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
.Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "You did not enter a valid time"
Application.EnableEvents = True
End Sub
[/vba]


Сообщение отредактировал Serge_007 - Четверг, 23.01.2014, 20:23
 
Ответить
Сообщениеребята нужно помощ. на всех eng форумах без результатно.есть макрос но работает он только на 4 цифри как можно переделать макрос что бы он работал на на 8 с черточкой поредене, 0000-0000.
извеняюсь за мой русский.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim TimeStr As String

On Error GoTo EndMacro
If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then
Exit Sub
End If
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Value = "" Then
Exit Sub
End If

Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 1 = 00:01 AM
TimeStr = "00:0" & .Value
Case 2 ' e.g., 12 = 00:12 AM
TimeStr = "00:" & .Value
Case 3 ' e.g., 735 = 7:35 AM
TimeStr = Left(.Value, 1) & ":" & _
Right(.Value, 2)
Case 4 ' e.g., 1234 = 12:34
TimeStr = Left(.Value, 2) & ":" & _
Right(.Value, 2)
Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
TimeStr = Left(.Value, 1) & ":" & _
Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
Case 6 ' e.g., 123456 = 12:34:56
TimeStr = Left(.Value, 2) & ":" & _
Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
.Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "You did not enter a valid time"
Application.EnableEvents = True
End Sub
[/vba]

Автор - michaelspun
Дата добавления - 23.01.2014 в 01:16
alex77755 Дата: Четверг, 23.01.2014, 02:54 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Огласите, пожалуйста, весь список....
Какие выранты-комбинации вообще могут присутствовать?
Формат всегда такой? "####-####"
Цифр всегда 8


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеОгласите, пожалуйста, весь список....
Какие выранты-комбинации вообще могут присутствовать?
Формат всегда такой? "####-####"
Цифр всегда 8

Автор - alex77755
Дата добавления - 23.01.2014 в 02:54
michaelspun Дата: Четверг, 23.01.2014, 03:04 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
вопшем ето для в вода времени , что облигчить ввод и не печатать : , формат всега четыре цифры-четыре цифры
 
Ответить
Сообщениевопшем ето для в вода времени , что облигчить ввод и не печатать : , формат всега четыре цифры-четыре цифры

Автор - michaelspun
Дата добавления - 23.01.2014 в 03:04
alex77755 Дата: Четверг, 23.01.2014, 03:06 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     Dim TS As String
     On Error GoTo EndMacro
     If Len(Target.Value) = 11 Then Exit Sub
     If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
     If Target.Cells.Count > 1 Then Exit Sub
     If Target.Value = "" Then Exit Sub
     If Len(Target.Value) = 9 And InStr(1, Target.Value, "-") = 5 Then
     TS = Target.Value
     Target.Value = Mid(TS, 1, 2) & ":" & Mid(TS, 3, 2) & "-" & Mid(TS, 6, 2) & ":" & Mid(TS, 8, 2)
     End If
     Exit Sub
EndMacro:
     MsgBox "You did not enter a valid time"
     Application.EnableEvents = True
  End Sub
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     Dim TS As String
     On Error GoTo EndMacro
     If Len(Target.Value) = 11 Then Exit Sub
     If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
     If Target.Cells.Count > 1 Then Exit Sub
     If Target.Value = "" Then Exit Sub
     If Len(Target.Value) = 9 And InStr(1, Target.Value, "-") = 5 Then
     TS = Target.Value
     Target.Value = Mid(TS, 1, 2) & ":" & Mid(TS, 3, 2) & "-" & Mid(TS, 6, 2) & ":" & Mid(TS, 8, 2)
     End If
     Exit Sub
EndMacro:
     MsgBox "You did not enter a valid time"
     Application.EnableEvents = True
  End Sub
[/vba]

Автор - alex77755
Дата добавления - 23.01.2014 в 03:06
alex77755 Дата: Четверг, 23.01.2014, 03:08 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Если для ввода всегда 4+4, то я бы и "-" не вводил. Просто восемь цифр


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеЕсли для ввода всегда 4+4, то я бы и "-" не вводил. Просто восемь цифр

Автор - alex77755
Дата добавления - 23.01.2014 в 03:08
alex77755 Дата: Четверг, 23.01.2014, 03:10 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

без "-" просто 8 цифр.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     Dim TS As String
     On Error GoTo EndMacro
     If Len(Target.Value) = 11 Then Exit Sub
     If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
     If Target.Cells.Count > 1 Then Exit Sub
     If Target.Value = "" Then Exit Sub
     If Len(Target.Value) = 8 Then
     TS = Target.Value
     Target.Value = Mid(TS, 1, 2) & ":" & Mid(TS, 3, 2) & "-" & Mid(TS, 5, 2) & ":" & Mid(TS, 7, 2)
     End If
     Exit Sub
EndMacro:
     MsgBox "You did not enter a valid time"
     Application.EnableEvents = True
  End Sub
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщениебез "-" просто 8 цифр.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     Dim TS As String
     On Error GoTo EndMacro
     If Len(Target.Value) = 11 Then Exit Sub
     If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub
     If Target.Cells.Count > 1 Then Exit Sub
     If Target.Value = "" Then Exit Sub
     If Len(Target.Value) = 8 Then
     TS = Target.Value
     Target.Value = Mid(TS, 1, 2) & ":" & Mid(TS, 3, 2) & "-" & Mid(TS, 5, 2) & ":" & Mid(TS, 7, 2)
     End If
     Exit Sub
EndMacro:
     MsgBox "You did not enter a valid time"
     Application.EnableEvents = True
  End Sub
[/vba]

Автор - alex77755
Дата добавления - 23.01.2014 в 03:10
alex77755 Дата: Четверг, 23.01.2014, 03:18 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Или просто поставить формат ячеек!
##":"##"-"##":"##
и вводить 8 цифр без тире


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Четверг, 23.01.2014, 03:18
 
Ответить
СообщениеИли просто поставить формат ячеек!
##":"##"-"##":"##
и вводить 8 цифр без тире

Автор - alex77755
Дата добавления - 23.01.2014 в 03:18
michaelspun Дата: Четверг, 23.01.2014, 03:27 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
super!!!ты гений!!! я 3 дня искал ррешение этому!
огромное спасибо
 
Ответить
Сообщениеsuper!!!ты гений!!! я 3 дня искал ррешение этому!
огромное спасибо

Автор - michaelspun
Дата добавления - 23.01.2014 в 03:27
  • Страница 1 из 1
  • 1
Поиск:

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