powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программная генерация XL-листа с диалогом
5 сообщений из 5, страница 1 из 1
Программная генерация XL-листа с диалогом
    #34401125
Mironov Igor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из Visual FoxPro генерирую файл прайс-листа в формате XLS.
В нем, среди прочего, есть колонки:
"Код" - уникальный код товара,
"Количество заказа" - пустая колонка, в нее пользователи вбивают нужное им количество товара.

Хочу сделать следующую доработку:
пользователь вводит код товара и количество (в какие-либо фиксированные ячейки или в TextBox-ы),
нажимает CommandButton, и встроенная процедура заполняет ячейку "Количество заказа" напротив соответствующей ячейки "Код".

Может быть кто-то уже решал такую задачу и может помочь ? Ссылки приветствуются.
(Программированием под Офис раньше не занимался)
...
Рейтинг: 0 / 0
Программная генерация XL-листа с диалогом
    #34401945
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри
...
Рейтинг: 0 / 0
Программная генерация XL-листа с диалогом
    #34402001
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к тому же плюс Programming To The Visual Basic Editor
...
Рейтинг: 0 / 0
Программная генерация XL-листа с диалогом
    #34402779
Mironov Igor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо. Очень интересная ссылка, а пример наводит на мысли :)

Хочу только уточнить: как для листа сгенерировать добавление программного кода или программного модуля ?
...
Рейтинг: 0 / 0
Программная генерация XL-листа с диалогом
    #34402827
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironov IgorБольшое спасибо. Очень интересная ссылка, а пример наводит на мысли :)

Хочу только уточнить: как для листа сгенерировать добавление программного кода или программного модуля ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Sub AddProcedureToSheetModule()
Dim VBCodeMod As CodeModule
Dim LineNum As Long

    Set VBCodeMod = ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule

    With VBCodeMod
        LineNum = .CountOfLines +  1 
        .InsertLines LineNum, _
            "Private Sub Worksheet_Change(ByVal Target As Range)" & Chr( 13 ) & _
            "Const InputDataRow = 3" & Chr( 13 ) & _
            "Const ArticleColumnNumber = 2" & Chr( 13 ) & _
            "Const FirstDataRow = 5" & Chr( 13 ) & _
            "Const AmountColumnNumber = 3" & Chr( 13 ) & _
            "Dim LastDataRow As Long" & Chr( 13 ) & _
            "Dim RowIndex As Long" & Chr( 13 ) & _
            "" & Chr( 13 ) & _
            "    If Target.Count > 1 Then Exit Sub" & Chr( 13 ) & _
            "    If Target.Value = """" Then Exit Sub" & Chr( 13 ) & _
            "" & Chr( 13 ) & _
            "    LastDataRow = Columns(ArticleColumnNumber).SpecialCells(xlCellTypeLastCell).Row" & Chr( 13 ) & _
            "" & Chr( 13 ) & _
            "    If Target.Address = Range(""ValidationListBox"").Address Then" & Chr( 13 ) & _
            "        RowIndex = Range(Cells(FirstDataRow, ArticleColumnNumber), Cells(LastDataRow, ArticleColumnNumber)).Find(Range(""ValidationListBox"").Value).Row" & Chr( 13 ) & _
            "        Range(""InputCell"").Value = Cells(RowIndex, AmountColumnNumber).Value" & Chr( 13 ) & _
            "    ElseIf Target.Address = Range(""InputCell"").Address Then" & Chr( 13 ) & _
            "        RowIndex = Range(Cells(FirstDataRow, ArticleColumnNumber), Cells(LastDataRow, ArticleColumnNumber)).Find(Range(""ValidationListBox"").Value).Row" & Chr( 13 ) & _
            "        Cells(RowIndex, AmountColumnNumber).Value = Range(""InputCell"").Value" & Chr( 13 ) & _
            "    End If" & Chr( 13 ) & _
            "" & Chr( 13 ) & _
            "End Sub"
    End With

End Sub

чтоб код работал нужно подготовить:
1 в редакторе VBA: меню "tools"-"refernces" найти и отметить "Microsoft Visual Basic for Application Extensibility"
2 в Excel: меню "tools"->"macro"->"security"-> вкладка "trusted publishers" отметить "Trust access to Visual Basic project"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программная генерация XL-листа с диалогом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]