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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматизирование действий по датам - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматизирование действий по датам (Макросы/Sub)
Автоматизирование действий по датам
Olgatarasova Дата: Пятница, 14.03.2014, 20:22 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго времени суток, форумчане! :)
Помогите с догадками, куда копать? Задача: Имеется некое наименование товара, дата заказа и дата его прибытия на склад (не наступившая). Возможно ли прописать такой макрос, который бы по наступлении даты прибытия (основываясь на системном времени, допустим) суммировал прибытое количество с уже имеющимся?

Есть, конечно, и другие вопросы, однако они будут логичны после утвердительного ответа)
Пример, под шапкой..
К сообщению приложен файл: 8516733.xlsx (11.3 Kb)
 
Ответить
СообщениеДоброго времени суток, форумчане! :)
Помогите с догадками, куда копать? Задача: Имеется некое наименование товара, дата заказа и дата его прибытия на склад (не наступившая). Возможно ли прописать такой макрос, который бы по наступлении даты прибытия (основываясь на системном времени, допустим) суммировал прибытое количество с уже имеющимся?

Есть, конечно, и другие вопросы, однако они будут логичны после утвердительного ответа)
Пример, под шапкой..

Автор - Olgatarasova
Дата добавления - 14.03.2014 в 20:22
Wasilich Дата: Пятница, 14.03.2014, 22:57 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
При открытии книги, пойдет?
[vba]
Код
Sub Auto_open()
     If Cells(2, 5) = Date Then
        Cells(2, 2) = Cells(2, 2) + Cells(2, 3)
        Cells(2, 3) = 0
     End If
End Sub
[/vba]
 
Ответить
СообщениеПри открытии книги, пойдет?
[vba]
Код
Sub Auto_open()
     If Cells(2, 5) = Date Then
        Cells(2, 2) = Cells(2, 2) + Cells(2, 3)
        Cells(2, 3) = 0
     End If
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 14.03.2014 в 22:57
Olgatarasova Дата: Суббота, 15.03.2014, 10:22 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо Wasilic, теперь есть от чего отталкиваться! hands Вместо ячеек будет массив, диалоговое окно для подтверждения прибытия и откладчик действий. Ну Это уже тонкости! :D Жму руку!
 
Ответить
СообщениеСпасибо Wasilic, теперь есть от чего отталкиваться! hands Вместо ячеек будет массив, диалоговое окно для подтверждения прибытия и откладчик действий. Ну Это уже тонкости! :D Жму руку!

Автор - Olgatarasova
Дата добавления - 15.03.2014 в 10:22
Olgatarasova Дата: Воскресенье, 16.03.2014, 12:06 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Wasilic, а как сделать подобное с массивом? ( Т.е. были бы другие позиции допустим.)?
 
Ответить
СообщениеWasilic, а как сделать подобное с массивом? ( Т.е. были бы другие позиции допустим.)?

Автор - Olgatarasova
Дата добавления - 16.03.2014 в 12:06
Wasilich Дата: Воскресенье, 16.03.2014, 15:30 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Стало быть рано радовалась! :)
А как же?
Ну Это уже тонкости!
Слишком тонкие? :D
Надо делать цикл.
[vba]
Код
Sub Auto_open()
      Dim i&
      For i=2 to Range("A" & Rows.Count).End(xlUp).Row
        If Cells(2, 5) = Date Then
           Cells(2, 2) = Cells(2, 2) + Cells(2, 3)
           Cells(2, 3) = 0
        End If
     Next
End Sub
[/vba]


Сообщение отредактировал Wasilic - Воскресенье, 16.03.2014, 18:17
 
Ответить
СообщениеСтало быть рано радовалась! :)
А как же?
Ну Это уже тонкости!
Слишком тонкие? :D
Надо делать цикл.
[vba]
Код
Sub Auto_open()
      Dim i&
      For i=2 to Range("A" & Rows.Count).End(xlUp).Row
        If Cells(2, 5) = Date Then
           Cells(2, 2) = Cells(2, 2) + Cells(2, 3)
           Cells(2, 3) = 0
        End If
     Next
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 16.03.2014 в 15:30
Olgatarasova Дата: Воскресенье, 16.03.2014, 16:56 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Wasilic,
Стало быть рано радовалась!

Как оказалось да! Теория хромает!
Почему ругается на i? girl_sad

Проблема решена, подсказали с разъяснением для таких чайников, как я :p
[vba]
Код


Sub Кнопка2_Щелчок()

'Запускаем цикл
        
     '1. объявить переменные
      Dim Строка As Integer
      Dim КоличествоСтрок As Integer
            
         '2. Определить количество строк в диапазоне
          КоличествоСтрок = Application.CountA(Range(Cells(2, 2), Cells(32000, 2))) + 1
          Строка = 2
            
         'В диапазоне от 2-ой до последней строк выполнять такие простые действия:
          For Строка = 2 To КоличествоСтрок

'Простые действия, только номер строки забитый руками меняем на заданный циклом:

If Cells(Строка, 5) = Date Then
Cells(Строка, 2) = Cells(Строка, 2) + Cells(Строка, 3)
Cells(Строка, 3) = Empty
End If

         '3. И так по кругу, пока не проработан весь диапазон
          Next Строка

End Sub

[/vba]


Сообщение отредактировал Olgatarasova - Воскресенье, 16.03.2014, 17:49
 
Ответить
СообщениеWasilic,
Стало быть рано радовалась!

Как оказалось да! Теория хромает!
Почему ругается на i? girl_sad

Проблема решена, подсказали с разъяснением для таких чайников, как я :p
[vba]
Код


Sub Кнопка2_Щелчок()

'Запускаем цикл
        
     '1. объявить переменные
      Dim Строка As Integer
      Dim КоличествоСтрок As Integer
            
         '2. Определить количество строк в диапазоне
          КоличествоСтрок = Application.CountA(Range(Cells(2, 2), Cells(32000, 2))) + 1
          Строка = 2
            
         'В диапазоне от 2-ой до последней строк выполнять такие простые действия:
          For Строка = 2 To КоличествоСтрок

'Простые действия, только номер строки забитый руками меняем на заданный циклом:

If Cells(Строка, 5) = Date Then
Cells(Строка, 2) = Cells(Строка, 2) + Cells(Строка, 3)
Cells(Строка, 3) = Empty
End If

         '3. И так по кругу, пока не проработан весь диапазон
          Next Строка

End Sub

[/vba]

Автор - Olgatarasova
Дата добавления - 16.03.2014 в 16:56
Wasilich Дата: Воскресенье, 16.03.2014, 18:19 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
ругается на i
Тонкости виноваты! yes :D Вот и не объявил i. Исправился выше.
 
Ответить
Сообщение
ругается на i
Тонкости виноваты! yes :D Вот и не объявил i. Исправился выше.

Автор - Wasilich
Дата добавления - 16.03.2014 в 18:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматизирование действий по датам (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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