Автопрокрутка листа
serg1981
Дата: Среда, 22.05.2019, 06:38 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
На листе ежесекундно поступает информация, каждая строка - добавляется снизу ( т.е. с верху вниз.) Как сделать так, что бы автоматически была прокрутка вниз, при заполнении видимой части. Что бы в режиме мониторинга была видна - последняя строка ( в ней свежие данные ) Ну и остальные было видно - сколько влезает на лит, после последней строки. Как мог объяснил.... Помогите пожалуйста разобраться, ( искал на просторах - нашел ) - вот это : [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0) End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Но не понимаю в этом, и как прикрутить тоже - а может это и не работает. Подскажите пожалуйста рабочий пример.
На листе ежесекундно поступает информация, каждая строка - добавляется снизу ( т.е. с верху вниз.) Как сделать так, что бы автоматически была прокрутка вниз, при заполнении видимой части. Что бы в режиме мониторинга была видна - последняя строка ( в ней свежие данные ) Ну и остальные было видно - сколько влезает на лит, после последней строки. Как мог объяснил.... Помогите пожалуйста разобраться, ( искал на просторах - нашел ) - вот это : [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0) End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Но не понимаю в этом, и как прикрутить тоже - а может это и не работает. Подскажите пожалуйста рабочий пример. serg1981
С уважением Сергей-1981
Сообщение отредактировал serg1981 - Среда, 22.05.2019, 09:47
Ответить
Сообщение На листе ежесекундно поступает информация, каждая строка - добавляется снизу ( т.е. с верху вниз.) Как сделать так, что бы автоматически была прокрутка вниз, при заполнении видимой части. Что бы в режиме мониторинга была видна - последняя строка ( в ней свежие данные ) Ну и остальные было видно - сколько влезает на лит, после последней строки. Как мог объяснил.... Помогите пожалуйста разобраться, ( искал на просторах - нашел ) - вот это : [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0) End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Но не понимаю в этом, и как прикрутить тоже - а может это и не работает. Подскажите пожалуйста рабочий пример. Автор - serg1981 Дата добавления - 22.05.2019 в 06:38
китин
Дата: Среда, 22.05.2019, 07:19 |
Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
serg1981 , код надо не под спойлер прятать а оформлять тэгами. пояснялка здесь
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение serg1981 , код надо не под спойлер прятать а оформлять тэгами. пояснялка здесь Автор - китин Дата добавления - 22.05.2019 в 07:19
boa
Дата: Среда, 22.05.2019, 09:09 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация:
167
±
Замечаний:
0% ±
365
serg1981, вы перепутали тэг "Формула" с тэгом "Код VBA" поэтому ваш код нечитабелен. а вообще Селект вас выведет на нужную ячейку, например [vba]Код
Cells(.Row, 11).select
[/vba]
serg1981, вы перепутали тэг "Формула" с тэгом "Код VBA" поэтому ваш код нечитабелен. а вообще Селект вас выведет на нужную ячейку, например [vba]Код
Cells(.Row, 11).select
[/vba] boa
Ответить
Сообщение serg1981, вы перепутали тэг "Формула" с тэгом "Код VBA" поэтому ваш код нечитабелен. а вообще Селект вас выведет на нужную ячейку, например [vba]Код
Cells(.Row, 11).select
[/vba] Автор - boa Дата добавления - 22.05.2019 в 09:09
serg1981
Дата: Среда, 22.05.2019, 09:48 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
про селект не пойму - куда и как ? не пинайте - новенький я...
про селект не пойму - куда и как ? не пинайте - новенький я... serg1981
С уважением Сергей-1981
Сообщение отредактировал serg1981 - Среда, 22.05.2019, 09:53
Ответить
Сообщение про селект не пойму - куда и как ? не пинайте - новенький я... Автор - serg1981 Дата добавления - 22.05.2019 в 09:48
_Boroda_
Дата: Среда, 22.05.2019, 09:53 |
Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
На листе ежесекундно поступает информация
Поступает как? С помощью чего?
На листе ежесекундно поступает информация
Поступает как? С помощью чего?_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение На листе ежесекундно поступает информация
Поступает как? С помощью чего?Автор - _Boroda_ Дата добавления - 22.05.2019 в 09:53
китин
Дата: Среда, 22.05.2019, 09:57 |
Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
Селект вас выведет на нужную ячейку, например
разместите [vba]Код
Cells(.Row, 11).select
[/vba] после [vba][/vba]
Селект вас выведет на нужную ячейку, например
разместите [vba]Код
Cells(.Row, 11).select
[/vba] после [vba][/vba]китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Селект вас выведет на нужную ячейку, например
разместите [vba]Код
Cells(.Row, 11).select
[/vba] после [vba][/vba]Автор - китин Дата добавления - 22.05.2019 в 09:57
boa
Дата: Среда, 22.05.2019, 12:41 |
Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация:
167
±
Замечаний:
0% ±
365
лучше, вместо строки [vba]Код
ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0)
[/vba]
лучше, вместо строки [vba]Код
ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0)
[/vba]boa
Сообщение отредактировал boa - Среда, 22.05.2019, 12:41
Ответить
Сообщение лучше, вместо строки [vba]Код
ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0)
[/vba]Автор - boa Дата добавления - 22.05.2019 в 12:41
serg1981
Дата: Среда, 22.05.2019, 14:33 |
Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
поменял строку в коде, вставляю код в лист, на который идут данные [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value Cells(.Row, 11).select End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Ничего не происходит - автопрокрутки нет... может, что не так делаю ?
поменял строку в коде, вставляю код в лист, на который идут данные [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value Cells(.Row, 11).select End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Ничего не происходит - автопрокрутки нет... может, что не так делаю ?serg1981
С уважением Сергей-1981
Ответить
Сообщение поменял строку в коде, вставляю код в лист, на который идут данные [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value Cells(.Row, 11).select End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Ничего не происходит - автопрокрутки нет... может, что не так делаю ?Автор - serg1981 Дата добавления - 22.05.2019 в 14:33
and_evg
Дата: Среда, 22.05.2019, 14:42 |
Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 451
Репутация:
78
±
Замечаний:
0% ±
Excel 2007
Ответить
Сообщение было сказаноАвтор - and_evg Дата добавления - 22.05.2019 в 14:42
serg1981
Дата: Среда, 22.05.2019, 14:53 |
Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
сначала - после End If сделал - не работает.... потом сказано уже - лучше, вместо строки : [vba]Код
ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0)
[/vba] не так, не так - не работает - нет автопрокрутки. извините конечно...
сначала - после End If сделал - не работает.... потом сказано уже - лучше, вместо строки : [vba]Код
ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0)
[/vba] не так, не так - не работает - нет автопрокрутки. извините конечно...serg1981
С уважением Сергей-1981
Ответить
Сообщение сначала - после End If сделал - не работает.... потом сказано уже - лучше, вместо строки : [vba]Код
ActiveWindow.SmallScroll Down:=IIf(Cells(Rows.Count, 9).End(xlUp).Row > 40, 1, 0)
[/vba] не так, не так - не работает - нет автопрокрутки. извините конечно...Автор - serg1981 Дата добавления - 22.05.2019 в 14:53
китин
Дата: Среда, 22.05.2019, 14:57 |
Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
Чтой то я ничего не понЯл.[vba]Код
Cells(.Row, 11).select
[/vba] выделяет ячейку в столбце К в ПОСЛЕДНЕЙ заполненной строке. и если заполняется строка 800 то на экране будет видна ячейка К800.если заполняется строка1 800 то на экране будет видна ячейка К1800.
Чтой то я ничего не понЯл.[vba]Код
Cells(.Row, 11).select
[/vba] выделяет ячейку в столбце К в ПОСЛЕДНЕЙ заполненной строке. и если заполняется строка 800 то на экране будет видна ячейка К800.если заполняется строка1 800 то на экране будет видна ячейка К1800. китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение Чтой то я ничего не понЯл.[vba]Код
Cells(.Row, 11).select
[/vba] выделяет ячейку в столбце К в ПОСЛЕДНЕЙ заполненной строке. и если заполняется строка 800 то на экране будет видна ячейка К800.если заполняется строка1 800 то на экране будет видна ячейка К1800. Автор - китин Дата добавления - 22.05.2019 в 14:57
boa
Дата: Среда, 22.05.2019, 15:05 |
Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация:
167
±
Замечаний:
0% ±
365
serg1981, Селект должен быть после включения обработчика событий вот рабочий код [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then With Application: .EnableEvents = False: .ScreenUpdating = False: End With Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value With Application: .EnableEvents = True: .ScreenUpdating = True: End With Cells(.Row, 9).Select End If End With End Sub Sub TEST() Dim I& For I = 20 To 120 Cells(I, 9) = I Next End Sub
[/vba]
serg1981, Селект должен быть после включения обработчика событий вот рабочий код [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then With Application: .EnableEvents = False: .ScreenUpdating = False: End With Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value With Application: .EnableEvents = True: .ScreenUpdating = True: End With Cells(.Row, 9).Select End If End With End Sub Sub TEST() Dim I& For I = 20 To 120 Cells(I, 9) = I Next End Sub
[/vba] boa
Ответить
Сообщение serg1981, Селект должен быть после включения обработчика событий вот рабочий код [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then With Application: .EnableEvents = False: .ScreenUpdating = False: End With Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value With Application: .EnableEvents = True: .ScreenUpdating = True: End With Cells(.Row, 9).Select End If End With End Sub Sub TEST() Dim I& For I = 20 To 120 Cells(I, 9) = I Next End Sub
[/vba] Автор - boa Дата добавления - 22.05.2019 в 15:05
китин
Дата: Среда, 22.05.2019, 15:08 |
Сообщение № 13
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
или так [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim ii As Long On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value ii = Target.Row ActiveWindow.ScrollRow = ii Cells(ii, 11).Activate End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba]
или так [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim ii As Long On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value ii = Target.Row ActiveWindow.ScrollRow = ii Cells(ii, 11).Activate End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение или так [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim ii As Long On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False Cells(.Row, 11).Value = Cells(.Row, 5).Value * Cells(.Row, 7).Value * 1000 Cells(.Row, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(.Row, 1).Value / Cells(.Row, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(.Row, 13) = 0.836 * Cells(.Row, 9).Value * 1000 - 0.654 Cells(.Row, 14) = Cells(.Row, 12).Value - Cells(.Row - 1, 12).Value ii = Target.Row ActiveWindow.ScrollRow = ii Cells(ii, 11).Activate End If Application.EnableEvents = True Application.ScreenUpdating = True End With End Sub
[/vba] Автор - китин Дата добавления - 22.05.2019 в 15:08
_Boroda_
Дата: Среда, 22.05.2019, 15:11 |
Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Еще вариант [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False r_ = .Row Cells(r_, 11).Value = Cells(r_, 5).Value * Cells(r_, 7).Value * 1000 Cells(r_, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(r_, 1).Value / Cells(r_, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(r_, 13) = 0.836 * Cells(r_, 9).Value * 1000 - 0.654 Cells(r_, 14) = Cells(r_, 12).Value - Cells(r_ - 1, 12).Value If r_ < 20 Then n_ = 1 Else n_ = r_ - 20 End If Application.Goto Reference:=Range("A" & n_), Scroll:=True Application.EnableEvents = True Application.ScreenUpdating = True End If End With End Sub
[/vba]
Еще вариант [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False r_ = .Row Cells(r_, 11).Value = Cells(r_, 5).Value * Cells(r_, 7).Value * 1000 Cells(r_, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(r_, 1).Value / Cells(r_, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(r_, 13) = 0.836 * Cells(r_, 9).Value * 1000 - 0.654 Cells(r_, 14) = Cells(r_, 12).Value - Cells(r_ - 1, 12).Value If r_ < 20 Then n_ = 1 Else n_ = r_ - 20 End If Application.Goto Reference:=Range("A" & n_), Scroll:=True Application.EnableEvents = True Application.ScreenUpdating = True End If End With End Sub
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Еще вариант [vba]Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next With Target If Not Intersect(Target, Columns(9)) Is Nothing Then Application.ScreenUpdating = False Application.EnableEvents = False r_ = .Row Cells(r_, 11).Value = Cells(r_, 5).Value * Cells(r_, 7).Value * 1000 Cells(r_, 12) = (-0.0039807 + Sqr(0.0039807 ^ 2 - 4 * (-0.00000059048) * (1 - (Cells(r_, 1).Value / Cells(r_, 3).Value) * 100 / 100.0299))) / (2 * (-0.00000059048)) Cells(r_, 13) = 0.836 * Cells(r_, 9).Value * 1000 - 0.654 Cells(r_, 14) = Cells(r_, 12).Value - Cells(r_ - 1, 12).Value If r_ < 20 Then n_ = 1 Else n_ = r_ - 20 End If Application.Goto Reference:=Range("A" & n_), Scroll:=True Application.EnableEvents = True Application.ScreenUpdating = True End If End With End Sub
[/vba] Автор - _Boroda_ Дата добавления - 22.05.2019 в 15:11
serg1981
Дата: Среда, 22.05.2019, 15:11 |
Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
выделяет ячейку в столбце К в ПОСЛЕДНЕЙ заполненной строке. и если заполняется строка 800 то на экране будет видна ячейка К800.если заполняется строка1 800 то на экране будет видна ячейка К1800.
код выделяет ячейку в столбце К ? а надо чтобы в столбце Е - хотя бы искал К столбец пустой
выделяет ячейку в столбце К в ПОСЛЕДНЕЙ заполненной строке. и если заполняется строка 800 то на экране будет видна ячейка К800.если заполняется строка1 800 то на экране будет видна ячейка К1800.
код выделяет ячейку в столбце К ? а надо чтобы в столбце Е - хотя бы искал К столбец пустойserg1981
С уважением Сергей-1981
Ответить
Сообщение выделяет ячейку в столбце К в ПОСЛЕДНЕЙ заполненной строке. и если заполняется строка 800 то на экране будет видна ячейка К800.если заполняется строка1 800 то на экране будет видна ячейка К1800.
код выделяет ячейку в столбце К ? а надо чтобы в столбце Е - хотя бы искал К столбец пустойАвтор - serg1981 Дата добавления - 22.05.2019 в 15:11
serg1981
Дата: Среда, 22.05.2019, 15:13 |
Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Заполняются столбцы - A, B, C, D, E, А - К столбец пустой
Заполняются столбцы - A, B, C, D, E, А - К столбец пустойserg1981
С уважением Сергей-1981
Ответить
Сообщение Заполняются столбцы - A, B, C, D, E, А - К столбец пустойАвтор - serg1981 Дата добавления - 22.05.2019 в 15:13
serg1981
Дата: Среда, 22.05.2019, 15:16 |
Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Заполняются столбцы - A, B, C, D, E, А - К столбец пустой
Заполняются столбцы - A, B, C, D, E, А - К столбец пустойserg1981
С уважением Сергей-1981
Ответить
Сообщение Заполняются столбцы - A, B, C, D, E, А - К столбец пустойАвтор - serg1981 Дата добавления - 22.05.2019 в 15:16
serg1981
Дата: Среда, 22.05.2019, 15:17 |
Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Заполняются столбцы - A, B, C, D, E, А - К столбец пустой
Заполняются столбцы - A, B, C, D, E, А - К столбец пустойserg1981
С уважением Сергей-1981
Ответить
Сообщение Заполняются столбцы - A, B, C, D, E, А - К столбец пустойАвтор - serg1981 Дата добавления - 22.05.2019 в 15:17
_Boroda_
Дата: Среда, 22.05.2019, 15:22 |
Сообщение № 19
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация:
6478
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Заполняются столбцы - A, B, C, D, E, А - К столбец пустой
С чегой-то вдруг? Вы сами привели пример кода. Не показав, кстати, файл - это как раз столбец К Ну замените в коде 11 на 1, 12 на 2, ... и будут столбцы А,В, ...
Заполняются столбцы - A, B, C, D, E, А - К столбец пустой
С чегой-то вдруг? Вы сами привели пример кода. Не показав, кстати, файл - это как раз столбец К Ну замените в коде 11 на 1, 12 на 2, ... и будут столбцы А,В, ..._Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Заполняются столбцы - A, B, C, D, E, А - К столбец пустой
С чегой-то вдруг? Вы сами привели пример кода. Не показав, кстати, файл - это как раз столбец К Ну замените в коде 11 на 1, 12 на 2, ... и будут столбцы А,В, ...Автор - _Boroda_ Дата добавления - 22.05.2019 в 15:22
serg1981
Дата: Среда, 22.05.2019, 15:23 |
Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 27
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
С чегой-то вдруг? Вы сами привели пример кода. Не показав, кстати, файл
Да, извиняюсь - не написал про столбцы код я нашел в нете и думал он ко всему листу работает, а потом человек написал - здесь же в ветке, что по столбцу - К работает, вот я и уточняю теперь, какие столбцы заполняются... не знал я, что он ( код ) по К столбцу ждет...
С чегой-то вдруг? Вы сами привели пример кода. Не показав, кстати, файл
Да, извиняюсь - не написал про столбцы код я нашел в нете и думал он ко всему листу работает, а потом человек написал - здесь же в ветке, что по столбцу - К работает, вот я и уточняю теперь, какие столбцы заполняются... не знал я, что он ( код ) по К столбцу ждет...serg1981
С уважением Сергей-1981
Ответить
Сообщение С чегой-то вдруг? Вы сами привели пример кода. Не показав, кстати, файл
Да, извиняюсь - не написал про столбцы код я нашел в нете и думал он ко всему листу работает, а потом человек написал - здесь же в ветке, что по столбцу - К работает, вот я и уточняю теперь, какие столбцы заполняются... не знал я, что он ( код ) по К столбцу ждет...Автор - serg1981 Дата добавления - 22.05.2019 в 15:23