Доброго времени суток всем гуру программирования! У меня возникла проблема c combobox Есть порода, окрасы Хотелось бы сделать так - выбор породы и окраса в одном combobox, а так же при добавление новых пород и окрасов они записывались в листы окрасы и породы (окрас зависим от порода, т.к пород много и у них много окрасов от этого зависит цена ) [vba]
Код
ComboBox1.Clear For I = 1 To Worksheets("Породы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox1.AddItem Worksheets("Породы").Cells(I, "A").Value Next I
ComboBox2.Clear For I = 1 To Worksheets("Окрасы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox2.AddItem Worksheets("Окрасы").Cells(I, "A").Value Next I
ComboBox3.Clear For I = 1 To Worksheets("Породы").Cells(Rows.Count, "B").End(xlUp).Row ComboBox3.AddItem Worksheets("Породы").Cells(I, "B").Value Next I
[/vba]
Доброго времени суток всем гуру программирования! У меня возникла проблема c combobox Есть порода, окрасы Хотелось бы сделать так - выбор породы и окраса в одном combobox, а так же при добавление новых пород и окрасов они записывались в листы окрасы и породы (окрас зависим от порода, т.к пород много и у них много окрасов от этого зависит цена ) [vba]
Код
ComboBox1.Clear For I = 1 To Worksheets("Породы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox1.AddItem Worksheets("Породы").Cells(I, "A").Value Next I
ComboBox2.Clear For I = 1 To Worksheets("Окрасы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox2.AddItem Worksheets("Окрасы").Cells(I, "A").Value Next I
ComboBox3.Clear For I = 1 To Worksheets("Породы").Cells(Rows.Count, "B").End(xlUp).Row ComboBox3.AddItem Worksheets("Породы").Cells(I, "B").Value Next I
Не понял что вы хотите. У Вас к примеру 10 пород в списке и 10 окрасов в списке. Вы хотите в одном Сombobox видеть комбинации порода - окрас? Это около 100 комбинаций.
при добавление новых пород и окрасов они записывались в листы окрасы и породы
Если в Сombobox ввели с клавы новую породу или окрас, которых нет в списке, то при "Сохранить" добавит их в конец списка на соответствующем листе. И в конце Sub'а поставим UserForm_Initialize чтоб заново заполнил Сombobox'ы с добавленной строкой [vba]
Код
Private Sub CommandButton1_Click() EmptyRows = WorksheetFunction.CountA(Range("B:B")) + 1 If ComboBox1.ListIndex = -1 Then Worksheets("Породы").Cells(Worksheets("Породы").Cells(Rows.Count, "A").End(xlUp).Row+1, "A").Value = ComboBox1.Value Cells(EmptyRows, 2) = ComboBox1.Value If ComboBox2.ListIndex = -1 Then Worksheets("Окрасы").Cells(Worksheets("Окрасы").Cells(Rows.Count, "A").End(xlUp).Row+1, "A").Value = ComboBox2.Value Cells(EmptyRows, 3) = ComboBox2.Value Cells(EmptyRows, 4) = ComboBox3.Value Cells(EmptyRows, 5) = TextBox3.Value Cells(EmptyRows, 6) = TextBox4.Value Cells(EmptyRows, 7) = TextBox5.Value Cells(EmptyRows, 9) = TextBox7.Value Cells(EmptyRows, 10) = TextBox8.Value UserForm_Initialize End Sub
[/vba]
Если введено с клавы в Сombobox, то добавьте на "Очистить" : ComboBox1.Text = "" и : ComboBox2.Text = ""
[vba]
Код
Private Sub UserForm_Initialize()
ComboBox1.Clear: ComboBox1.Text = "" For I = 1 To Worksheets("Породы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox1.AddItem Worksheets("Породы").Cells(I, "A").Value Next I
ComboBox2.Clear: ComboBox2.Text = "" For I = 1 To Worksheets("Окрасы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox2.AddItem Worksheets("Окрасы").Cells(I, "A").Value Next I
ComboBox3.Clear For I = 1 To Worksheets("Породы").Cells(Rows.Count, "B").End(xlUp).Row ComboBox3.AddItem Worksheets("Породы").Cells(I, "B").Value Next I
Не понял что вы хотите. У Вас к примеру 10 пород в списке и 10 окрасов в списке. Вы хотите в одном Сombobox видеть комбинации порода - окрас? Это около 100 комбинаций.
при добавление новых пород и окрасов они записывались в листы окрасы и породы
Если в Сombobox ввели с клавы новую породу или окрас, которых нет в списке, то при "Сохранить" добавит их в конец списка на соответствующем листе. И в конце Sub'а поставим UserForm_Initialize чтоб заново заполнил Сombobox'ы с добавленной строкой [vba]
Код
Private Sub CommandButton1_Click() EmptyRows = WorksheetFunction.CountA(Range("B:B")) + 1 If ComboBox1.ListIndex = -1 Then Worksheets("Породы").Cells(Worksheets("Породы").Cells(Rows.Count, "A").End(xlUp).Row+1, "A").Value = ComboBox1.Value Cells(EmptyRows, 2) = ComboBox1.Value If ComboBox2.ListIndex = -1 Then Worksheets("Окрасы").Cells(Worksheets("Окрасы").Cells(Rows.Count, "A").End(xlUp).Row+1, "A").Value = ComboBox2.Value Cells(EmptyRows, 3) = ComboBox2.Value Cells(EmptyRows, 4) = ComboBox3.Value Cells(EmptyRows, 5) = TextBox3.Value Cells(EmptyRows, 6) = TextBox4.Value Cells(EmptyRows, 7) = TextBox5.Value Cells(EmptyRows, 9) = TextBox7.Value Cells(EmptyRows, 10) = TextBox8.Value UserForm_Initialize End Sub
[/vba]
Если введено с клавы в Сombobox, то добавьте на "Очистить" : ComboBox1.Text = "" и : ComboBox2.Text = ""
[vba]
Код
Private Sub UserForm_Initialize()
ComboBox1.Clear: ComboBox1.Text = "" For I = 1 To Worksheets("Породы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox1.AddItem Worksheets("Породы").Cells(I, "A").Value Next I
ComboBox2.Clear: ComboBox2.Text = "" For I = 1 To Worksheets("Окрасы").Cells(Rows.Count, "A").End(xlUp).Row ComboBox2.AddItem Worksheets("Окрасы").Cells(I, "A").Value Next I
ComboBox3.Clear For I = 1 To Worksheets("Породы").Cells(Rows.Count, "B").End(xlUp).Row ComboBox3.AddItem Worksheets("Породы").Cells(I, "B").Value Next I
devilkurs, Спасибо большое за помощь! ))) возник сразу попутный ворос))) данные по породам и окрасам могут совпадать! Как недопустить эти совпадения и не дать возмоджность ввода?
devilkurs, Спасибо большое за помощь! ))) возник сразу попутный ворос))) данные по породам и окрасам могут совпадать! Как недопустить эти совпадения и не дать возмоджность ввода?AranyHunter
данные по породам и окрасам могут совпадать! Как недопустить эти совпадения и не дать возмоджность ввода?
Сплю наверно. Я вас не понял, поясните, пожалуйста. Вы имеете ввиду в ComboBox в списке чтобы не повторялись, если с клавы ввести? Так в ComboBox есть приятная фишка - когда начинаешь вводить слово, моментально подставляется совпадение найденное в списке самого ComboBox.
данные по породам и окрасам могут совпадать! Как недопустить эти совпадения и не дать возмоджность ввода?
Сплю наверно. Я вас не понял, поясните, пожалуйста. Вы имеете ввиду в ComboBox в списке чтобы не повторялись, если с клавы ввести? Так в ComboBox есть приятная фишка - когда начинаешь вводить слово, моментально подставляется совпадение найденное в списке самого ComboBox.devilkurs