Переделать макрос для Опен Офис Калк

Автор Радмила, 3 апреля 2016, 18:26

0 Пользователи и 1 гость просматривают эту тему.

Радмила

Всем привет
Не знала, что есть такой подводный камень.
Оказывается, макросы, написанные в Ексель, не работают в Опен Офис Калк.
Помогите, пожалуйста, переделать мои макросы для Калка.
Я смотрела примеры здесь на сайте, но мне не совсем понятен принцип замены.

В моем случае:
1. Макрос, открывающий и закрывающий книги, плюс вызывающий другой макрос

Цитата:
Sub PosCopy()
Dim lr&, wb As Workbook
    'Открываем файл с которого нужно скопировать данные
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\Позиции.xls")
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\Реестр приходов.xls")
    'Закрываем книги
    Workbooks("позиции.xls").Close
    Workbooks("реестр приходов.xls").Close
Call Pust_stroki
End Sub

Sub Pust_stroki()
Dim cell As Range: Application.ScreenUpdating = False
For Each cell In [a9:a18]
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub

2. Макрос обычной печати при условии
Sub Print3()
If [H25] + [J25] +[p25]< 500 Then
    MsgBox "При сумме менее 500 руб. Aкт не составляется!", vbCritical + vbOKOnly
    Exit Sub
ElseIf [H25] + [J25] > 3000 Then
    If MsgBox("Расхождения подтверждены контролером?", vbExclamation + vbOKCancel) = 2 Then Exit Sub
End If
ActiveSheet.PrintOut, , 3
End Sub



3. Макрос двусторонней печати при условии
Sub Print2()
If [H25] + [J25] +[p25]< 500 Then
    MsgBox "При сумме менее 500 руб. Aкт не составляется!", vbCritical + vbOKOnly
    Exit Sub
ElseIf [H25] + [J25] > 3000 Then
    If MsgBox("Расхождения подтверждены контролером?", vbExclamation + vbOKCancel) = 2 Then Exit Sub
End If
ActiveSheet.PrintOut, , 3, 2
End Sub

На листе у меня было две кнопки, первой кнопке был назначен макрос PosCopy, а на второй Print3
А как в опен офис калк даже кнопку добавить, я не знаю.
Посмотрела в сервисе, параметрах, рисовании, ничего не смогла найти.

Спасибо за помощь.

Радмила

1. Макрос попробую записать так:

Sub PosCopy()
Dim lr&, wb As Workbook
Set wb = Workbooks.Open(ThisWorkbook.Path & "\Позиции.xls")
Set wb = Workbooks.Open(ThisWorkbook.Path & "\Реестр приходов.xls")
$1.Close(False)
$1.Close(False)
Call Pust_stroki_3
End Sub
Sub Pust_stroki_3()
Dim cell As Dim oSheet as Object[n]oSheet = ThisComponent.CurrentController.ActiveSheet[n]oSheet.getCellRangeByName($1): ThisComponent.LockControllers
For Each cell In [a9:a18]
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
End If
Next cell
End Sub


Посмотрим, что получится.

rami

Цитата: Радмила от  3 апреля 2016, 16:26На листе у меня было две кнопки, первой кнопке был назначен макрос PosCopy, а на второй Print3
А как в опен офис калк даже кнопку добавить, я не знаю.
Посмотрела в сервисе, параметрах, рисовании, ничего не смогла найти.
В меню "Вид" —> "Панели инструментов" выбрать "Элементы управления". Установить "Режим разработки" выбрать нужный элемент и нарисовать. Щёлкнуть по элементу, в выпадающем меню выбрать "Элемент управления..." и отредактировать свойства. Не забыть снять "Режим разработки".