Добрый день. Прошу помочь облазил всё форумы но ничего.... Скидываю пример https://dropmefiles.com/te3m0 . И полное описание задания: 0. Необходим макрос-кнопка 1. в листе "Высота" видим ячейку "фиолетовую" 3747(номер может меняться если там будет стоять другая фамилия) нужно именно поиск по значению ячейки. Обязательно чтобы искал точное значение не примерное. 2. значение данной ячейки нужно найти на листах "Вахта+Подменные" и "ИТР" 3.Данная ячейка находится на листе "Вахта+Подменные" отметил ее тоже "фиолетовым" для вашего удобства. 4. После того как нашлась ячейка на листе "Вахта +Подменные", ниже дата (02.10.2022) в данном случае ячейка H7 5. Ее нужно заменить на актуальную дату. 6. Источник замены даты находится на листе "Высота" в ячейке H6 (отметил синим) * к этой дате прибавить 1 год. Итогом макроса должно стать изменение даты 02.10.2022 на 29.08.2023
Далее я планирую макрос расширить чтобы он искал не только значение фиолетовой ячейки но и значения оранжевых ячеек и сразу за один макрос.
Добрый день. Прошу помочь облазил всё форумы но ничего.... Скидываю пример https://dropmefiles.com/te3m0 . И полное описание задания: 0. Необходим макрос-кнопка 1. в листе "Высота" видим ячейку "фиолетовую" 3747(номер может меняться если там будет стоять другая фамилия) нужно именно поиск по значению ячейки. Обязательно чтобы искал точное значение не примерное. 2. значение данной ячейки нужно найти на листах "Вахта+Подменные" и "ИТР" 3.Данная ячейка находится на листе "Вахта+Подменные" отметил ее тоже "фиолетовым" для вашего удобства. 4. После того как нашлась ячейка на листе "Вахта +Подменные", ниже дата (02.10.2022) в данном случае ячейка H7 5. Ее нужно заменить на актуальную дату. 6. Источник замены даты находится на листе "Высота" в ячейке H6 (отметил синим) * к этой дате прибавить 1 год. Итогом макроса должно стать изменение даты 02.10.2022 на 29.08.2023
Далее я планирую макрос расширить чтобы он искал не только значение фиолетовой ячейки но и значения оранжевых ячеек и сразу за один макрос.igorek72rus
Здравствуйте. Примерно так. Запускать с листа Высота [vba]
Код
Public Sub SetActualDate() Dim shV As Worksheet, shITR As Worksheet, rng As Range Dim ActualDate As Date, Nudost As String, r0 As Long, r1 As Long, i As Long
Set shV = ThisWorkbook.Sheets("Вахта+Подменные") Set shITR = ThisWorkbook.Sheets("ИТР")
For i = r0 To r1 If ActiveSheet.Cells(i, "G") <> "" Then Nudost = ActiveSheet.Cells(i, "G") Set rng = shV.Columns(8).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) Else Set rng = shITR.Columns(8).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) End If End If Next i End Sub
[/vba] в файле лишние листы удалила, чтобы влез на форум
Здравствуйте. Примерно так. Запускать с листа Высота [vba]
Код
Public Sub SetActualDate() Dim shV As Worksheet, shITR As Worksheet, rng As Range Dim ActualDate As Date, Nudost As String, r0 As Long, r1 As Long, i As Long
Set shV = ThisWorkbook.Sheets("Вахта+Подменные") Set shITR = ThisWorkbook.Sheets("ИТР")
For i = r0 To r1 If ActiveSheet.Cells(i, "G") <> "" Then Nudost = ActiveSheet.Cells(i, "G") Set rng = shV.Columns(8).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) Else Set rng = shITR.Columns(8).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) End If End If Next i End Sub
[/vba] в файле лишние листы удалила, чтобы влез на форумPelena
For i = r0 To r1 If ActiveSheet.Cells(i, "G") <> "" Then Nudost = ActiveSheet.Cells(i, "G") Set rng = shV.Columns(11).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) Else Set rng = shITR.Columns(8).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) End If End If Next i End Sub
[/vba]
В данном макросе прибавляется 1 год, а если мне нужно в одном листе не год прибавить а 3 месяца, как изменится макрос?
Pelena, [vba]
Код
Dim shV As Worksheet, shITR As Worksheet, rng As Range Dim ActualDate As Date, Nudost As String, r0 As Long, r1 As Long, i As Long
Set shV = ThisWorkbook.Sheets("Вахта+Подменные") Set shITR = ThisWorkbook.Sheets("ИТР")
For i = r0 To r1 If ActiveSheet.Cells(i, "G") <> "" Then Nudost = ActiveSheet.Cells(i, "G") Set rng = shV.Columns(11).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) Else Set rng = shITR.Columns(8).Find(What:=Nudost, LookAt:=xlWhole) If Not rng Is Nothing Then rng.Offset(1) = DateAdd("yyyy", 1, ActualDate) End If End If Next i End Sub
[/vba]
В данном макросе прибавляется 1 год, а если мне нужно в одном листе не год прибавить а 3 месяца, как изменится макрос?igorek72rus