Страница: 1 |
Страница: 1 |
Вопрос: Програмное создание кнопки
Добавлено: 14.10.04 17:43
Автор вопроса: JENIAZZZ
Подскажите как мне програмно создать кнопку в excel и програмно записать на нее макрос об удалении ненужных строк.
Спасибо
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Дмит
Вопросов: 11
Ответов: 160
Web-сайт:
Профиль | | #1
Добавлено: 14.10.04 21:17
Размести код в модуле:
Sub AddButtonMeny()
Dim mb As CommandBarButton
Set mb = CommandBars(1).Controls.Add(Type:=msoControlButton, ID:=1, Temporary:=True)
With mb
.FaceId = 59
.Caption = "Удалить строку"
.OnAction = "elStroka"
End With
End Sub
Sub DelStroka()
On Error GoTo Label
Dim S As Range
Set S = Application.InputBox("Выделите удаляемые строки", Type:=8)
S.Delete
Label:
End Sub
Первый макрос создаёт кнопку в главном меню,
второй удаляет строки.
Если тело первого макроса разместить в блоке "Эта книга" в процедуре
"Private Sub Workbook_Open()", кнопка будет создана при открытии файла.
Дмит
Номер ответа: 2
Автор ответа:
Дмит
Вопросов: 11
Ответов: 160
Web-сайт:
Профиль | | #2
Добавлено: 14.10.04 21:48
Небольшое исправление кода
'Проверка выделения именно строк
If S.Columns.Count = Cells.Columns.Count Then
S.Delete
Else: MsgBox "Выделите строки!"
End If
Номер ответа: 3
Автор ответа:
JENIAZZZ
Вопросов: 2
Ответов: 3
Профиль | | #3
Добавлено: 15.10.04 11:17
А если я буду это создовать через другое приложение.
Т.е. первоночальная проблема у меня стояла такая.
Мне нужно было создать в 1с отчет который выгружался бы в EXCEL с кнопкой т.е. мне это все прописывать нужно в 1с, а некоторые методы там к сожалению не работают
Номер ответа: 4
Автор ответа:
Дмит
Вопросов: 11
Ответов: 160
Web-сайт:
Профиль | | #4
Добавлено: 15.10.04 22:47
Я не знаком 1С, а в VB это выглядело бы так:
Private xl As Application
Set xl = New Excel.Application
xl.Workbooks.Add Template:= _
":\Documents and Settings\Владелец\Application Data\Microsoft\Шаблоны\Del.xlt"
xl.Visible = True
где Del.xlt - файл шаблона с макросами приведёнными выше, ну и вообще со всеми необходимыми вещами.
А вообще-то если 1С поддерживает автоматизацию,то с объектом xl можно делать всё, как создавать кнопки и тд и тп.
Это не ответ, но может натолкнёт на идею.
Дмит
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 18.10.04 00:49
Насколько я знаю, в 1C 7.7 экспорт в Excel есть, это благо, но он дубовый... Файлы Excel версии 97-го офиса, если не более младшего его брата Не получится на чистом 1С сделать такое.. Если это не самоцель экспортировать исключительно средствами 1C, то лучше на VB сделать программку, которая в готовый XL-файл запихнет кнопочку и макрос и вообще, всё, что угодно Даже прогресс-бар Как придумал Дмит..
Номер ответа: 6
Автор ответа:
JENIAZZZ
Вопросов: 2
Ответов: 3
Профиль | | #6
Добавлено: 20.10.04 11:50
Спасибо за советы я решила все таки эту задачу.
п=550;
р=80;
о=100;
л=50;
Кн = РАБОЧИЕкНИКИ.Sheets(1).OLEObjects.Add("Forms.CommandButton.1",,,,,,,п, р, о,л);
st = "Private Sub CommandButton1_Click()" + Chr(13) + " ThisWorkbook.Sheets(1).range(""A2:A10000"".AutoFilter Field:=1, Criteria1:="">0"", Operator:=xlAnd" + Chr(13) + "End Sub";
Excel.VBE.ActiveVBProject.VBComponents.Add (1);
Excel.VBE.ActiveVBProject.VBComponents.Item(1).CodeModule.InsertLines (1,st);
все это выглядит замороченно но работает. Но вот название кнопки не как суваться не хочет
//кн.Отчет.Sheets(1).OLEObjects("CommandButton1".Caption="оЧИСТИТЬ";
Номер ответа: 7
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #7
Добавлено: 20.10.04 14:16
И этовсё 1C... Я замолкаю и тихо выпадаю в осадок... Ну не знал, что 1С может такое Типа круто ты это придумала!