Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2015, 18:10   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Почему нет равенства?

Всем привет, не пойму почему нет равенства?
Код:
Sub zxc()
    Sheets(1).[C3] = Date
        If Sheets(1).[C3] = "10.01." & Year(Date) & "" Then
            MsgBox 555
        End If
End Sub
Если взглянуть по отдельности
MsgBox Sheets(1).[C3]
и
MsgBox "10.01." & Year(Date) & ""
то кажет абсолютно одинаковые данные.
valerij вне форума Ответить с цитированием
Старый 10.01.2015, 18:30   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Вот так прокатит сравнение :

Код:
If Sheets(1).[C3] = DateSerial(Year(Now), 1, 10) Then
Код:
If Sheets(1).[C3] = CDate("10.01." & Year(Now)) Then
Код:
If Format(Sheets(1).[C3], "DD.MM.YYYY") = "10.01." & Year(Now) Then
pashulka вне форума Ответить с цитированием
Старый 10.01.2015, 18:35   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Вот так прокатит сравнение
Всё супер, один вопрос снят, а может и второй прокатит.

Как обойти папку?

Код:
Private Sub Workbook_Open()
    Sheets(1).[B2] = Date
    If Sheets(1).[B2] = "31.12.2014" Then
        MkDir "H:\Заявки\" & Year(Date) + 1
    End If
End Sub
Как сделать, что если папка уже создана, то обойти - MkDir ?

Спасибо.
valerij вне форума Ответить с цитированием
Старый 10.01.2015, 18:41   #4
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Предлагаю такой подход, если папки с текущим годом не существует, то создаём её :

Код:
Private Sub Workbook_Open()
    'Sheets(1).[B2] = Date
    
    iPath$ = "H:\Заявки\" & Year(Date)
    If Dir(iPath$, vbDirectory) = "" Then MkDir iPath$
End Sub
pashulka вне форума Ответить с цитированием
Старый 10.01.2015, 19:00   #5
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Предлагаю такой подход, если папки с текущим годом не существует, то создаём её
Но создать её надо именно 31.12.хххх
valerij вне форума Ответить с цитированием
Старый 10.01.2015, 19:09   #6
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Если Вас не волнует что человек может :

не выйти на работу 31 декабря
не открыть 31 декабря файл с макросом

то можете просто добавить в первоначальный вариант (пост#1,2) - проверку на существование папки (пост#4)
pashulka вне форума Ответить с цитированием
Старый 10.01.2015, 19:23   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Если Вас не волнует что человек может :

не выйти на работу 31 декабря
не открыть 31 декабря файл с макросом

то можете просто добавить в первоначальный вариант (пост#1,2) - проверку на существование папки (пост#4)
Нет, все выходят, открывают, просто сам файл 2014 года его ещё надо хранить в папке 2014, а подготовка на 2015 год идёт в 2014...

Во написал, сейчас всё проверю.

Всё отлично.

Спасибо.

Последний раз редактировалось valerij; 10.01.2015 в 19:53.
valerij вне форума Ответить с цитированием
Старый 11.01.2015, 02:33   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от valerij Посмотреть сообщение
Но создать её надо именно 31.12.хххх
- почему?
Создать вручную за минуту десяток (или пару десятков) папок впрок и забыть о проблеме навсегда не вариант? О форуме забывать не предлагаю
О том, что можно просто проверять наличие папки каждый раз уже говорили.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.01.2015, 22:48   #9
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
- почему?.
потому, что в папке ГОД ещё есть папка с текущим месяцем и туда ложится файл 31 числа, а отсылается файл производителю по почте как следующий день и сохраняется этот файл по именем 01.01.2015 год, значит он уже должен лечь в папку 2015 и в подпапку январь.
И всё это происходит в последний день текущего года.
И так каждый день в течении года, я раз в году приезжал к диспетчеру и правил папки, всё хотел сделать на автомат, но раз поправил и на год забыл, а вот решил наконец то за 5 лет
Цитата:
Создать вручную за минуту десяток (или пару десятков) папок впрок и забыть о проблеме навсегда не вариант?
Теперь понятно, что не вариант?
Тогда всю остальную программу править, зачем, если так всё куда проще.

Последний раз редактировалось valerij; 13.01.2015 в 01:04.
valerij вне форума Ответить с цитированием
Старый 13.01.2015, 10:43   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Всё равно не понял, почему нельзя заранее папок наплодить, но не важно...
Мне вообще эта затея с папками не нравится, почему нельзя всё держать в одной папке, раз уже и так в имени файла есть всё что нужно? Только я бы называл файлы иначе - например 20150101, так при сортировке по имени будет хронологический порядок.
Чтоб файл отослать - его по имени можно легко выбрать из кучи.
Зато обработка всего процесса скриптами намного проще, да и глазами сразу видно всё это богатство
А если когда-то кому-то понадобится их разложить по папкам - легко сделать простым скриптом, ну или вручную пару минут работы раз в 10 лет.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему-то нет звука fevgin Паскаль, Turbo Pascal, PascalABC.NET 13 17.11.2013 20:05
почему на форуме нет ветки 1с? DEsh О форуме и сайтах клуба 13 22.03.2013 02:36
Почему на ноуте нет интернета??? vovken1997 Операционные системы общие вопросы 48 19.07.2012 22:19
А почему нет раздела Python? alex455 О форуме и сайтах клуба 6 20.02.2012 19:48