Excel und VBA

  • всем привет, задачка вроде очень легкая, но я что то не додумаюсь никак...
    итак ситуация такая:


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    ну данно, дата рождения, актуальная дата (Foramt: DD.MM:JJJJ, =Heute() )
    вот, нужно написать макрос что бы узнать возраст. т.е. нажимая на Альтер нужно что бы выходило 20, 30, 25 и т.д. лет...


    вот
    я знаю как сделать, типо 2007-1983, а вот с месяцами и днями нифига...
    имею ввиду, что если сейчас май, а в июне денюха, то на данный момент 23, а не как 2007-1983 = 24


    кто знает как сделать, плиз отзовитесь

  • Самый простой вариант

    Исходный код
    Sub Alter()
    
    
    geb = ActiveSheet.Range("B5")
    ActiveSheet.Range("B6").NumberFormat = "0"
    ActiveSheet.Range("B6") = DateTime.DateDiff("y",B5,B4)
    
    
    End Sub


    Если хочешь узнавать возраст в конкретный день, просто в строке 4 измени Date на значение из В4.

    Сообщение было отредактировано 2 раз, последнее редактирование пользователем Technolog ().

  • спс, но он мне всё равно выдает не точный возраст:


    12.06.1983
    29.05.2007
    на данный момент еще 23 года (т.к. только в июне денюха)
    а он мне выдает 24

  • вот как я решил:


    Private Sub CommandButton1_Click()



    geb = ActiveSheet.Range("B3")
    alt = [B2] - geb


    ActiveSheet.Range("B4") = Int(alt / 365)
    End Sub

  • В результате получишь конечно целое число... Вот как я сделал

    Тебе можно просто взять до строчки 18 и присвоить её определённой ячейке (в моем случае В6)

  • Народ, а кто нибудь вот такую формулу знает? если да, то плиз объясните:
    mAlter = Year(DateDiff("d", Cells(z,4), Cells(1, 12)) + 2) - 1900


    учитель сказал, мол так надо возраст высчитывать, а я не врубаюсь, да у меня и не пашет что-то... хе
    вот Cells(z,4) это Geburtsdatum
    а Cells(1,12) там седнешнее число...



    работать заработало, а вот зачем "d", +2 и -1900 не понимаю...

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем dron126 ().