Страницы: 1
RSS
Изменить в ячейке название месяца на название следующего
 
Здравствуйте!
есть макрос на смену имени в ячейки А1
Код
Sub Тест()
If [a1] = "Январь" Then [a1] = "Февраль"
End Sub

Нужно чтобы в ячейке А1 менялся месяц на следующий. Тоесть если в ячейке А1 написан Январь, он должен поменять на Февраль, если написан февраль он должен поменять на март и т.д.
Подскажите как сделать так чтобы он проверял значения ячейки и если находил нужное дальше не проверял а прерывал, выводя найденное значение.
 
есть подозрение что Декабрь нужно будет сменить на Январь... и круг замкнулся
потом   Январь на   Февраль
потом Февраль на Март
потом Март на Апрель
потом Апрель на Май
потом Май на Июнь
потом Июнь на Июль
потом Июль на Август
потом Август на Сентябрь
потом Сентябрь на Октябрь
потом Октябрь на Ноябрь
потом Ноябрь на Декабрь
потом Декабрь на Январь
потом Январь на Февраль
потом Февраль на Март
потом Март на Апрель
потом Апрель на Май
потом Май на Июнь
потом Июнь на Июль
потом Июль на Август
потом Август на Сентябрь
потом Сентябрь на Октябрь
потом Октябрь на Ноябрь
потом Ноябрь на Декабрь
потом Декабрь на Январь
потом Январь на Февраль
потом Февраль на Март
потом Март на Апрель
продолжать или подскажете, когда этот макрос остановить
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Доброе время суток
Цитата
Ігор Гончаренко написал: подскажете, когда этот макрос остановить
Предположу, после дождичка в четверг? :)
 
Цитата
Ігор Гончаренко  написал:подскажете, когда этот макрос остановить
Никогда, иначе - конец света!!!!
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Ігор Гончаренко: круг замкнулся
думаю, что ТС имел ввиду изменение при вводе (макрос на событие листа), то есть "увеличение" месяца только на 1. В любом случае, до устранения замечаний, предлагать что-либо бессмысленно…
Изменено: Jack Famous - 02.10.2019 09:59:01
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
Sub month()
Dim lr As Long
Dim arr(11)
arr(0) = "Январь"
arr(1) = "Февраль"
arr(2) = "Март"
arr(3) = "Апрель"
arr(4) = "Май"
arr(5) = "Июнь"
arr(6) = "Июль"
arr(7) = "Август"
arr(8) = "Сентябрь"
arr(9) = "Октябрь"
arr(10) = "Ноябрь"
arr(11) = "Декабрь"

lr = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr
  For n = 0 To 11
    l1 = False
    a = n + 1
    If Cells(i, 1) = arr(n) Then
    l1 = True
      If n = 11 Then a = 0
     Cells(i, 1) = arr(a)
        If l1 = True Then
        GoTo Line1
      End If
      End If
  Next
Line1:
Next
End Sub
Изменено: Hellmaster - 02.10.2019 13:08:07
 
Нужно добавить условие, иначе при каждом срабатывании макроса будет меняться зачение в ячейке
Код
Sub NewMonth()
    Dim aMonth()
    
'    If условие_не_выполняется Then Exit Sub ' какое условие?
    aMonth = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", _
                    "Сентябрь", "Октябрь", "Ноябрь", "Декабрь", "Январь", "0нвеварпрайюнюлвгенктояек")
    Cells(1, 1).Value = aMonth(Application.WorksheetFunction.Find(Mid$(Cells(1, 1).Value, 2, 2), aMonth(13)) / 2)
End Sub
Страницы: 1
Наверх