В макросах не сильна, но думаю, начать надо с создания листов, аналогичных листу ТЕЛЕФОНЫ, где прописать бренды и модели. А затем заглянуть в код формы, найти процедуры, котрые отвечают за раскрывающиеся списки Private Sub ComboBox5_Change(), Private Sub cmbBrend_Change() и сделать по аналогии с телефонами
В макросах не сильна, но думаю, начать надо с создания листов, аналогичных листу ТЕЛЕФОНЫ, где прописать бренды и модели. А затем заглянуть в код формы, найти процедуры, котрые отвечают за раскрывающиеся списки Private Sub ComboBox5_Change(), Private Sub cmbBrend_Change() и сделать по аналогии с телефонамиPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Private Sub ComboBox5_Change() 'myIndex = Me.ComboBox5.ListIndex 'Me.MultiPage1.Value = myIndex If Me.ComboBox5 = "Телефон" Then With Sheets("Телефоны") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
End If End Sub Private Sub ComboBox5_Change() 'myIndex = Me.ComboBox5.ListIndex 'Me.MultiPage1.Value = myIndex If Me.ComboBox5 = "Планшет" Then With Sheets("Планшеты") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
End If End Sub
[/vba]
[vba]
Код
Private Sub ComboBox5_Change() 'myIndex = Me.ComboBox5.ListIndex 'Me.MultiPage1.Value = myIndex If Me.ComboBox5 = "Телефон" Then With Sheets("Телефоны") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
End If End Sub Private Sub ComboBox5_Change() 'myIndex = Me.ComboBox5.ListIndex 'Me.MultiPage1.Value = myIndex If Me.ComboBox5 = "Планшет" Then With Sheets("Планшеты") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
Private Sub cmbBrend_Change() Dim myF As Range Set myF = Sheets("Телефоны").Columns(1).Find(Me.cmbBrend, , , xlWhole) Me.cmbModel.Clear i = myF.Row Do i = i + 1 DoEvents If Sheets("Телефоны").Range("B" & i) = "" Then Exit Do Me.cmbModel.AddItem Sheets("Телефоны").Range("B" & i) Loop End Sub
[/vba]
Не получается. Изменял также и в
[vba]
Код
Private Sub cmbBrend_Change() Dim myF As Range Set myF = Sheets("Телефоны").Columns(1).Find(Me.cmbBrend, , , xlWhole) Me.cmbModel.Clear i = myF.Row Do i = i + 1 DoEvents If Sheets("Телефоны").Range("B" & i) = "" Then Exit Do Me.cmbModel.AddItem Sheets("Телефоны").Range("B" & i) Loop End Sub
Не, вторую процедуру создавать не надо, надо в первую вставить строчки, касающиеся листа Планшет, вот эти
[vba]
Код
If Me.ComboBox5 = "Планшет" Then With Sheets("Планшеты") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
End If
[/vba]
[p.s.]Оформляйте код тегами[/p.s.]
Не, вторую процедуру создавать не надо, надо в первую вставить строчки, касающиеся листа Планшет, вот эти
[vba]
Код
If Me.ComboBox5 = "Планшет" Then With Sheets("Планшеты") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
Private Sub cmbBrend_Change() Dim myF As Range Set myF = Sheets("Телефоны").Columns(1).Find(Me.cmbBrend, , , xlWhole) Me.cmbModel.Clear i = myF.Row Do i = i + 1 DoEvents If Sheets("Телефоны").Range("B" & i) = "" Then Exit Do Me.cmbModel.AddItem Sheets("Телефоны").Range("B" & i) Loop If Me.ComboBox5 = "Планшет" Then With Sheets("Планшеты") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
End If End Sub
[/vba]
Так ?
[vba]
Код
Private Sub cmbBrend_Change() Dim myF As Range Set myF = Sheets("Телефоны").Columns(1).Find(Me.cmbBrend, , , xlWhole) Me.cmbModel.Clear i = myF.Row Do i = i + 1 DoEvents If Sheets("Телефоны").Range("B" & i) = "" Then Exit Do Me.cmbModel.AddItem Sheets("Телефоны").Range("B" & i) Loop If Me.ComboBox5 = "Планшет" Then With Sheets("Планшеты") myE = .Range("A" & .Rows.Count).End(xlUp).Row Me.cmbBrend.Clear For Each myCell In .Range("A1:A" & myE).SpecialCells(xlCellTypeConstants) Me.cmbBrend.AddItem myCell Next End With
Дата: Воскресенье, 05.01.2014, 13:10 |
Сообщение № 10
Группа: Гости
Ввиду наличия КРИТИЧЕСКОЙ ошибки использования SpecialCells с данными листа Планшеты, данный код правильно работать не будет. Для работоспособности кода требуется применение другого алгоритма.
Ввиду наличия КРИТИЧЕСКОЙ ошибки использования SpecialCells с данными листа Планшеты, данный код правильно работать не будет. Для работоспособности кода требуется применение другого алгоритма.excelworld.