Страницы: 1
RSS
Замена месяца в ячейке с датой для всех листов книги без изменения числа
 
 Имеется файл на месяц, который заполняют сотрудники. Каждому листу соответствует свой день. На каждом листе имеется ячейка с датой. Когда месяц заканчивается, нужно создать шаблон на следующий. Для этого в каждом листе нужно поменять месяц в ячейке с датой но так, чтобы число осталось неизменным. Пыталась написать макрос самостоятельно, но он не работает. Может кто-то сталкивался с такой задачей и знает как ее легко  и просто решить. Желательно так, чтобы человек, который это делал просто нажимал на кнопку и указывал на какой месяц сделать замену.
Код моего макроса ниже
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Заменамесяца()
'
' Заменамесяца Макрос
'
'
    MP = Month(Range("AD2"))
    If MP < 10 Then
    MP = "0" & MP
    End If
    M = InputBox("Введите месяц: ", M)
    For лист = 1 To 31
    Sheets(лист).Select
    Range("AD2").Select
    Cells.Replace What:="." & MP & ".", Replacement:="." & M & ".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Next лист
End Sub

Файл весит больше 100 КБ, поэтому приложила его часть из 4 листов вместо 31
 
tatianka383, здравия. Без макроса. Формула + доп. лист.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Я так понимаю количество листов равно количеству дней, поэтому число беру из номера листа. Хотя можно по аналогии с годом брать из самой ячейки Day(Sheets(лист).Range("M2")
Код
1
2
3
4
5
6
7
8
9
Sub Заменамесяца()
 
M = InputBox("Введите месяц: ", M)
For лист = 1 To 4
    Sheets(лист).Range("M2") = DateSerial(Year(Sheets(лист).Range("M2")), M, лист)
     
Next лист
 
End Sub
 
без макроса и формул : выделить все листы и все ячейки - заменить .08. на .09.
или начиная со 2-го листа дата = дата предыдущего листа +1. и меняете только дату первого листа
Изменено: Vik_tor - 27.08.2015 15:18:32
Страницы: 1
Читают тему
Loading...