powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Внесение данных в общую книгу Excel
3 сообщений из 3, страница 1 из 1
Внесение данных в общую книгу Excel
    #37332708
Gnickol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги!

у меня есть книга Excel в общем доступе, в которую через форму несколько человек вносят данные.
Заполнение происходит с помощью макроса:

...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
ActiveWorkbook.Save [color=green]'Получение последней версии файла[/color]
r = r_last +  1  [color=green]' r_last - выясняет последнюю заполненную строку[/color]

Rows(r -  1 ).Select
Selection.Copy
Rows(r).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

Range("A" & r) = UserForm1.Data
Range("h" & r) = UserForm1.Mer
Range("i" & r) = UserForm1.Prim
Range("j" & r) = UserForm1.Peredan
Range("M" & r) = UserForm1.OD
Range("N" & r) = UserForm1.Finish
Range("O" & r) = Application.UserName

ActiveWorkbook.Save [color=green]'Обновление данных[/color]
...

Но иногда возникают проблемы с наложениями данных (двое одновременно пытаются сохранить).

Каким образом можно забронировать строку листа для конкретного пользователя (чтобы остальные писали в других)???
...
Рейтинг: 0 / 0
Внесение данных в общую книгу Excel
    #37332716
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gnickol,

если это Excel > 2003, то можно использовать механизм Allow users to change range.
...
Рейтинг: 0 / 0
Внесение данных в общую книгу Excel
    #37332787
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так - можно сразу после выяснения (r_last), какую строку будете заполнять - "отметить" её (например, прописав что-либо в свободном столбце, скажем, имя юзера ). Вообще, r_last() в таком случае вообще может ориентироваться именно на "заполненность" этого столбца.
Затем копируете, что надо (внимание - придется разбить копирование строки на два региона - до "метки" и после), заполняете данные в строке... Откат тоже сделать просто - достаточно снять "метку".
Кстати, откажитесь от Select/Selection. Почему бы сразу не написать:
Код: plaintext
1.
Rows(r -  1 ).Copy Dest:=Rows(r)
Rows(r).ClearContents
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Внесение данных в общую книгу Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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