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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2011, 16:27   #1
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию UserForm для очистки разделов бланка

Прошу помощи уважаемых форумчан!

есть некий бланк с кучей объединенных заполняемых данными ячеек в разных местах листа, бланк условно можно разделить на несколько разделов.. есть потребность очистить эти заполняемые ячейки по выбору пользователя вызвав UserForm и поставив галочки CheckBox на против нужного раздела нажать кнопочку CommandButton и выбранные разделы будут очищены....
хотелось бы но не получается:
галочку поставил раздел выбран, нужна возможность выбирать несколько разделов, сняв галочку с ошибочно выбранного раздела он не очищается, очистка происходит только после нажатия кнопки..

додумался только вот так
Вложения
Тип файла: rar Очистить бланк.rar (10.4 Кб, 11 просмотров)
BDA2011 вне форума Ответить с цитированием
Старый 05.11.2011, 16:57   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Это весь код вашей формы.Лишнее удалите

Код:
Private Sub CommandButton1_Click()
If CheckBox1.Value Then
Range("B2:I2,D3:I3").ClearContents
End If

If CheckBox2.Value Then
   Range( _
        "K7:R7,F9:M9,D12:J12,K12:Q12,R12:X12,Y12:AE12,A13:G13,H13:N13,O13:U13,V13:AB13" _
        ).ClearContents
End If

If CheckBox3.Value Then
 Range("B17:AC30").ClearContents
End If

If CheckBox4.Value Then
 Range("D33:AE33,A34:AE34,A35:AE35,A36:AE36,A37:AE37,A37:AE37").ClearContents
End If

If CheckBox5.Value Then
 Range( _
        "B2:I2,D3:I3,K7:R7,F9:M9,D12:J12,K12:Q12,R12:X12,Y12:AE12,A13:G13,H13:N13,O13:U13,V13:AB13,B17:AC30,D33:AE33,A34:AE34,A35:AE35,A36:AE36,A37:AE37,A37:AE37" _
        ).ClearContents
End If
    Unload UserForm1
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.11.2011, 17:14   #3
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

Огромное Спасибо!
BDA2011 вне форума Ответить с цитированием
Старый 05.11.2011, 17:35   #4
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Это весь код вашей формы.Лишнее удалите...
Не, это слишком просто
А если с селектами? Вот часть кода:
Код:
Private Sub ertert()
Dim i As Byte
For i = 1 To 4
    If Me.Controls("CheckBox" & i) Then
        If rSel Is Nothing Then
            Set rSel = Range(Me.Controls("CheckBox" & i).Tag)
        Else
            Set rSel = Union(rSel, Range(Me.Controls("CheckBox" & i).Tag))
        End If
    End If
Next i
If Not rSel Is Nothing Then rSel.Select
End Sub
Заинтересовались? См. файл...
Вложения
Тип файла: zip Очистить бланк1.zip (14.6 Кб, 16 просмотров)
nilem вне форума Ответить с цитированием
Старый 05.11.2011, 18:08   #5
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

да интересно, преимущество в том что видно наглядно что будет удалено..
но код несовершенен.. при установке галочек во всех пунктах а потом снятии первых четырех ничего не удаляется, и если снимать все галки то последний снятый раздел остается выделеным
BDA2011 вне форума Ответить с цитированием
Старый 05.11.2011, 18:48   #6
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Ну да, надо все чекбоксы проверять. Вот так должно быть правильно, см. файл.
Вложения
Тип файла: zip Очистить бланк2.zip (14.4 Кб, 26 просмотров)
nilem вне форума Ответить с цитированием
Старый 05.11.2011, 20:11   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Николай,я не люблю(ненавижу) селекты.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.11.2011, 21:01   #8
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

doober в Вашем примере например если нужные ячейки заливать цветом а после нажатия кнопки очистить они освобождаются от данных и от заливки тоже..

правда книга в оригинале защищена, пользователи любят влезть туда куда не надо
BDA2011 вне форума Ответить с цитированием
Старый 05.11.2011, 21:23   #9
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

типа такого

Range("B2:I2,D3:I3").Interior.Color = vbRed
BDA2011 вне форума Ответить с цитированием
Старый 05.11.2011, 22:25   #10
BDA2011
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 21
По умолчанию

вот так (см. файл)
правда есть одна некорректность если выбрать сначала "разделы" а потом выбрать "всё " и снять галку "всё" то цвет всех нужных ячеек становится белым хотя галки по разделам стоят ... и наоборот тоже самое
Вложения
Тип файла: rar Очистить бланк3333.rar (13.1 Кб, 18 просмотров)
BDA2011 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Виснет комп, в автозагрузке всё пусто, какую лучше прогу для очистки зависания? romantik2011 Операционные системы общие вопросы 5 05.08.2011 12:22
Процедура очистки listbox detalik Помощь студентам 1 15.04.2011 17:41
Создание бланка на форме по заданным параметрам Nasten'ka7 Microsoft Office Excel 0 27.01.2011 16:13
Ввод бланка в базу данных access Norick БД в Delphi 6 24.02.2010 16:55
Залили принтер краской. Что нужно делать для очистки? Stilet Компьютерное железо 11 07.05.2009 04:08