Страницы: 1
RSS
как не пропустить набор даты не в формате дд.мм.гггг ?
 
Добрый день,
подскажите пожалуйста как в макросе прописать чтобы он стирал не правильно набранную дату?

Если коряво то как-то так:
Код
If Cells(1, 2) = Error Then             ' тут проверяется не ошибочно ли ввел оператор дату (например 13,04,2015)
   Target.Cells = Empty                 ' если ошибочно то дата стирается
 Call Макрос3                               ' и запускается бокс с пояснением
Cells(3, 1) = "OK"                         ' а если дата правильно ввели то в ячейке (3, 1) появляется ОК
    End If
Изменено: gogy913 - 13.04.2015 16:32:04
 
Цитата
не ошибочно ли ввел оператор дату
Выбор через календарь
 
Вариант. Но лучше через календарь, как Kuzmich,  предложил
Код
Sub Data_()
With Sheets("Лист1")
    lRow = .Cells(Rows.Count, 2).End(xlUp).Row
    For Each cl In .Range("B1:B" & lRow).Cells
        With cl
            If .NumberFormat <> "m/d/yyyy" Then
                .Value = Empty
                MsgBox "В ячейке " & .Address & " не дата!!!" 'Call Макрос3
            Else
                .Offset(, 1) = "Ок"
            End If
        End With
    Next
End With
End Sub
Изменено: Sanja - 13.04.2015 17:27:37
Согласие есть продукт при полном непротивлении сторон
 
может угадаю, что нужно?
Код
If Not IsDate(Cells(1, 2)) Then Cells(1, 2) = Empty: MsgBox "Неверный ввод даты! " Else Cells(3, 1) = "OK"
 
А ежели, ну вот ежели, все таки по моЁму? По простому, то как, а? А то я зелен еще в таких кодах разбираться... :oops:
 
А по-вашему, извините, ни хрена непонятно.
 
Михаил С., попробуйте через isDate() проверить ячейку с таким текстом: 12,13,2015
:)
 
Цитата
gogy913 написал: коряво как-то.... все таки по моЁму?
Ну если только как и было - коряво ;)
Изменено: Sanja - 13.04.2015 17:36:50
Согласие есть продукт при полном непротивлении сторон
 
А что мы должны получить из 12,13,2015 ?

зы. если по-русски, то и 12.13.2015 - тоже не дата...
Изменено: Михаил С. - 13.04.2015 18:05:04
 
Цитата
webley написал: попробуйте через isDate() проверить ячейку с таким текстом: 12,13,2015
ок, чуть изменим:
Код
If Not IsDate(Cells(1, 2)) Then 
      Cells(1, 2) = Empty: 
      MsgBox "Неверный ввод даты! " 
Else 
      Cells(3, 1) = "OK":
      Cells(1, 2)=CDAte(Cells(1, 2))
end if
 
Цитата
Михаил С. написал: А что мы должны получить из 12,13,2015 ?
в том то и дело, что ничего. А вот IsDate() от этой ячейки возвращает true...
 
Меню Данные - Проверка данных - Дата. В полях Начальная дата и Конечная дата ввести то, что заведомо перекроет реальный диапазон (например, 1.1.1900 и 1.1.2100)
Страницы: 1
Наверх