Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Макросы в excel (http://forum.oszone.net/showthread.php?t=245286)

Bordlord 23-10-2012 10:56 2010625

Макросы в excel
 
Подскажите как написать макрос который при срабатывании бы удалял строчку с лист1, но при этом не рушилась подстановка из ячеек на лист2 с лист1. Т.е. Есть таблица на лист1, допустим 3*10, есть шаблон на лист2 в котором в некоторых ячейках вставлены данные с =лист1!a1, b1, c1. Как написать макрос так чтобы можно было удалять строку на лист1, чтобы при этом данные на лист2 не принимали вид =лист1!#ссылка#?

Iska 23-10-2012 12:26 2010664

Bordlord, никак. Вы удаляете объект, ссылка на который есть в формуле. Куда этой ссылке ссылаться после удаления объекта?!

Возможные обходные пути могут быть изложены после выкладывания образца документа.

Bordlord 23-10-2012 14:32 2010714

Вложений: 1
Выложил образец документа, при удалении первой строчки на листе1 ссылка на листе2 вида =лист1!а1 становиться =лист1#CСЫЛКА#

Iska 23-10-2012 14:40 2010717

Bordlord, я имел в виду — образец реального документа. Тогда можно будет что-то советовать. А так — ответ пока тот же: никак.

Bordlord 23-10-2012 14:43 2010718

Я и хочу создать реальный документ, его пока не существует

Iska 23-10-2012 16:09 2010765

Bordlord, прямого пути для воплощения Вашего желания не существует — об этом я уже писал выше. Это ограничение обусловлено самой системой и никак не может быть преодолено. Но могут быть обходные пути.

Зачем, например, должно осуществляться удаление строки, на ячейки которой есть ссылки в формулах? Что, также, должно происходить с формулами после удаления строки, на ячейку в которой в них были ссылки? Каковы Ваши потребности? Т.е., Вы выше написали как «не хотелось бы», а теперь изложите как и чего «хотелось бы».

Bordlord 23-10-2012 16:23 2010771

Надо чтобы в шаблоне с лист2 при исполнении макроса менялись данные в строках со ссылками, данные берутся из листа1

Iska 23-10-2012 17:47 2010827

Bordlord, сожалею, но я бессилен что-либо понять в Вашем изложении задачи.

Bordlord 23-10-2012 20:47 2010922

Я сам иногда не могу понять чего хочу)) мне нужно печатать товарнотранспортные накладные, в них есть статичные данные а есть те которые меняются на каждой ттнке, соответственно мне надо чтобы они менялись по нажатию макроса. Т.е алгоритм такой печать-> макрос-> печать-> макрос-> печать.

Надеюсь так понятнее

Iska 23-10-2012 21:50 2010948

Bordlord, нет, не понятно. Понадобится реальный пример с подробными разъяснениями.

okshef 23-10-2012 22:06 2010959

Bordlord, чтобы воплотить вашу хотелку, нужно заполнять содержимое листа 2 с помощью макросов, а не формул. Поэтому максимально точно изложите алгоритм необходимых связей.

Bordlord 23-10-2012 22:41 2010989

Вложений: 1
Сделал табличку с пояснениями

Iska 24-10-2012 00:23 2011044

Цитата:

Цитата Bordlord
Сделал табличку с пояснениями
Цитата:

Шаблон с заполненными данными нужно запускать на печать на матричном принтере…
»

Sic! Стал понятен смысл слова шаблон в контексте задачи.

Вставьте данный код:
читать дальше »
Код:

Option Explicit

Sub InsertValuesFromActiveCellIntoWorksheet()
    If ActiveSheet.Name = "Лист1" Then
        If Right(ActiveCell.Address(ReferenceStyle:=xlR1C1), 2) = "C1" Then
            If Not IsEmpty(ActiveCell.Value) Then
                With ThisWorkbook
                    With .Worksheets.Item("Лист2")
                        .Cells.Item(13, 1).Value = ActiveCell.Value
                        .Cells.Item(15, 4).Value = ActiveCell.Offset(0, 1).Value
                        .Cells.Item(13, 6).Value = ActiveCell.Offset(0, 2).Value
                       
                        .PrintPreview
                    End With
                End With
            Else
                MsgBox "Активная ячейка не содержит данных", vbExclamation, "Ошибка"
            End If
        Else
            MsgBox "Активная ячейка не находится в столбце [A]", vbExclamation, "Ошибка"
        End If
    Else
        MsgBox "Активная ячейка не находится на листе [Лист1]", vbExclamation, "Ошибка"
    End If
End Sub


в модуль рабочей книги. Назначьте его вызов на сочетание горячих клавиш. Выделите на первом листе в первом столбце потребную ячейку из списка. Нажмите сочетание горячих клавиш. Будет произведена подстановка данных из строки с выделенной ячейкой во второй лист рабочей книги, и этот лист будет выведен на предварительный просмотр (чтобы Вы могли убедиться, правильно ли произведена подстановка).

Или, может, Вам нужно, перебрав созданный список, просто отпечатать всё подряд?

Bordlord 24-10-2012 13:17 2011268

Мне нужно каждый раз после печати на принтере отматывать бланки назад, так что нужно поменять данные, нажать печать, отмотать, поменять данные, нажать печать, отмотать и т.д.

Можно пояснить куда конктретно вставить?

Iska 24-10-2012 13:39 2011286

Цитата:

Цитата Bordlord
отматывать бланки назад »

Поясните подробнее, пожалуйста.

Bordlord 24-10-2012 13:56 2011303

кнопочкой на принтере после печати каждой ттнки надо отматывать назад

Iska 24-10-2012 14:32 2011325

Цитата:

Цитата Bordlord
кнопочкой на принтере после печати каждой ттнки надо отматывать назад »

А что это даёт?


Цитата:

Цитата Bordlord
Можно пояснить куда конктретно вставить? »

Я писал — куда.

Вам желательно ознакомиться с документацией:
Начало работы с VBA в Excel 2010
Краткое руководство: создание макроса - Excel - Office.com
Запуск макроса - Excel - Office.com

Bordlord 24-10-2012 23:32 2011615

при нажатии печать выпадает ошибка 400

Iska 25-10-2012 02:08 2011683

Цитата:

Цитата Bordlord
при нажатии печать выпадает ошибка 400 »

Приведите скриншот.


Время: 22:39.

Время: 22:39.
© OSzone.net 2001-