Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2012, 18:57   #1
Евгений_39
 
Регистрация: 01.09.2010
Сообщений: 7
По умолчанию как сделать так, чтобы мой макрос работал только на 1 листе

дорогие профи, помогите, как сделать так, чтобы мой макрос работал только на 1 листе:

Sub скрыть_столбцы()
Dim ch, i, k, sh As Variant
For Each sh In ThisWorkbook.Worksheets
For i = 6 To 47
ch = 5: k = 5
Do While sh.Cells(ch, i) <> ""
If sh.Cells(ch, i) = 0 Then
k = k + 1
End If
ch = ch + 1
Loop
If k = ch Then sh.Cells(1, i).EntireColumn.Hidden = True
Next i
Next
Евгений_39 вне форума Ответить с цитированием
Старый 05.09.2012, 19:13   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Напишите словами условие для скрытия столбцов.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.09.2012, 09:33   #3
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Евгений_39 Посмотреть сообщение
дорогие профи, помогите, как сделать так, чтобы мой макрос работал только на 1 листе:

Sub скрыть_столбцы()
Dim ch, i, k, sh As Variant
For Each sh In ThisWorkbook.Worksheets
For i = 6 To 47
ch = 5: k = 5
Do While sh.Cells(ch, i) <> ""
If sh.Cells(ch, i) = 0 Then
k = k + 1
End If
ch = ch + 1
Loop
If k = ch Then sh.Cells(1, i).EntireColumn.Hidden = True
Next i
Next

Код:
Sub скрыть_столбцы()
Dim ch, i, k
With Sheets("Лист1")
For i = 6 To 47
ch = 5: k = 5
Do While .Cells(ch, i) <> ""
If .Cells(ch, i) = 0 Then
k = k + 1
End If
ch = ch + 1
Loop
If k = ch Then .Cells(1, i).EntireColumn.Hidden = True
Next i
End With
End Sub
Но лучше опишите что Ваш макрос делает... Какой-то он стремный )))
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 07.09.2012, 03:25   #4
Евгений_39
 
Регистрация: 01.09.2010
Сообщений: 7
По умолчанию

спасибо большое пришлось убрать For Each sh In ThisWorkbook.Worksheets , next. sh. и все заработало, вот только выскачила еще проблема, макрос скрывает колонки с нулевыми значениями в 5-ой строке (с 6 колонки по 47-ую). Но при выполнении данные 6-ой строки("Наименование...") мешает скрывать соответствующую колонку. Помогите, как быть? Условия макроса простые, скрывать определенные колонки (с 5 по 47, в 5 строке) если значение "0" или просто пусто
Евгений_39 вне форума Ответить с цитированием
Старый 07.09.2012, 03:25   #5
Евгений_39
 
Регистрация: 01.09.2010
Сообщений: 7
По умолчанию

спасибо большое пришлось убрать For Each sh In ThisWorkbook.Worksheets , next. sh. и все заработало, вот только выскачила еще проблема, макрос скрывает колонки с нулевыми значениями в 5-ой строке (с 6 колонки по 47-ую). Но при выполнении данные 6-ой строки("Наименование...") мешает скрывать соответствующую колонку. Помогите, как быть? Условия макроса простые, скрывать определенные колонки (с 5 по 47, в 5 строке) если значение "0" или просто пусто
Евгений_39 вне форума Ответить с цитированием
Старый 07.09.2012, 07:55   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ответил здесь:
http://forum.msexcel.ru/proekty_vba/...t-t8536.0.html
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 07.09.2012, 11:39   #7
Евгений_39
 
Регистрация: 01.09.2010
Сообщений: 7
По умолчанию а как завязать макрос на одну кнопку,

а как завязать макрос на одну кнопку, которая бы не только скрывала нужные колонки но и при повторном нажатии отобразила все ячейки(строки и колонки)

Option Explicit
Sub скрыть_столбцы()
Dim i&
For i = 6 To 47
If Cells(5, i) = 0 Then Cells(1, i).EntireColumn.Hidden = True
Next i
End Sub

Private Sub CommandButton1_Click()

End Sub
Евгений_39 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод - сделать так, чтобы в Edit можно было вводить только цифры, или на оборот, только буквы BastAngel Общие вопросы Delphi 7 27.04.2012 01:15
как сделать так чтобы входить в оперу или хром только после введения пароля? [блондинка в шоке] sephia Помощь студентам 1 10.03.2012 21:22
Как сделать так, чтобы форму можно было тостать не только за заголовок? Никки Общие вопросы Delphi 1 04.09.2008 14:34