Здравствуйте, господа! Прошу помощи... Имеем: файл, с тремя листами: "Перечень оборудования и ОС", "Нормативы ОР", "Legends". Работать нужно в "Норсативы ОР". Оборудование из первого листа переносим вручную в "Нормативы ОР" Хотелось бы: помочь в составлении макроса который бы при запуске(только в ячейке столбца №6): -проверял содержимое ячейки столбца"Наименование техкарты" листа "Нормативы ОР", и считал строки с таким же содержимым в столбце "Наименование техкарты" листа"Legends"; -копировал ячейки этих строк с 6("Наименование техкарты") по 23("Время,мин") на лист "Нормативы ОР" при этом ячейки со 2й по 5ю заполнялись значениями исходной строки; - в первой строке оставить формулу - и помечать строки отметкой "макрос" в 25 столбце(это уже получилось...)
На форуме уже нашёл макрос что копирует строку, [vba]
Код
Код: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long If Target.Column <> 6 Then Exit Sub Cancel = True: r = Target.Row + 1: Rows(r).Insert Shift:=xlDown Target.EntireRow.Copy: Cells(r, 1).PasteSpecial Paste:=xlPasteValues: Cells(r, 24) = "Макрос": Cells(r, 6).Select End Sub
[/vba]
но как прикрутить к нему индекс(поискпоз()) знаний не хватает. Да, и... нужен другой макрос чтоб срабатывал по горячим клавишам(но это я уже освоил) Помогите люди добрые!!! PS почему здесь нельзя вложить файл с макросами???
Здравствуйте, господа! Прошу помощи... Имеем: файл, с тремя листами: "Перечень оборудования и ОС", "Нормативы ОР", "Legends". Работать нужно в "Норсативы ОР". Оборудование из первого листа переносим вручную в "Нормативы ОР" Хотелось бы: помочь в составлении макроса который бы при запуске(только в ячейке столбца №6): -проверял содержимое ячейки столбца"Наименование техкарты" листа "Нормативы ОР", и считал строки с таким же содержимым в столбце "Наименование техкарты" листа"Legends"; -копировал ячейки этих строк с 6("Наименование техкарты") по 23("Время,мин") на лист "Нормативы ОР" при этом ячейки со 2й по 5ю заполнялись значениями исходной строки; - в первой строке оставить формулу - и помечать строки отметкой "макрос" в 25 столбце(это уже получилось...)
На форуме уже нашёл макрос что копирует строку, [vba]
Код
Код: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long If Target.Column <> 6 Then Exit Sub Cancel = True: r = Target.Row + 1: Rows(r).Insert Shift:=xlDown Target.EntireRow.Copy: Cells(r, 1).PasteSpecial Paste:=xlPasteValues: Cells(r, 24) = "Макрос": Cells(r, 6).Select End Sub
[/vba]
но как прикрутить к нему индекс(поискпоз()) знаний не хватает. Да, и... нужен другой макрос чтоб срабатывал по горячим клавишам(но это я уже освоил) Помогите люди добрые!!! PS почему здесь нельзя вложить файл с макросами???Jawa_12
XML - это немного другое Прикладывать можно файлы любых форматов, ограничений на форматы на форуме нет (см. вложение) А вот на размер файла - естьSerge_007
Ну помогите, люди добрые! Не получается разобраться с этими "обьектами, свойствами, свойствами которые бывают обьектами"... А начальство прессует чтоб был результат... а вручную обрабатывать 96000строк - повеситься можно... Вот попытался собрать макрос, но знаний не хватает допилить... [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long Dim c As Long If Target.Column <> 6 Then Exit Sub Cancel = True: Set c = Worksheets(4).Range("F:F").Find(Target, LookIn:=xlValues) If Not c Is Nothing Then firstResult = c.Address Do r = Target.Row + 1: Rows(r).Insert Shift:=xlDown Intersect(Worksheets(4).Rows(c.Row), Worksheets(4).Range("F:W")).Copy Destination:=Worksheets(2).Range("F" & "W") 'ïûòàåìñÿ êîïèðîâàòü ïåðåñå÷åíèå ñòðîêè è äèàïàçîíà ëèñòà 4 íà ëèñò 2 Set c = Worksheets(4).Range("F:F").FindNext(c) If c Is Nothing Then Exit Do Loop While c.Address <> firstResult End If End Sub
[/vba] ещё раз напомню что макрос должен делать: -проверял содержимое ячейки столбца"Наименование техкарты" листа "Нормативы ОР", и считал строки с таким же содержимым в столбце "Наименование техкарты" листа"Legends"; -копировал ячейки этих строк с 6("Наименование техкарты") по 23("Время,мин") на лист "Нормативы ОР" при этом ячейки со 2й по 5ю заполнялись значениями исходной строки; - в первой строке оставить формулу...
помогите пожалуйста! ибо вручную это забивать - равносильно самоубийству(хотя другие сидят и тычут Ctrl+C, Ctrl+V) PS приложенный файл очень сильно урезан в плане данных...
Ну помогите, люди добрые! Не получается разобраться с этими "обьектами, свойствами, свойствами которые бывают обьектами"... А начальство прессует чтоб был результат... а вручную обрабатывать 96000строк - повеситься можно... Вот попытался собрать макрос, но знаний не хватает допилить... [vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long Dim c As Long If Target.Column <> 6 Then Exit Sub Cancel = True: Set c = Worksheets(4).Range("F:F").Find(Target, LookIn:=xlValues) If Not c Is Nothing Then firstResult = c.Address Do r = Target.Row + 1: Rows(r).Insert Shift:=xlDown Intersect(Worksheets(4).Rows(c.Row), Worksheets(4).Range("F:W")).Copy Destination:=Worksheets(2).Range("F" & "W") 'ïûòàåìñÿ êîïèðîâàòü ïåðåñå÷åíèå ñòðîêè è äèàïàçîíà ëèñòà 4 íà ëèñò 2 Set c = Worksheets(4).Range("F:F").FindNext(c) If c Is Nothing Then Exit Do Loop While c.Address <> firstResult End If End Sub
[/vba] ещё раз напомню что макрос должен делать: -проверял содержимое ячейки столбца"Наименование техкарты" листа "Нормативы ОР", и считал строки с таким же содержимым в столбце "Наименование техкарты" листа"Legends"; -копировал ячейки этих строк с 6("Наименование техкарты") по 23("Время,мин") на лист "Нормативы ОР" при этом ячейки со 2й по 5ю заполнялись значениями исходной строки; - в первой строке оставить формулу...
помогите пожалуйста! ибо вручную это забивать - равносильно самоубийству(хотя другие сидят и тычут Ctrl+C, Ctrl+V) PS приложенный файл очень сильно урезан в плане данных...Jawa_12
Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long Dim c As Range ' х.з. какое значение Dim firstResult As String Dim Legends As Worksheet If Target.Column <> 6 Then Exit Sub 'если тыкаем не в 6й столбец - выходим Set Legends = ThisWorkbook.Worksheets("Legends") Set c = Legends.Range("F:F").Find(Target, LookIn:=xlValues) If Not c Is Nothing Then ' если "с" найдено... firstResult = c.Address Do Rows(Target.Row + 1).Insert Shift:=xlDown Legends.Range("F" & c.Row & ":W" & c.Row).Copy Range("F" & Target.Row + 1) 'пытаемся копировать пересечение строки и диапазона листа 4 на лист 2 'надо ещё воткнуть копирование ячеек листа "Нормативы ОР" с 1й по 5ю... ??? Range("A" & Target.Row & ":E" & Target.Row).Copy Range("A" & Target.Row + 1) Set c = Legends.Range("F:F").FindNext(c) Loop While c.Address <> firstResult End If End Sub
[/vba]
Пробуйте [vba]
Код
Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long Dim c As Range ' х.з. какое значение Dim firstResult As String Dim Legends As Worksheet If Target.Column <> 6 Then Exit Sub 'если тыкаем не в 6й столбец - выходим Set Legends = ThisWorkbook.Worksheets("Legends") Set c = Legends.Range("F:F").Find(Target, LookIn:=xlValues) If Not c Is Nothing Then ' если "с" найдено... firstResult = c.Address Do Rows(Target.Row + 1).Insert Shift:=xlDown Legends.Range("F" & c.Row & ":W" & c.Row).Copy Range("F" & Target.Row + 1) 'пытаемся копировать пересечение строки и диапазона листа 4 на лист 2 'надо ещё воткнуть копирование ячеек листа "Нормативы ОР" с 1й по 5ю... ??? Range("A" & Target.Row & ":E" & Target.Row).Copy Range("A" & Target.Row + 1) Set c = Legends.Range("F:F").FindNext(c) Loop While c.Address <> firstResult End If End Sub
ок спасибо... только получается перенесённые строки начинаются с последней... т.е. не учёл, что строки вставляются сверху... теперь надо либо поиск делать снизу вверх, либо вставлять строку ниже скопированной... и еще... почему то в "целевой"строке(в которой был щелчёк) не копируются ячейки F:W... Огромное СПАСИБО!!!
ок спасибо... только получается перенесённые строки начинаются с последней... т.е. не учёл, что строки вставляются сверху... теперь надо либо поиск делать снизу вверх, либо вставлять строку ниже скопированной... и еще... почему то в "целевой"строке(в которой был щелчёк) не копируются ячейки F:W... Огромное СПАСИБО!!!Jawa_12