RAN
Дата: Пятница, 25.12.2020, 19:51 |
Сообщение № 21
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Не могу понять, что вы хотите?
Странного
Не могу понять, что вы хотите?
СтранногоRAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Не могу понять, что вы хотите?
СтранногоАвтор - RAN Дата добавления - 25.12.2020 в 19:51
DimaS
Дата: Пятница, 25.12.2020, 20:40 |
Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Не могу с Вами спорить, т.к. в силу своего незнания Прошу помощи... Попробовал объяснить на примерах на листе Excel приложенного файла Макрос из сообщения №4 берет данные из С4 и копирует в С2, а мне нужно, чтоб я внес данные в С4, а макрос при этом взял данные из С3 (рассчитанные по формуле) и скопировал в С2 (при этом в С2 не должно быть формулы типа С2=С3). Возможно будет проще и правильнее написать формулу из вспомогательной ячейки С3 сразу в процедуре VBA при расчете значения С2, тогда прошу помочь с этим. Хотя, если честно, уже принципиально хочется добить первую задачу до позитивного финиша )) Формула во вспомогательной ячейке С3 следующая:
=ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)<4;4;ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)=10;11;ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)>12;0;ОКРУГЛВВЕРХ(C4 /304,8;0))))
Не могу с Вами спорить, т.к. в силу своего незнания Прошу помощи... Попробовал объяснить на примерах на листе Excel приложенного файла Макрос из сообщения №4 берет данные из С4 и копирует в С2, а мне нужно, чтоб я внес данные в С4, а макрос при этом взял данные из С3 (рассчитанные по формуле) и скопировал в С2 (при этом в С2 не должно быть формулы типа С2=С3). Возможно будет проще и правильнее написать формулу из вспомогательной ячейки С3 сразу в процедуре VBA при расчете значения С2, тогда прошу помочь с этим. Хотя, если честно, уже принципиально хочется добить первую задачу до позитивного финиша )) Формула во вспомогательной ячейке С3 следующая:
=ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)<4;4;ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)=10;11;ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)>12;0;ОКРУГЛВВЕРХ(C4 /304,8;0))))
DimaS
Сообщение отредактировал DimaS - Пятница, 25.12.2020, 20:42
Ответить
Сообщение Не могу с Вами спорить, т.к. в силу своего незнания Прошу помощи... Попробовал объяснить на примерах на листе Excel приложенного файла Макрос из сообщения №4 берет данные из С4 и копирует в С2, а мне нужно, чтоб я внес данные в С4, а макрос при этом взял данные из С3 (рассчитанные по формуле) и скопировал в С2 (при этом в С2 не должно быть формулы типа С2=С3). Возможно будет проще и правильнее написать формулу из вспомогательной ячейки С3 сразу в процедуре VBA при расчете значения С2, тогда прошу помочь с этим. Хотя, если честно, уже принципиально хочется добить первую задачу до позитивного финиша )) Формула во вспомогательной ячейке С3 следующая:
=ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)<4;4;ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)=10;11;ЕСЛИ(ОКРУГЛВВЕРХ(C4 /304,8;0)>12;0;ОКРУГЛВВЕРХ(C4 /304,8;0))))
Автор - DimaS Дата добавления - 25.12.2020 в 20:40
Kuzmich
Дата: Пятница, 25.12.2020, 21:16 |
Сообщение № 23
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация:
157
±
Замечаний:
0% ±
Excel 2003
Цитата
сразу в процедуре VBA при расчете значения С2
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C4" )) Is Nothing Then
If WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 ) < 4 Then
Range("C2" ) = 4
ElseIf WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 ) = 10 Then
Range("C2" ) = 11
ElseIf WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 ) > 12 Then
Range("C2" ) = 0
Else
Range("C2" ) = WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 )
End If
End If
End Sub
Цитата
сразу в процедуре VBA при расчете значения С2
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C4" )) Is Nothing Then
If WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 ) < 4 Then
Range("C2" ) = 4
ElseIf WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 ) = 10 Then
Range("C2" ) = 11
ElseIf WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 ) > 12 Then
Range("C2" ) = 0
Else
Range("C2" ) = WorksheetFunction.RoundUp(Range("C4" ) / 304.8 , 0 )
End If
End If
End Sub
Kuzmich
Ответить
Сообщение Цитата
сразу в процедуре VBA при расчете значения С2
[vba]
Private Sub Worksheet_Change(ByVal Target As Range ) If Target.Count > 1 Then Exit Sub If Not Intersect(Target , Range("C4")) Is Nothing Then If WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) < 4 Then Range("C2") = 4 ElseIf WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) = 10 Then Range("C2") = 11 ElseIf WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) > 12 Then Range("C2") = 0 Else Range("C2") = WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) End If End IfEnd Sub
[/vba]Автор - Kuzmich Дата добавления - 25.12.2020 в 21:16
Pelena
Дата: Пятница, 25.12.2020, 21:23 |
Сообщение № 24
Группа: Админы
Ранг: Местный житель
Сообщений: 19513
Репутация:
4620
±
Замечаний:
±
Excel 365 & Mac Excel
Может так
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$4" Then
Target.Offset(-2 ) = Target.Offset(-1 )
End If
End Sub
Может так
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$C$4" Then
Target.Offset(-2 ) = Target.Offset(-1 )
End If
End Sub
Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Может так [vba]
Private Sub Worksheet_Change(ByVal Target As Range ) If Target.Count > 1 Then Exit Sub If Target.Address = "$C$4" Then Тarget.Offset(-2) = Тarget.Offset(-1) End IfEnd Sub
[/vba] Автор - Pelena Дата добавления - 25.12.2020 в 21:23
DimaS
Дата: Пятница, 25.12.2020, 21:38 |
Сообщение № 25
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
0% ±
Последние два варианта идеально работают! Большое Спасибо!
Последние два варианта идеально работают! Большое Спасибо! DimaS
Ответить
Сообщение Последние два варианта идеально работают! Большое Спасибо! Автор - DimaS Дата добавления - 25.12.2020 в 21:38