Подскажите пожалуйста как написать такой макрос, который будет брать данные из таблицы Лист2 и вставлять их автоматом в таблицу Лист1. На данный момент всё это делается через формулы см. 3 строку в листе Лист1 т.е. используются формулы впр+еслиошибка..но это неудобно т.к. при попытке редактирования данных нужно сначала скопировать ячейку с формулой..потом вставить как значение и позднее уже редактировать..хотелось бы чтобы при вставке складского номера сразу вставлялись текстовые данные в столбцы F,G,H и I. Как такое сделать с помощью макроса? Короче нужно чтобы при вносе складского номера в столбец E сразу вставлялись данные из Лист2..сейчас всё это делается с помощью формул
Добрый день
Подскажите пожалуйста как написать такой макрос, который будет брать данные из таблицы Лист2 и вставлять их автоматом в таблицу Лист1. На данный момент всё это делается через формулы см. 3 строку в листе Лист1 т.е. используются формулы впр+еслиошибка..но это неудобно т.к. при попытке редактирования данных нужно сначала скопировать ячейку с формулой..потом вставить как значение и позднее уже редактировать..хотелось бы чтобы при вставке складского номера сразу вставлялись текстовые данные в столбцы F,G,H и I. Как такое сделать с помощью макроса? Короче нужно чтобы при вносе складского номера в столбец E сразу вставлялись данные из Лист2..сейчас всё это делается с помощью формулh1dex
Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range If Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub With Sheets(2) Set Cel = .Range("A:A").Find(What:=Target, After:=Range("A1"), LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) End With If Cel Is Nothing Then Exit Sub Application.EnableEvents = False Target.Offset(0, 1) = Cel.Offset(0, 1) Target.Offset(0, 2) = Cel.Offset(0, 2) Target.Offset(0, 3) = Cel.Offset(0, 3) Target.Offset(0, 4) = Cel.Offset(0, 4) Application.EnableEvents = True End Sub
[/vba]
как-то так, в модуль Лист1: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range If Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub With Sheets(2) Set Cel = .Range("A:A").Find(What:=Target, After:=Range("A1"), LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) End With If Cel Is Nothing Then Exit Sub Application.EnableEvents = False Target.Offset(0, 1) = Cel.Offset(0, 1) Target.Offset(0, 2) = Cel.Offset(0, 2) Target.Offset(0, 3) = Cel.Offset(0, 3) Target.Offset(0, 4) = Cel.Offset(0, 4) Application.EnableEvents = True End Sub
подскажите пожалуйста как сделать чтобы этот макрос брал данные для вставки с определённого листа? сейчас он берёт данные с первого листа который справа т.е. с листа2..а как сделать чтобы он брал данные с листа3? получается что если данные находятся на листе3, а перед ним слева находится лист2 то макрос уже не работает..точнее он работает, но берёт данные не из того листа
короче вопрос можно ли как то указать в этом макросе откуда вытягивать данные?
добрый день!
подскажите пожалуйста как сделать чтобы этот макрос брал данные для вставки с определённого листа? сейчас он берёт данные с первого листа который справа т.е. с листа2..а как сделать чтобы он брал данные с листа3? получается что если данные находятся на листе3, а перед ним слева находится лист2 то макрос уже не работает..точнее он работает, но берёт данные не из того листа
короче вопрос можно ли как то указать в этом макросе откуда вытягивать данные?h1dex