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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2010, 23:05   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию Фиксирование столбца у вертикальной границы закрепления области

Здравствуйте. Необходимо дополнить код для кнопки CommandButton4.
При выборе месяца в ComboBox4 и клике по кнопке CommandButton4 идет открытие диапазона месяца.
Необходимо чтобы после выбора числа в ComboBox3 на выбранный месяц и клике по кнопке столбец с данной датой фиксировался у вертикальной границы закрепления области.
Вложения
Тип файла: rar oblast.rar (33.9 Кб, 9 просмотров)
segail вне форума Ответить с цитированием
Старый 24.01.2010, 23:26   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А что мешает добавить в код такую строчку?
Код:
ActiveWindow.ScrollColumn = Val(ComboBox3) + 2

PS: Процедуру

Код:

Private Sub ComboBox3_Change()
    If ComboBox4.Value = "январь" Then Label2.Caption = "01"
    If ComboBox4.Value = "февраль" Then Label2.Caption = "02"
    If ComboBox4.Value = "март" Then Label2.Caption = "03"
    If ComboBox4.Value = "апрель" Then Label2.Caption = "04"
    If ComboBox4.Value = "май" Then Label2.Caption = "05"
    If ComboBox4.Value = "июнь" Then Label2.Caption = "06"
    If ComboBox4.Value = "июль" Then Label2.Caption = "07"
    If ComboBox4.Value = "август" Then Label2.Caption = "08"
    If ComboBox4.Value = "сентябрь" Then Label2.Caption = "09"
    If ComboBox4.Value = "октябрь" Then Label2.Caption = "10"
    If ComboBox4.Value = "ноябрь" Then Label2.Caption = "11"
    If ComboBox4.Value = "декабрь" Then Label2.Caption = "12"
End Sub
можно заменить одной строкой:
Код:

Private Sub ComboBox3_Change()
    Label2.Caption = Format(Month(CDate("1 " & ComboBox4)), "00")
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 24.01.2010, 23:31   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Если бы я знал эту процедуру. Спасибо.
segail вне форума Ответить с цитированием
Старый 26.01.2010, 17:31   #4
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Здравствуйте. Возникла необходимость продолжить код.

После выполнения кода, кнопкой CommandButton4, происходит защита листа паролем
Worksheets("Расход").Protect Password:="1111"
Необходимо продолжить код:
Разблокировать нижнюю ячейку после даты, фиксированную у вертикальной границы закрепления области.
Разблокировать столбец со строки 40 под датой, фиксированного у вертикальной границы закрепления области.
Заблокировать закрытие книги крестом.
Во время Initialize формы, разблокировать закрытие книги крестом.
Код:
Private Sub CommandButton4_Click()
    
    If ComboBox3.Value = "м-ц" Then
   
    MsgBox "Выберите число месяца", 64, "Информационное сообщение"
    
    Else
    
    Dim i As Integer
    
    For i = 1 To 38
        
        If ComboBox4.Text = Cells(i, 35).Text Then 'Поиск ячейки, по совпвдению текстов
                    
        Range("A3:A38").EntireRow.Hidden = True 'Скрыть диапазон
        ActiveWindow.ScrollRow = 3 'Вверх
        Rows(i & ":" & i + 2).Hidden = False ' Открытие диапазона
        ActiveWindow.ScrollColumn = Val(ComboBox3) + 2 'Фиксирование столбца у вертикальной границы закрепления области
        
        'Код  разблокировать нужные ячейки
        Worksheets("Расход").Protect Password:="1111" 'Защитить лист паролем
        'Заблокировать закрытие книги крестом.
        Unload Me 'Закрыть фориу
        
        End If
    Next
    End If
End Sub
Вложения
Тип файла: rar oblast.rar (34.0 Кб, 6 просмотров)

Последний раз редактировалось segail; 26.01.2010 в 18:13.
segail вне форума Ответить с цитированием
Старый 30.01.2010, 12:25   #5
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Здравствуйте.

После выполнения кода:
Код:
ActiveWindow.ScrollColumn = Val(ComboBox3) + 2 'Фиксирование столбца у вертикальной границы закрепления области
Происходит защита листа:
Код:
Worksheets("Расход").Protect Password:="1234" 'Защитить лист паролем
Но если произвести двойной клик по защищенному листу, то фиксированный столбец возвращается в исходное положение (то есть восстанавливается первоначальное горизонтальное положение закрепление области)
Как это избежать?

Последний раз редактировалось segail; 30.01.2010 в 12:34.
segail вне форума Ответить с цитированием
Старый 30.01.2010, 12:25   #6
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

..............
segail вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать сообщение о выходе полей за границы области печати proudbird Microsoft Office Word 1 28.07.2012 18:22
поля разела выходят за границы области печати yurik85 Microsoft Office Word 9 22.04.2012 16:57
Фиксирование времени открытия файла eda Microsoft Office Excel 5 05.02.2009 11:52
Фиксирование действий в файле asale Microsoft Office Excel 7 17.08.2008 09:06
Фиксирование нескольких ячеек lusui HTML и CSS 4 22.01.2008 17:54