Kuzmich, Добрый день, попробовал в Вашем файле ввести номер договора и использовал макрос поиск. Итог на прикрепленном скриншоте. Подскажите, может что я не так делаю? Кажется нашел проблему, так получается если номер договора под номером 1, под два и далее отрабатывает нормально. Но договора под номером 1 у нас не будет. Так что все норм. Спасибо Вам большое.
Kuzmich, Добрый день, попробовал в Вашем файле ввести номер договора и использовал макрос поиск. Итог на прикрепленном скриншоте. Подскажите, может что я не так делаю? Кажется нашел проблему, так получается если номер договора под номером 1, под два и далее отрабатывает нормально. Но договора под номером 1 у нас не будет. Так что все норм. Спасибо Вам большое.Смольный
Кажется нашел проблему, так получается если номер договора под номером 1
Причина в том, что у вас на листе Движение в ячейке А9 записана 1, а данных никаких нет, на листе Персональные данные в ячейке А4 тоже 1. Надо очистить эти ячейки
Цитата
Кажется нашел проблему, так получается если номер договора под номером 1
Причина в том, что у вас на листе Движение в ячейке А9 записана 1, а данных никаких нет, на листе Персональные данные в ячейке А4 тоже 1. Надо очистить эти ячейкиKuzmich
Kuzmich, Добрый вечер, опять нужна Ваша помощь, можно ли добавить в макрос который во втором сообщении темы проверку данных? При запуске макроса идет проверка совпадения данных в последней не пустой строке на листе Движение и данных на листе Ввод данных, если они одинаковы то копирование данных отменяется и на экране выскакивает ошибка "Эти данные уже внесены"
Kuzmich, Добрый вечер, опять нужна Ваша помощь, можно ли добавить в макрос который во втором сообщении темы проверку данных? При запуске макроса идет проверка совпадения данных в последней не пустой строке на листе Движение и данных на листе Ввод данных, если они одинаковы то копирование данных отменяется и на экране выскакивает ошибка "Эти данные уже внесены"Смольный
По всем ячейкам которые копируются с листа Ввод данных на лист Движение P.S. Сейчас заметил, если защитить листы от редактирования, то макрос тоже не копирует, можно как нибудь макросу разрешить копировать на защищенный лист?
По всем ячейкам которые копируются с листа Ввод данных на лист Движение P.S. Сейчас заметил, если защитить листы от редактирования, то макрос тоже не копирует, можно как нибудь макросу разрешить копировать на защищенный лист?Смольный
Сообщение отредактировал Смольный - Суббота, 21.05.2022, 03:52
Доброго дня, может кто помочь, а то Kuzmich, с пятницы потерялся, осталось решить два вопроса и файл готов. Дело в том, что в этом файле уже с 1 июня нужно будет работать специалистам. Файл прикреплен, вопросы выше этого сообщения. Изменения нужно внести в макрос ниже. Помогите пожалуйста. [vba]
Код
Sub Add_Sell() Worksheets("Ввод данных").Range("G6:P6").Copy n = Worksheets("Персональные данные").Range("A100000").End(xlUp).Row Worksheets("Персональные данные").Cells(n + 1, 2).PasteSpecial Paste:=xlPasteValues Worksheets("Ввод данных").Range("A6").Copy Worksheets("Персональные данные").Cells(n + 1, 1) With Worksheets("Движение") n = .Range("A100000").End(xlUp).Row + 1 Range("A6:G6").Copy .Range("A" & n) End With End Sub
[/vba]
Доброго дня, может кто помочь, а то Kuzmich, с пятницы потерялся, осталось решить два вопроса и файл готов. Дело в том, что в этом файле уже с 1 июня нужно будет работать специалистам. Файл прикреплен, вопросы выше этого сообщения. Изменения нужно внести в макрос ниже. Помогите пожалуйста. [vba]
Код
Sub Add_Sell() Worksheets("Ввод данных").Range("G6:P6").Copy n = Worksheets("Персональные данные").Range("A100000").End(xlUp).Row Worksheets("Персональные данные").Cells(n + 1, 2).PasteSpecial Paste:=xlPasteValues Worksheets("Ввод данных").Range("A6").Copy Worksheets("Персональные данные").Cells(n + 1, 1) With Worksheets("Движение") n = .Range("A100000").End(xlUp).Row + 1 Range("A6:G6").Copy .Range("A" & n) End With End Sub
RAN, Толи лыжи не едут, толи я не такой) По ссылке последний макрос как раз для меня, заменил название листов на свои, сохранил, но макрос не работает. Подскажите что не так делаю. Ниже макрос из прикрепленного файла с моими изменениями. [vba]
Код
Private Sub Workbook_Open() Dim arr, sSh arr = Array("Ввод данных", "Персональные данные", "Движение") For Each sSh In arr Protect_for_User_Non_for_VBA Me.Sheets(sSh) Next End Sub Sub Protect_for_User_Non_for_VBA(wsSh As Worksheet) wsSh.Protect Password:="55", AllowFiltering:=True, UserInterfaceOnly:=True End Sub
[/vba]
RAN, Толи лыжи не едут, толи я не такой) По ссылке последний макрос как раз для меня, заменил название листов на свои, сохранил, но макрос не работает. Подскажите что не так делаю. Ниже макрос из прикрепленного файла с моими изменениями. [vba]
Код
Private Sub Workbook_Open() Dim arr, sSh arr = Array("Ввод данных", "Персональные данные", "Движение") For Each sSh In arr Protect_for_User_Non_for_VBA Me.Sheets(sSh) Next End Sub Sub Protect_for_User_Non_for_VBA(wsSh As Worksheet) wsSh.Protect Password:="55", AllowFiltering:=True, UserInterfaceOnly:=True End Sub
RAN, В том то и дело что уже третий час бьюсь, скопировал макрос в "Эта книга", при открытии блокирует ячейки, но и макрос не может скопировать данные с ввода данных на персональные данные и движение.
RAN, В том то и дело что уже третий час бьюсь, скопировал макрос в "Эта книга", при открытии блокирует ячейки, но и макрос не может скопировать данные с ввода данных на персональные данные и движение.Смольный
Private Sub Workbook_Open() Dim arr, sSh As Worksheet arr = Array("Ввод данных", "Персональные данные", "Движение") For Each sSh In Sheets(arr) Protect_for_User_Non_for_VBA sSh 'Me.Sheets(sSh) Next End Sub
[/vba]
Действительно, одна Copy не работает. А с Paste работает. [vba]
Private Sub Workbook_Open() Dim arr, sSh As Worksheet arr = Array("Ввод данных", "Персональные данные", "Движение") For Each sSh In Sheets(arr) Protect_for_User_Non_for_VBA sSh 'Me.Sheets(sSh) Next End Sub
[/vba]копируются данные с ячейки А6 с ввода данных во все ячейки на листе персональные данные и далее выдает ошибку копирования на лист движения. Скрины ошибок прикрепил.
RAN, Эх...моя невнимательность, при таком макросе [vba]
[/vba]копируются данные с ячейки А6 с ввода данных во все ячейки на листе персональные данные и далее выдает ошибку копирования на лист движения. Скрины ошибок прикрепил.Смольный
Почему вы считаете, что если внести правку в одном месте, в другом оно само исправится? А еще лучше копируйте используя PasteSpecial. Этот метод позволяет указать конечную ячейку в коде (в отличие от Paste).
Почему вы считаете, что если внести правку в одном месте, в другом оно само исправится? А еще лучше копируйте используя PasteSpecial. Этот метод позволяет указать конечную ячейку в коде (в отличие от Paste).RAN
RAN, Спасибо Вам огромное, я смог))) Можно Вас попросить решить последний вопрос по макросу копирования.[vba]
Код
Sub Add_Sell() Worksheets("Ввод данных").Range("G6:P6").Copy n = Worksheets("Персональные данные").Range("A100000").End(xlUp).Row Worksheets("Персональные данные").Cells(n + 1, 2).PasteSpecial Paste:=xlPasteValues Worksheets("Ввод данных").Range("A6").Copy 'Worksheets("Персональные данные").Cells(n + 1, 1) Worksheets("Персональные данные").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues With Worksheets("Движение") n = .Range("A100000").End(xlUp).Row Range("A6:G6").Copy '.Range("A" & n) Worksheets("Движение").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues End With End Sub
[/vba]При запуске макроса идет проверка совпадения данных в последней не пустой строке на листе Движение и данных на листе Ввод данных, если они одинаковы то копирование данных отменяется и на экране выскакивает ошибка "Эти данные уже внесены" подробности в этом сообщении http://www.excelworld.ru/forum/10-49883-326808-16-1653091675
RAN, Спасибо Вам огромное, я смог))) Можно Вас попросить решить последний вопрос по макросу копирования.[vba]
Код
Sub Add_Sell() Worksheets("Ввод данных").Range("G6:P6").Copy n = Worksheets("Персональные данные").Range("A100000").End(xlUp).Row Worksheets("Персональные данные").Cells(n + 1, 2).PasteSpecial Paste:=xlPasteValues Worksheets("Ввод данных").Range("A6").Copy 'Worksheets("Персональные данные").Cells(n + 1, 1) Worksheets("Персональные данные").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues With Worksheets("Движение") n = .Range("A100000").End(xlUp).Row Range("A6:G6").Copy '.Range("A" & n) Worksheets("Движение").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues End With End Sub
[/vba]При запуске макроса идет проверка совпадения данных в последней не пустой строке на листе Движение и данных на листе Ввод данных, если они одинаковы то копирование данных отменяется и на экране выскакивает ошибка "Эти данные уже внесены" подробности в этом сообщении http://www.excelworld.ru/forum/10-49883-326808-16-1653091675Смольный