Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Очень важно! Автофильтр в Excel 2003. / 5 сообщений из 5, страница 1 из 1
11.12.2006, 18:47:23
    #34191410
KubineZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень важно! Автофильтр в Excel 2003.
Очень срочно нужно закончить работу, помогите с решением:

Прилагаю рисунок, иначе не знаю смогу ли объяснить..
Скажем так:
В столбце А все ячейки объединены по 4 строки. В столбце Б объединений нет.
Необходимо выбирая автофильтром значения в А получать в столбце Б не одну строку, а все 4,
которые соответствуют 1 объединенной в А.
Очень важно, жду любой способ. Заранее спасибо.
...
Рейтинг: 0 / 0
12.12.2006, 09:33:47
    #34192193
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень важно! Автофильтр в Excel 2003.
сделай ещё один столбец где пропиши нужные данные и по нему фильтруй
...
Рейтинг: 0 / 0
12.12.2006, 11:02:14
    #34192461
KubineZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень важно! Автофильтр в Excel 2003.
vkodorсделай ещё один столбец где пропиши нужные данные и по нему фильтруй

К сожалению не подойдет: фильтрация будет проходить по нескольким столбцам,
данные должны ежемесячно обновляться.
...
Рейтинг: 0 / 0
12.12.2006, 11:52:09
    #34192677
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень важно! Автофильтр в Excel 2003.
вместо автофильтра сделай на листе комбо. в код листа помести этот код:
соотв. ComboBox1 замени на название твоего комбо,
StartRow - ряд начала таблицы
ComboBox1_Fill - запускать перед использованием. если данные постоянно меняются, то в обработчик изменений на листе можно поместить


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
Option Explicit
Const StartRow =  3 
Private InProcess As Boolean

Private Sub ComboBox1_Change()
Dim RowIndex As Long
Dim ShowThisRow As Boolean
Dim LastRow  As Long

    If InProcess = True Then Exit Sub

    ShowThisRow = False
    
     LastRow = UsedRange.Row + UsedRange.Rows.Count
    For RowIndex = StartRow To  12 
        If Cells(RowIndex,  1 ).Value = "" Then
            If ShowThisRow Then
                Rows(RowIndex).Hidden = False
            Else
                Rows(RowIndex).Hidden = True
            End If
            
        Else
            Debug.Print Cells(RowIndex,  1 ).Value
            If Cells(RowIndex,  1 ).Value Like Me.ComboBox1.Value Then
                ShowThisRow = True
                Rows(RowIndex).Hidden = False
            Else
                ShowThisRow = False
                Rows(RowIndex).Hidden = True
            End If
        End If
        
        If Me.ComboBox1.Value = "Show all" Then
            Rows(RowIndex).Hidden = False
            ShowThisRow = False
        End If
        
    Next RowIndex

End Sub

Private Sub ComboBox1_Fill()
Dim RowIndex As Long
    
    InProcess = True
    
    Me.ComboBox1.Clear
    Me.ComboBox1.AddItem "Show all"
    For RowIndex = StartRow To Cells.SpecialCells(xlCellTypeLastCell).Row
        If Cells(RowIndex,  1 ).Value <> "" Then
            Me.ComboBox1.AddItem Cells(RowIndex,  1 ).Value
        End If
    Next RowIndex
    
    InProcess = False

End Sub
...
Рейтинг: 0 / 0
12.12.2006, 11:53:14
    #34192683
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень важно! Автофильтр в Excel 2003.
в цикле константа стояла, вот правильный код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
Option Explicit
Const StartRow =  3 
Private InProcess As Boolean

Private Sub ComboBox1_Change()
Dim RowIndex As Long
Dim ShowThisRow As Boolean
Dim LastRow  As Long

    If InProcess = True Then Exit Sub

    ShowThisRow = False
    
    LastRow = UsedRange.Row + UsedRange.Rows.Count
    For RowIndex = StartRow To LastRow
        If Cells(RowIndex,  1 ).Value = "" Then
            If ShowThisRow Then
                Rows(RowIndex).Hidden = False
            Else
                Rows(RowIndex).Hidden = True
            End If
            
        Else
            Debug.Print Cells(RowIndex,  1 ).Value
            If Cells(RowIndex,  1 ).Value Like Me.ComboBox1.Value Then
                ShowThisRow = True
                Rows(RowIndex).Hidden = False
            Else
                ShowThisRow = False
                Rows(RowIndex).Hidden = True
            End If
        End If
        
        If Me.ComboBox1.Value = "Show all" Then
            Rows(RowIndex).Hidden = False
            ShowThisRow = False
        End If
        
    Next RowIndex

End Sub
Private Sub ComboBox1_Fill()
Dim RowIndex As Long
    
    InProcess = True
    
    Me.ComboBox1.Clear
    Me.ComboBox1.AddItem "Show all"
    For RowIndex = StartRow To Cells.SpecialCells(xlCellTypeLastCell).Row
        If Cells(RowIndex,  1 ).Value <> "" Then
            Me.ComboBox1.AddItem Cells(RowIndex,  1 ).Value
        End If
    Next RowIndex
    
    InProcess = False

End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Очень важно! Автофильтр в Excel 2003. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]