Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоматический ввод данных при вносе в ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Автоматический ввод данных при вносе в ячейку
h1dex Дата: Вторник, 22.09.2020, 06:19 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день

Подскажите пожалуйста как написать такой макрос, который будет брать данные из таблицы Лист2 и вставлять их автоматом в таблицу Лист1.
На данный момент всё это делается через формулы см. 3 строку в листе Лист1 т.е. используются формулы впр+еслиошибка..но это неудобно т.к. при попытке редактирования данных нужно сначала скопировать ячейку с формулой..потом вставить как значение и позднее уже редактировать..хотелось бы чтобы при вставке складского номера сразу вставлялись текстовые данные в столбцы F,G,H и I.
Как такое сделать с помощью макроса?
Короче нужно чтобы при вносе складского номера в столбец E сразу вставлялись данные из Лист2..сейчас всё это делается с помощью формул
К сообщению приложен файл: 9564108.xlsx (12.0 Kb)
 
Ответить
СообщениеДобрый день

Подскажите пожалуйста как написать такой макрос, который будет брать данные из таблицы Лист2 и вставлять их автоматом в таблицу Лист1.
На данный момент всё это делается через формулы см. 3 строку в листе Лист1 т.е. используются формулы впр+еслиошибка..но это неудобно т.к. при попытке редактирования данных нужно сначала скопировать ячейку с формулой..потом вставить как значение и позднее уже редактировать..хотелось бы чтобы при вставке складского номера сразу вставлялись текстовые данные в столбцы F,G,H и I.
Как такое сделать с помощью макроса?
Короче нужно чтобы при вносе складского номера в столбец E сразу вставлялись данные из Лист2..сейчас всё это делается с помощью формул

Автор - h1dex
Дата добавления - 22.09.2020 в 06:19
Michael_S Дата: Вторник, 22.09.2020, 07:20 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
как-то так, в модуль Лист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
[/vba]
К сообщению приложен файл: h1dex.xlsm (16.2 Kb)


Сообщение отредактировал Michael_S - Вторник, 22.09.2020, 07:24
 
Ответить
Сообщениекак-то так, в модуль Лист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
[/vba]

Автор - Michael_S
Дата добавления - 22.09.2020 в 07:20
h1dex Дата: Вторник, 22.09.2020, 08:15 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
спасибо огромное..работает
 
Ответить
Сообщениеспасибо огромное..работает

Автор - h1dex
Дата добавления - 22.09.2020 в 08:15
h1dex Дата: Понедельник, 15.04.2024, 01:17 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
добрый день!

подскажите пожалуйста как сделать чтобы этот макрос брал данные для вставки с определённого листа? сейчас он берёт данные с первого листа который справа т.е. с листа2..а как сделать чтобы он брал данные с листа3? получается что если данные находятся на листе3, а перед ним слева находится лист2 то макрос уже не работает..точнее он работает, но берёт данные не из того листа

короче вопрос можно ли как то указать в этом макросе откуда вытягивать данные?
 
Ответить
Сообщениедобрый день!

подскажите пожалуйста как сделать чтобы этот макрос брал данные для вставки с определённого листа? сейчас он берёт данные с первого листа который справа т.е. с листа2..а как сделать чтобы он брал данные с листа3? получается что если данные находятся на листе3, а перед ним слева находится лист2 то макрос уже не работает..точнее он работает, но берёт данные не из того листа

короче вопрос можно ли как то указать в этом макросе откуда вытягивать данные?

Автор - h1dex
Дата добавления - 15.04.2024 в 01:17
Апострофф Дата: Понедельник, 15.04.2024, 06:49 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 458
Репутация: 126 ±
Замечаний: 0% ±

Excel 1997
Вместо
Sheets(2)

напишите [vba]
Код
Sheets("ИмяЛиста")
[/vba]
 
Ответить
СообщениеВместо
Sheets(2)

напишите [vba]
Код
Sheets("ИмяЛиста")
[/vba]

Автор - Апострофф
Дата добавления - 15.04.2024 в 06:49
h1dex Дата: Понедельник, 15.04.2024, 07:34 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
спасибо большое!
 
Ответить
Сообщениеспасибо большое!

Автор - h1dex
Дата добавления - 15.04.2024 в 07:34
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!