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

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

tata_85 07-08-2013 13:53 2197899

макрос для автоматического копирования и обновления строк Excel 2011 (Mac)
 
Добрый день,

я настояший новичок, что касается Visual Basic программирования. Буду рада любой помощи!

Задача:

> лист "Sheet1" содержит А14:М160 данные
> эти данные должны автоматически копироваться в лист "Sheet2" начиная с А30
> т.е. если в листе "Sheet1" начиная с А14 добавляются или удаляются строки или изменяются данные, то данные / строки в листе "Sheet2" актуализируются автоматически (начиная с А30)
> новые столбцы в листе "Sheet1" не предусмотрены
> строки в листе "Sheet1" могут перемещатся (Copy/Paste)
> если возможно добавить в лист "Sheet2" кнопку "данные актуализировать", то тоже было бы замечательно

СПАСИБО заранее за помощ!

jugansarr 07-08-2013 17:46 2198050

tata_85,
Кто и как заносит данные в Sheet1?
Вы заносите эти данные? или ваша задача "актуализировать Sheet2? , а данные в Sheet1 заносятся (меняются) кем то другим

okshef 07-08-2013 21:16 2198151

Нажмите Alt+F11, запустите редактор VBA, двойным щелчком щелкните по "Лист1"
Скопируйте и вставьте в поле справа такой код:
Код:

Private Sub Worksheet_Change(ByVal Target As Range)
    Me.[A14:M160].Copy Sheets(2).[A30]
End Sub

Теперь после изменения данных в любой ячейке в "Лист1" вашего диапазона те же данные будут появляться в "Лист2" начиная с "А30".

Iska 07-08-2013 23:20 2198210

Цитата:

Цитата okshef
Скопируйте и вставьте в поле справа такой код:
Код:

Private Sub Worksheet_Change(ByVal Target As Range)
    Me.[А14:М160].Copy Sheets(2).[A30]
End Sub

»

okshef, это такой синтаксис в новых версиях VBA Office'а?

okshef 07-08-2013 23:57 2198216

Он и в старых был приемлем

Нашел. Из встроенной справки:
Цитата:

Excel Developer Reference
How to: Refer to Cells by Using Shortcut Notation

You can use either the A1 reference style or a named range within brackets as a shortcut for the Range property. You do not have to type the word "Range" or use quotation marks, as shown in the following examples.

Код:

Sub ClearRange()
    Worksheets("Sheet1").[A1:B5].ClearContents
End Sub

Sub SetValue()
    [MyRange].Value = 30
End Sub



Iska 08-08-2013 01:34 2198235

Цитата:

Цитата okshef
Нашел. Из встроенной справки: »

Я выяснил, почему предыдущий код вызывал у меня ошибку времени исполнения: там использована кириллица в адресах при задании диапазона ;). Очевидно, как автор, не думая, написала кириллицу в адресе, так она и попала к Вам в неизменном виде методом копирования.

okshef 08-08-2013 01:36 2198236

Это я из сообщения ТС скопировал.
Пост поправил.

Кстати, я совсем не уверен, что код запустится в Office для Mac... Нужно, чтобы автор проверил.

Iska 08-08-2013 02:12 2198249

Цитата:

Цитата okshef
Это я из сообщения ТС скопировал. »

Ну, я так и понял, подняв глаза повыше. Я позже дополнил своё сообщение.

tata_85 08-08-2013 19:17 2198606

спасибо огромное!!!! всё гениальное и правдо просто :-)
код отлично работает и в Мас!

Цель такова, что в лист 1 команда задаёт свою оценку, сколько дляться отдельные задания для создания веб-страницы.
В лист 2 начальник проекта может вносить корректировки (потому что конкуренты дешевле и т.д.) и делать финальное/ую предложение/ цену. Но команда работает по изначалной оценки. Хотим создать такую таблицу, что бы было более прозрачно, почему проекты экономически эффективны или нет...

На лист 1 после окончания внесения данных хотим дополнительно наложить защиту паролем.
Может есть ещё возможность оптически выделять в листе 2 изменённые числа?

СПАСИБО!

okshef 08-08-2013 20:05 2198625

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

jugansarr 09-08-2013 16:03 2199078

okshef,
Можно добавить отдельную колонку "справа" в Sheet1 с пометкой "правка начальника - не изменять!!!!" Пусть он в ней галочки ставит - что обновлять а что не трогать.


Время: 05:08.

Время: 05:08.
© OSzone.net 2001-