Подскажите пожалуйста,как реализовать данную форму на листе МЕНЮ,есть кнопка выбора,данные на листе ДАННЫЕ,необходимо кнопки привязать к данным и вставку их на лист МЕНЮ в ячейки с жирным шрифтом
Подскажите пожалуйста,как реализовать данную форму на листе МЕНЮ,есть кнопка выбора,данные на листе ДАННЫЕ,необходимо кнопки привязать к данным и вставку их на лист МЕНЮ в ячейки с жирным шрифтомgge29
Private Sub CommandButton1_Click() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("МЕНЮ") With sh lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1 .Cells(lr, 2) = ComboBox1.Value .Cells(lr, 3) = ThisWorkbook.Sheets("ДАННЫЕ").Cells(ComboBox1.Value, 3) .Cells(lr, 4) = ComboBox2.Value .Cells(lr, 5) = ComboBox3.Value End With ' закрыть форму? ' Unload Me End Sub Private Sub UserForm_Initialize() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("ДАННЫЕ") With sh ComboBox1.List = .Range("b1:b12").Value lr = .Cells(Rows.Count, 4).End(xlUp).Row ComboBox2.List = .Range("d1:d" & lr).Value lr = .Cells(Rows.Count, 1).End(xlUp).Row ComboBox3.List = .Range("a1:a" & lr).Value End With End Sub
[/vba]
gge29, так пойдет? [vba]
Код
Private Sub CommandButton1_Click() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("МЕНЮ") With sh lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1 .Cells(lr, 2) = ComboBox1.Value .Cells(lr, 3) = ThisWorkbook.Sheets("ДАННЫЕ").Cells(ComboBox1.Value, 3) .Cells(lr, 4) = ComboBox2.Value .Cells(lr, 5) = ComboBox3.Value End With ' закрыть форму? ' Unload Me End Sub Private Sub UserForm_Initialize() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("ДАННЫЕ") With sh ComboBox1.List = .Range("b1:b12").Value lr = .Cells(Rows.Count, 4).End(xlUp).Row ComboBox2.List = .Range("d1:d" & lr).Value lr = .Cells(Rows.Count, 1).End(xlUp).Row ComboBox3.List = .Range("a1:a" & lr).Value End With End Sub
Марина здравствуйте!!!Почти то,что надо,но надо как-то привязаться непосредственно к 4 строке(вставка в ячейки B4:E4) и при смене данных,менять данные в этих же ячейках ,а не строкой ниже.
Марина здравствуйте!!!Почти то,что надо,но надо как-то привязаться непосредственно к 4 строке(вставка в ячейки B4:E4) и при смене данных,менять данные в этих же ячейках ,а не строкой ниже.gge29
Private Sub CommandButton1_Click() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets("МЕНЮ") With sh .Cells(4, 2) = ComboBox1.Value .Cells(4, 3) = ThisWorkbook.Sheets("ДАННЫЕ").Cells(ComboBox1.Value, 3) .Cells(4, 4) = ComboBox2.Value .Cells(4, 5) = ComboBox3.Value End With ' закрыть форму? ' Unload Me End Sub
[/vba]
Так? [vba]
Код
Private Sub CommandButton1_Click() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets("МЕНЮ") With sh .Cells(4, 2) = ComboBox1.Value .Cells(4, 3) = ThisWorkbook.Sheets("ДАННЫЕ").Cells(ComboBox1.Value, 3) .Cells(4, 4) = ComboBox2.Value .Cells(4, 5) = ComboBox3.Value End With ' закрыть форму? ' Unload Me End Sub
В макросе инициализации формы UserForm_Initialize() добавьте заполнение полей значениями из ячеек листа МЕНЮ
[vba]
Код
Private Sub UserForm_Initialize() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("ДАННЫЕ") With sh ComboBox1.List = .Range("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12").Value lr = .Cells(Rows.Count, 4).End(xlUp).Row ComboBox2.List = .Range("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009").Value ComboBox3.List = .Range("Иванов", "Петров", "Сидоров").Value End With End Sub
В макросе инициализации формы UserForm_Initialize() добавьте заполнение полей значениями из ячеек листа МЕНЮ
[vba]
Код
Private Sub UserForm_Initialize() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("ДАННЫЕ") With sh ComboBox1.List = .Range("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12").Value lr = .Cells(Rows.Count, 4).End(xlUp).Row ComboBox2.List = .Range("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009").Value ComboBox3.List = .Range("Иванов", "Петров", "Сидоров").Value End With End Sub
Private Sub UserForm_Initialize() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("ДАННЫЕ") With sh ComboBox1.List = .Range("b1:b12").Value lr = .Cells(Rows.Count, 4).End(xlUp).Row ComboBox2.List = .Range("d1:d" & lr).Value lr = .Cells(Rows.Count, 1).End(xlUp).Row ComboBox3.List = .Range("a1:a" & lr).Value End With With Sheets("МЕНЮ") ComboBox1 = .Cells(4, 2) ComboBox2 = .Cells(4, 4) ComboBox3 = .Cells(4, 5) End With End Sub
[/vba]
Я же написала ДОБАВЬТЕ, а не ИЗМЕНИТЕ [vba]
Код
Private Sub UserForm_Initialize() Dim lr&, sh As Worksheet Set sh = ThisWorkbook.Sheets("ДАННЫЕ") With sh ComboBox1.List = .Range("b1:b12").Value lr = .Cells(Rows.Count, 4).End(xlUp).Row ComboBox2.List = .Range("d1:d" & lr).Value lr = .Cells(Rows.Count, 1).End(xlUp).Row ComboBox3.List = .Range("a1:a" & lr).Value End With With Sheets("МЕНЮ") ComboBox1 = .Cells(4, 2) ComboBox2 = .Cells(4, 4) ComboBox3 = .Cells(4, 5) End With End Sub