CEMEH ответ на Вопрос 2) каждый раз по нажатию кнопки определяйте последнюю ячейку в столбце и заполняйте от неё
Цитата: Private Sub CommandButton2_Click()
Ваш код вернёт объект типа Range (грубо говоря ссылку на ячейку), причём это не
последняя использованная, а первая после пустой - если в столбце A есть пустоты - будут проблемы ;-))
Мне больше нравится такой вариант определения последней занятой строки
' Определить число используемых рядов:
nr = ActiveSheet.UsedRange.Rows.Count
' Прыгаем вверх до последней заполненной ячейки:
lastrow = Cells(nr,col).End(xlUp).Row
' где col - номер нужного столбца
т.о. можно использовать код
Private Sub CommandButton2_Click()
Dim Lastrow as Long
lastrow = Cells(ActiveSheet.UsedRange.Rows.Count,1).End(xlUp).Row
дальше уже совсем просто:
Cells(LastRow + 1, "A").Value = UserForm1.TextBox1.Text
Cells(LastRow + 1, "C").Value = UserForm1.Calendar1
....
Правда, Вас подстерегает одна засада! Вы определяете последний занятый ряд в столбце A - а пишете в столбцы C, D, E, F, G ... а там может быть больше строчек занято, чем в столбце A
впрочем, это Ваше дело...
полуответ на Вопрос 3)
никогда не работал с элементами управления... сорри... %-(( но кое-что скажу, куда копать - а дальше Вы уж сами!
если у Вас пять столбцов, то как Вы хотите их вставить в ОДНУ бедную ячейку G2 ?!
всё значения через запятую?!
ну, можете использовать такой код
Dim AllListBox As String
Dim i as Integer
AllListBox = ""
For i = 0 To ListBox1.ColumnCount - 1
AllListBox = AllListBox & "," & ListBox1.Column(i)
Next i
Cells(2, "G").Value = AllListBox