powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование без кода (макроса)
12 сообщений из 12, страница 1 из 1
Копирование без кода (макроса)
    #34663407
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда я в своей персональной папке редактирую файл Excel то при каждом изменении ячейки происходит автоматическое копирование файла в папку public на сервере. Вот код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
ChDir "U:\Public"
ActiveWorkbook.SaveAs Filename:= _
"U:\Public\Телефоны OU Tehnomet текущее состояние.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ChDir "P:\tadzum\Услуги\СВЯЗЬ"
ActiveWorkbook.SaveAs Filename:= _
"P:\tadzum\Услуги\СВЯЗЬ\Телефоны OU Tehnomet текущее состояние.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Range("E14").Select
Application.DisplayAlerts = True
End Sub
Но выяснилось что когда в файле на сервере кто-нибудь производит изменения, то код тоже срабатывает.
Как копировать файл без макроса?
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663741
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно так

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
  If ThisWorkbook.Path <> "U:\Public" Then
      ....
      ваш код
      ...
  EndIf
End Sub

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663747
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не храни в рабочей книге макрос. Сделай как написано в help по разделу Using Events with the Application Object в другой книге, которая будет открыта при редактировании рабочей, например в personal. Кое-какую проверку, конечно, нужно сделать, чтоб не все подряд книги макрос сохранял, а только нужные.

Другой вариант - в рабочей книге делать проверку, какой пользователь работает с ней..
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663858
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может создать там такую же книгу но без макроса и при изменении ячеек менять только изменившиеся ячейки. Это и быстрее в разы будет. Ещё можно копировать только лист с изменениями (использовать использовать событие книги, а не событие листа).
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663898
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotможно так

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
  If ThisWorkbook.Path <> "U:\Public" Then
      ....
      ваш код
      ...
  EndIf
End Sub

I Have Nine Lives You Have One Only
THINK!
Если public то что?
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663912
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот в этой строке нужно как то настроить. Чтобы смотреть можно было а сохранять нет.
Но у меня не получается настроить.
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663919
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadМожет создать там такую же книгу но без макроса и при изменении ячеек менять только изменившиеся ячейки. Это и быстрее в разы будет. Ещё можно копировать только лист с изменениями (использовать использовать событие книги, а не событие листа).
Как копировать лист в существующую книгу?
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34663926
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talgatВот в этой строке нужно как то настроить. Чтобы смотреть можно было а сохранять нет.
Но у меня не получается настроить.
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False
Если изменит так: ReadOnlyRecommended:=true и на запрос выбрать NO, то
изменять и сохранять можно...
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34664030
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotможно так

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Worksheet_Change(ByVal Target As Range)
  If ThisWorkbook.Path <> "U:\Public" Then
      ....
      ваш код
      ...
  EndIf
End Sub

I Have Nine Lives You Have One Only
THINK!
Наверное это самое то.
Спасибо
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34664068
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talgat DeggasadМожет создать там такую же книгу но без макроса и при изменении ячеек менять только изменившиеся ячейки. Это и быстрее в разы будет. Ещё можно копировать только лист с изменениями (использовать использовать событие книги, а не событие листа).
Как копировать лист в существующую книгу?
Лучше всё таки значения обновлять изменившися!
Ну а лист так наверное - это если нет ссылок на другие листы этой книги

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
   Workbooks.Open Filename:="U:\Public\Телефоны OU Tehnomet текущее состояние.xls", UpdateLinks:=False
   Set openwb = ActiveWorkbook

   ' удаление такого же листа если он был
    Application.DisplayAlerts = False
    On Error Resume Next
     openwb.Sheets(Sh.Name).Delete
    On Error GoTo  0 
    Application.DisplayAlerts = True
    
    Sh.Copy Before:=openwb.Sheets( 1 )
    
    openwb.Close True
    
End Sub
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34664523
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad talgat DeggasadМожет создать там такую же книгу но без макроса и при изменении ячеек менять только изменившиеся ячейки. Это и быстрее в разы будет. Ещё можно копировать только лист с изменениями (использовать использовать событие книги, а не событие листа).
Как копировать лист в существующую книгу?
Лучше всё таки значения обновлять изменившися!
Ну а лист так наверное - это если нет ссылок на другие листы этой книги

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    
   Workbooks.Open Filename:="U:\Public\Телефоны OU Tehnomet текущее состояние.xls", UpdateLinks:=False
   Set openwb = ActiveWorkbook

   ' удаление такого же листа если он был
    Application.DisplayAlerts = False
    On Error Resume Next
     openwb.Sheets(Sh.Name).Delete
    On Error GoTo  0 
    Application.DisplayAlerts = True
Спасибо. Но вариант If ThisWorkbook.Path <> "U:\Public" Then уже прекрасно работает!
Спасибо!
    
    Sh.Copy Before:=openwb.Sheets( 1 )
    
    openwb.Close True
    
End Sub
...
Рейтинг: 0 / 0
Копирование без кода (макроса)
    #34664616
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам решать!
Я всего лишь ответил на ваш вопрос!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование без кода (макроса)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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