Скрытие/Отображение строк макросом
Цезарь
Дата: Вторник, 28.07.2015, 11:58 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Приветствую всех) Я понимаю, то что тема такая есть даже с готовым решением, но я хоть убейте не могу перенести макрос к себе в рабочую таблицу. Не могу адаптировать. Файл приложил, помогите сделать такой макрос, там в таблице есть что нужно сделать. область выделена жёлтым цветом. К сожалению не смог прикрепить всю свою таблицу, только копию листа на котором нужно сделать макрос, так как весь рабочий документ очень много весит.
Приветствую всех) Я понимаю, то что тема такая есть даже с готовым решением, но я хоть убейте не могу перенести макрос к себе в рабочую таблицу. Не могу адаптировать. Файл приложил, помогите сделать такой макрос, там в таблице есть что нужно сделать. область выделена жёлтым цветом. К сожалению не смог прикрепить всю свою таблицу, только копию листа на котором нужно сделать макрос, так как весь рабочий документ очень много весит. Цезарь
К сообщению приложен файл:
_3.xls
(41.5 Kb)
Ответить
Сообщение Приветствую всех) Я понимаю, то что тема такая есть даже с готовым решением, но я хоть убейте не могу перенести макрос к себе в рабочую таблицу. Не могу адаптировать. Файл приложил, помогите сделать такой макрос, там в таблице есть что нужно сделать. область выделена жёлтым цветом. К сожалению не смог прикрепить всю свою таблицу, только копию листа на котором нужно сделать макрос, так как весь рабочий документ очень много весит. Автор - Цезарь Дата добавления - 28.07.2015 в 11:58
Samaretz
Дата: Вторник, 28.07.2015, 12:15 |
Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация:
63
±
Замечаний:
0% ±
Excel 2010; 2013; 2016
Так? [vba]Код
Sub Collapse_Expand_Rows() Dim i As Long With Sheet3 For i = 44 To 59 .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0 Next i For i = 67 To 83 .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0 Next i End With End Sub
[/vba]
Так? [vba]Код
Sub Collapse_Expand_Rows() Dim i As Long With Sheet3 For i = 44 To 59 .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0 Next i For i = 67 To 83 .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0 Next i End With End Sub
[/vba] Samaretz
Ответить
Сообщение Так? [vba]Код
Sub Collapse_Expand_Rows() Dim i As Long With Sheet3 For i = 44 To 59 .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0 Next i For i = 67 To 83 .Rows(i).EntireRow.Hidden = .Cells(i, 6) = 0 Next i End With End Sub
[/vba] Автор - Samaretz Дата добавления - 28.07.2015 в 12:15
Цезарь
Дата: Вторник, 28.07.2015, 12:20 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Samaretz, там внизу почему то всё скрыло(( Сверху шикарно получилось))
Samaretz, там внизу почему то всё скрыло(( Сверху шикарно получилось)) Цезарь
Ответить
Сообщение Samaretz, там внизу почему то всё скрыло(( Сверху шикарно получилось)) Автор - Цезарь Дата добавления - 28.07.2015 в 12:20
Цезарь
Дата: Вторник, 28.07.2015, 12:23 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Samaretz, хотя нет вру. должно быть так. Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
Samaretz, хотя нет вру. должно быть так. Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается. Цезарь
Ответить
Сообщение Samaretz, хотя нет вру. должно быть так. Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается. Автор - Цезарь Дата добавления - 28.07.2015 в 12:23
Samaretz
Дата: Вторник, 28.07.2015, 12:24 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация:
63
±
Замечаний:
0% ±
Excel 2010; 2013; 2016
Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
А если меньше нуля? Или такого не может быть в принципе? Если в желтых ячейках могут быть только неотрицательные значения, то тогда макрос будет таким (плюс см. вложенный файл): [vba]Код
Sub Collapse_Expand_Rows() Dim i As Long With Sheet3 For i = 44 To 59 .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0 Next i For i = 67 To 83 .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0 Next i End With End Sub
[/vba]
Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
А если меньше нуля? Или такого не может быть в принципе? Если в желтых ячейках могут быть только неотрицательные значения, то тогда макрос будет таким (плюс см. вложенный файл): [vba]Код
Sub Collapse_Expand_Rows() Dim i As Long With Sheet3 For i = 44 To 59 .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0 Next i For i = 67 To 83 .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0 Next i End With End Sub
[/vba]Samaretz
Сообщение отредактировал Samaretz - Вторник, 28.07.2015, 12:32
Ответить
Сообщение Если в жёлтых ячейках 0, то строка скрывается вся. Если в ячейке >0, то строка отображается.
А если меньше нуля? Или такого не может быть в принципе? Если в желтых ячейках могут быть только неотрицательные значения, то тогда макрос будет таким (плюс см. вложенный файл): [vba]Код
Sub Collapse_Expand_Rows() Dim i As Long With Sheet3 For i = 44 To 59 .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0 Next i For i = 67 To 83 .Rows(i).EntireRow.Hidden = .Cells(i, 10) = 0 Next i End With End Sub
[/vba]Автор - Samaretz Дата добавления - 28.07.2015 в 12:24
Udik
Дата: Вторник, 28.07.2015, 13:25 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
Почти тоже самое, только с кнопочками [vba]Код
Public Sub hide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then Worksheets("l1").Rows(arrDelt(num) + i).Hidden = True End If Next i End Sub Public Sub unhide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 Worksheets("l1").Rows(arrDelt(num) + i).Hidden = False Next i End Sub
[/vba]
Почти тоже самое, только с кнопочками [vba]Код
Public Sub hide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then Worksheets("l1").Rows(arrDelt(num) + i).Hidden = True End If Next i End Sub Public Sub unhide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 Worksheets("l1").Rows(arrDelt(num) + i).Hidden = False Next i End Sub
[/vba] Udik
К сообщению приложен файл:
hide.xls
(78.5 Kb)
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Вторник, 28.07.2015, 13:32
Ответить
Сообщение Почти тоже самое, только с кнопочками [vba]Код
Public Sub hide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then Worksheets("l1").Rows(arrDelt(num) + i).Hidden = True End If Next i End Sub Public Sub unhide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 Worksheets("l1").Rows(arrDelt(num) + i).Hidden = False Next i End Sub
[/vba] Автор - Udik Дата добавления - 28.07.2015 в 13:25
Цезарь
Дата: Вторник, 28.07.2015, 13:25 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Samaretz, Спасибо громадное))) всё работает)) осталось только перенести в свою таблицу, будут вопросы, напишу) но их не должно быть))
Samaretz, Спасибо громадное))) всё работает)) осталось только перенести в свою таблицу, будут вопросы, напишу) но их не должно быть)) Цезарь
Ответить
Сообщение Samaretz, Спасибо громадное))) всё работает)) осталось только перенести в свою таблицу, будут вопросы, напишу) но их не должно быть)) Автор - Цезарь Дата добавления - 28.07.2015 в 13:25
Цезарь
Дата: Вторник, 28.07.2015, 14:19 |
Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Samaretz, не получается перенести. пишет ошибку: Object required (Error 424)
Samaretz, не получается перенести. пишет ошибку: Object required (Error 424) Цезарь
Ответить
Сообщение Samaretz, не получается перенести. пишет ошибку: Object required (Error 424) Автор - Цезарь Дата добавления - 28.07.2015 в 14:19
Цезарь
Дата: Вторник, 28.07.2015, 14:22 |
Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Udik, Не могу переместить твой макрос в свою таблицу. Сохраняю его у себя, но всё равно через сервис-макросы я его даже увидеть не могу.
Udik, Не могу переместить твой макрос в свою таблицу. Сохраняю его у себя, но всё равно через сервис-макросы я его даже увидеть не могу. Цезарь
Ответить
Сообщение Udik, Не могу переместить твой макрос в свою таблицу. Сохраняю его у себя, но всё равно через сервис-макросы я его даже увидеть не могу. Автор - Цезарь Дата добавления - 28.07.2015 в 14:22
Цезарь
Дата: Вторник, 28.07.2015, 14:24 |
Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Возможны ли эти проблемы из за того, что у меня выше Excel 2003 нет ни чего?
Возможны ли эти проблемы из за того, что у меня выше Excel 2003 нет ни чего? Цезарь
Ответить
Сообщение Возможны ли эти проблемы из за того, что у меня выше Excel 2003 нет ни чего? Автор - Цезарь Дата добавления - 28.07.2015 в 14:24
Udik
Дата: Вторник, 28.07.2015, 15:43 |
Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
Я специально в формате 2003 сохранил. Через макросы вы не увидите, т.к. процедуры с параметром. Смотреть нужно через кнопку VBA на вкладке разработчик. Запуск либо кнопкой, либо дописать четыре простеньких макроса, которые будут тупо вызывать процедуры с параметром. [p.s.]названия листа в макросе на ваш нужно сменить, либо переименовать ваш лист
Я специально в формате 2003 сохранил. Через макросы вы не увидите, т.к. процедуры с параметром. Смотреть нужно через кнопку VBA на вкладке разработчик. Запуск либо кнопкой, либо дописать четыре простеньких макроса, которые будут тупо вызывать процедуры с параметром. [p.s.]названия листа в макросе на ваш нужно сменить, либо переименовать ваш лист Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Вторник, 28.07.2015, 15:45
Ответить
Сообщение Я специально в формате 2003 сохранил. Через макросы вы не увидите, т.к. процедуры с параметром. Смотреть нужно через кнопку VBA на вкладке разработчик. Запуск либо кнопкой, либо дописать четыре простеньких макроса, которые будут тупо вызывать процедуры с параметром. [p.s.]названия листа в макросе на ваш нужно сменить, либо переименовать ваш лист Автор - Udik Дата добавления - 28.07.2015 в 15:43
Цезарь
Дата: Вторник, 28.07.2015, 16:37 |
Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Udik, можешь сделать 4 простеньких макроса по моему примеру?) Я вообще не шарю... даже не могу найти эту кнопку VBA.
Udik, можешь сделать 4 простеньких макроса по моему примеру?) Я вообще не шарю... даже не могу найти эту кнопку VBA. Цезарь
Ответить
Сообщение Udik, можешь сделать 4 простеньких макроса по моему примеру?) Я вообще не шарю... даже не могу найти эту кнопку VBA. Автор - Цезарь Дата добавления - 28.07.2015 в 16:37
Udik
Дата: Вторник, 28.07.2015, 17:08 |
Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
вот код с доп макросами [vba]Код
Public Sub hide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = True End If Next i End Sub Public Sub unhide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = False Next i End Sub Public Sub hide1() hide (1) End Sub Public Sub hide2() hide (2) End Sub Public Sub unhide1() unhide (1) End Sub Public Sub unhide2() unhide (2) End Sub
[/vba] вот кнопка
вот код с доп макросами [vba]Код
Public Sub hide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = True End If Next i End Sub Public Sub unhide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = False Next i End Sub Public Sub hide1() hide (1) End Sub Public Sub hide2() hide (2) End Sub Public Sub unhide1() unhide (1) End Sub Public Sub unhide2() unhide (2) End Sub
[/vba] вот кнопка Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Вторник, 28.07.2015, 17:10
Ответить
Сообщение вот код с доп макросами [vba]Код
Public Sub hide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 If Worksheets("l1").Cells(arrDelt(num) + i, 10) = 0 Then Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = True End If Next i End Sub Public Sub unhide(num As Byte) Static i As Byte Dim arrDelt(1 To 2) As Integer arrDelt(1) = 42 arrDelt(2) = 66 For i = 1 To 17 Worksheets("l1").Rows(arrDelt(num) + i).EntireRow.Hidden = False Next i End Sub Public Sub hide1() hide (1) End Sub Public Sub hide2() hide (2) End Sub Public Sub unhide1() unhide (1) End Sub Public Sub unhide2() unhide (2) End Sub
[/vba] вот кнопка Автор - Udik Дата добавления - 28.07.2015 в 17:08
Цезарь
Дата: Четверг, 30.07.2015, 10:11 |
Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2003
Udik, вообще не видит(( но всё равно спасибо за помощь. Не знаю как но сам сделал.
Udik, вообще не видит(( но всё равно спасибо за помощь. Не знаю как но сам сделал. Цезарь
Ответить
Сообщение Udik, вообще не видит(( но всё равно спасибо за помощь. Не знаю как но сам сделал. Автор - Цезарь Дата добавления - 30.07.2015 в 10:11
RAN
Дата: Четверг, 30.07.2015, 11:36 |
Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Смотреть нужно через кнопку VBA на вкладке разработчик
Которой в 2003 нет в принципе. Не знаю как но сам сделал.
Так последние коды и должны были появиться в окне макросов (alt+F8)
Смотреть нужно через кнопку VBA на вкладке разработчик
Которой в 2003 нет в принципе. Не знаю как но сам сделал.
Так последние коды и должны были появиться в окне макросов (alt+F8)RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Смотреть нужно через кнопку VBA на вкладке разработчик
Которой в 2003 нет в принципе. Не знаю как но сам сделал.
Так последние коды и должны были появиться в окне макросов (alt+F8)Автор - RAN Дата добавления - 30.07.2015 в 11:36
Udik
Дата: Четверг, 30.07.2015, 12:09 |
Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
Ну какой-то аналог же есть, люди ж кодят (через менюхи, вероятно)
Ну какой-то аналог же есть, люди ж кодят (через менюхи, вероятно) Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Ответить
Сообщение Ну какой-то аналог же есть, люди ж кодят (через менюхи, вероятно) Автор - Udik Дата добавления - 30.07.2015 в 12:09
AndreTM
Дата: Четверг, 30.07.2015, 15:30 |
Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
500
±
Замечаний:
0% ±
2003 & 2010
Ну какой-то аналог же есть
Ну, "люди" давно привыкли к комбинации Alt+F11 и не заморачиваются поиском кнопочек в интерфейсе...
Ну какой-то аналог же есть
Ну, "люди" давно привыкли к комбинации Alt+F11 и не заморачиваются поиском кнопочек в интерфейсе... AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение Ну какой-то аналог же есть
Ну, "люди" давно привыкли к комбинации Alt+F11 и не заморачиваются поиском кнопочек в интерфейсе... Автор - AndreTM Дата добавления - 30.07.2015 в 15:30