Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление данных листа после изменения ComboBox 
:(
    Опции темы
VadimSh
Дата 12.5.2015, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.10.2007

Репутация: нет
Всего: нет



На листе имеются ячейки G1 (фамилия),  K1 (имя),  I1 (отчество), N1 (фамилия, инициалы). При обновлении любой из ячеек  лист автоматически переименовывается, листы сортируются и обновляется оглавление листов. 

Код

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$G$1" Or Target.Address = "$I$1" Or Target.Address = "$K$1" Then
       If Range("N1").Value <> "" Then
             If Len(Range("N1").Value) < 30 Then
               Target.Parent.Name = Range("N1").Value
             End If
       End If
    End If
    
    Dim i As Integer, j As Integer
    For i = 1 To Sheets.Count - 1
        For j = i + 1 To Sheets.Count
            If UCase(Sheets(i).Name) > UCase(Sheets(j).Name) Then
                Sheets(j).Move before:=Sheets(i)
            End If
       Next j
    Next i
End Sub

Private Sub ComboBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
    Case 13
        With Sheets("!!!Оглавление").Range("Имена")
            If ComboBox2.ListIndex = -1 Then .Offset(.Rows.Count).Resize(1) = ComboBox2.Text
        End With
End Select
End Sub


Добавил поле со списком ComboBox, связанное с K1 с возможностью подстановки и добавления новых имен. Но при изменении ComboBox2 листы не переименовывается, не сортируются и не обновляется оглавление. Подскажите пожалуйста чего не хватает для обновления.


Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  Обновлениеформы.rar 22,97 Kb
PM MAIL   Вверх
VadimSh
Дата 13.5.2015, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 14.10.2007

Репутация: нет
Всего: нет



Использовал другой вариант. Все работает как надо 
Код

Private Sub ComboBox2_Change()
    bla ("$I$1")
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$G$1" Or Target.Address = "$I$1" Or Target.Address = "$K$1" Then
       bla (Target.Address)
    End If
End Sub

Private Sub ComboBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
    Case 13
        With Sheets("!!!Оглавление").Range("Имена")
            If ComboBox2.ListIndex = -1 Then .Offset(.Rows.Count).Resize(1) = ComboBox2.Text
        End With
End Select
End Sub

Sub bla(addr As String)
       If Range("N1").Value <> "" Then
             If Len(Range("N1").Value) < 30 Then
               If Range(addr).Parent.Name = Range("N1").Value Then Exit Sub
               [color=red]Range(addr).Parent.Name = Range("N1").Value[/color]
             End If
       End If
       
        Dim i As Integer, j As Integer
        For i = 1 To Sheets.Count - 1
            For j = i + 1 To Sheets.Count
                If UCase(Sheets(i).Name) > UCase(Sheets(j).Name) Then
                    Sheets(j).Move before:=Sheets(i)
                End If
           Next j
        Next i
End Sub

Но выдает ошибку на строчку
Range(addr).Parent.Name = Range("N1").Value
при копировании листа: 
Run-time error '1004'. 
Нельзя присвоить листу имя, совподающее с именем другого листа, библиотеки объектов или книги, на которую ссылается VisualBasic.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1076 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.