Страницы: 1
RSS
создать userform для ввода курса валют + запуск макроса
 
Доброго времени суток
необходимо следующее:
открыть файл, появилась форма для ввода курсов валют в конкретные ячейки, жмем ОК, ячейки заполнились + запустился макрос, клиент доволен))
заранее благодарю
 
Не совсем понятно какой макрос должен быть запущен, в вашем файле не нашел, но может быть клиента устроит так.
 
VSerg,прекрасно!!! благодарю!!!
только вот как вашу форму вытащить для рабочего файла?
а макрос следующий (он в рабочем файле):
Код
Private Sub Workbook_Open()
    Dim WB1 As Workbook
    Dim WB2 As Workbook
    Set WB1 = Application.Workbooks.Open("C:\Users\Comp\Desktop\Остатки\м.xls")
    Set WB2 = Application.Workbooks.Open("C:\Users\Comp\Desktop\Остатки\р.xls")
    Application.Wait (Now + TimeValue("00:00:03"))
    WB1.Close
    WB2.Close
    End Sub
Public Sub copyLinkedSheet()
    Dim arrLink As Variant
    Dim newBook As Workbook
    Dim sLink As Variant
    ThisWorkbook.Sheets(4).Copy
    Set newBook = Application.Workbooks(Application.Workbooks.Count)
    arrLink = newBook.LinkSources(XlLink.xlExcelLinks)
    For Each sLink In arrLink
        newBook.BreakLink sLink, xlLinkTypeExcelLinks
    Next
End Sub
Sub DelRows2()
    Dim x As Range, y As Range, fst As String
    Set x = [D:D].Find(0, , xlValues, xlWhole)
    If Not x Is Nothing Then
        fst = x.Address
        Do
            If y Is Nothing Then Set y = x Else Set y = Union(y, x)
            Set x = [D:D].FindNext(x)
        Loop While fst <> x.Address
        y.EntireRow.Delete
    End If
End Sub
Sub all()
    Call Workbook_Open
    Call copyLinkedSheet
    Call DelRows2
End Sub
я не особо смыслю в макросах поэтому собирал методом тыка ))
 
С удовольствием постараюсь объяснить, но... Только после того как вы код в вашем сообщении поместите в теги.
 
Вы хотите чтобы форма показывалась при открытии м.xls и р.xls и в них вносились изменения ? Я не совсем понимаю, зачем две книги открываются на три секунды и закрываются.
 
VSerg,
весь смысл в следующем:
есть два файла создаваемые из разных 1с
есть рабочая книга берущая инфу из этих файлов
в книге формируется лист с необходимым отчетом
лист с отчетом сохраняется как отдельный файл с удалением строк равных 0

форма открывается при открытии рабочей книги
открытие и закрытие двух файлов на 3с необходимы для обновления книги (не знаю почему это не происходит в закрытом состоянии может из-за расширения файлов и книги)

еще раз благодарю за Вашу помощь
Изменено: assedo - 23.05.2017 10:56:26
 
Лучше настроить конект и обмен данными между базами 1С и в какой-то одной выводить этот отчет.
Или же с Excel напрямую стучаться в 1С, и брать необходимые данные без промежуточных файлов (но это если права пользователя 1С позволяют внешнее соединение)
 
Ivan.kh,
так то оно так, но тут бы excel освоить больше чем пользователь, а с 1с играться стремно и спецов таких чтоб базы 2х предприятий не грохнули тоже надо найти еще.
а файлики из 1с вытягиваются как xls и не берутся непосредственно из программы
 
assedo, я бы прислушался к мнению Ivan.kh. Ваша задача не сложная, и я могу попробовать помочь на уровне "лишь бы работало". Ivan.kh, может посоветовать "как сделать правильно".
Попробуйте импортировать приложенные файлы формы в вашу рабочую книгу или создайте свою. Приложенная называется frmMain, тогда, добавьте ее отображение при открытии книги:
Скрытый текст

В событие нажатия кнопки задайте требуемые для вставки ячейки и имя листа:
Код
Private Sub CommandButton1_Click()
    Worksheets("Лист1").Range("B2").Value = txtUSD.Text
    Worksheets("Лист1").Range("C2").Value = txtEUR.Text
    Unload frmMain
End Sub

Вроде как-то так.
Изменено: VSerg - 23.05.2017 11:41:19
 
VSerg,
благодарю, буду пробовать
Страницы: 1
Наверх