Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Програмное создание кнопки Добавлено: 14.10.04 17:43  

Автор вопроса:  JENIAZZZ
Подскажите как мне програмно создать кнопку в excel и програмно записать на нее макрос об удалении ненужных строк.
Спасибо

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #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 = ";DelStroka"
    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-сайт: dimit.pochta.ru
 Профиль | | #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-сайт: dimit.pochta.ru
 Профиль | | #4
Добавлено: 15.10.04 22:47
Я не знаком 1С, а в VB это выглядело бы так:
Private xl As Application
    Set xl = New Excel.Application
    xl.Workbooks.Add Template:= _
        ";D:\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-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #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-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #7
Добавлено: 20.10.04 14:16
И этовсё 1C... Я замолкаю и тихо выпадаю в осадок... Ну не знал, что 1С может такое :) Типа круто ты это придумала!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам