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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выполнить действие на изменение данных в ячейке (Формулы/Formulas)
выполнить действие на изменение данных в ячейке
sd31337 Дата: Понедельник, 17.03.2014, 15:27 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Добрый день!

Сразу хочу извиниться за глупый вопрос , никогда не углублялся в написание макросов для excel , да и вообще далек от excel , работаю оператором ПК , задать вопрос на Вашем форуме меня заставила нужда и безысходность , перед созданием этого вопроса скачал две книги (Основы програмирования на VB и VBA в Excel2007 , Стив Каммингс - VBA Для чайников - 2001) , прочитал обе книги , но в силу своей не образованности по данной теме либо просто не состояния понять всю эту тему не могу понять как реализовать такую вещь.

Мне нужно что бы при изменении данных в ячейке А1 Лист1 (допустим было 0 либо пусто , а стало 3 или любое другое значение ) у меня вся ячейка копировалась в Лист2 ячейка А1 уже с измененными данными .

Очень прошу подсказать как это реализовать , либо посоветуйте книгу по макросам с доступным для самый тупых людей языком .

За раннее огромное спасибо всем кто ответил .
 
Ответить
СообщениеДобрый день!

Сразу хочу извиниться за глупый вопрос , никогда не углублялся в написание макросов для excel , да и вообще далек от excel , работаю оператором ПК , задать вопрос на Вашем форуме меня заставила нужда и безысходность , перед созданием этого вопроса скачал две книги (Основы програмирования на VB и VBA в Excel2007 , Стив Каммингс - VBA Для чайников - 2001) , прочитал обе книги , но в силу своей не образованности по данной теме либо просто не состояния понять всю эту тему не могу понять как реализовать такую вещь.

Мне нужно что бы при изменении данных в ячейке А1 Лист1 (допустим было 0 либо пусто , а стало 3 или любое другое значение ) у меня вся ячейка копировалась в Лист2 ячейка А1 уже с измененными данными .

Очень прошу подсказать как это реализовать , либо посоветуйте книгу по макросам с доступным для самый тупых людей языком .

За раннее огромное спасибо всем кто ответил .

Автор - sd31337
Дата добавления - 17.03.2014 в 15:27
AlexM Дата: Понедельник, 17.03.2014, 17:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
В модуль Листа1 вставить код[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "A1" Then Sheets("Лист2").Range("A1") = Target.Value
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 17.03.2014, 17:15
 
Ответить
СообщениеВ модуль Листа1 вставить код[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Address(0, 0) = "A1" Then Sheets("Лист2").Range("A1") = Target.Value
End Sub
[/vba]

Автор - AlexM
Дата добавления - 17.03.2014 в 17:11
sd31337 Дата: Понедельник, 17.03.2014, 17:30 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AlexM,

Подскажите , а если мне нужно что бы у меня в соседний лист 2 копировались данные из столбца А - которые изменились а так же данные B,C,D которые не меняются и всегда одни ите же , грубо говоря столбец А в листе 1 в котором меняются данные и как только данные изменилисьв столбце А у меня вместе с измененными данными копировались еще столбцы B.C.D

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target
If Not Intersect(cell, Range("A1:A500")) Is Nothing Then
Sheets("Лист2").Cells(Target.Row, Target.Column) = Sheets("Лист1").Cells(Target.Row, Target.Column)
End If
Next cell
End Sub
[/vba]
К сообщению приложен файл: ______.xls (38.0 Kb)


Сообщение отредактировал sd31337 - Понедельник, 17.03.2014, 17:41
 
Ответить
СообщениеAlexM,

Подскажите , а если мне нужно что бы у меня в соседний лист 2 копировались данные из столбца А - которые изменились а так же данные B,C,D которые не меняются и всегда одни ите же , грубо говоря столбец А в листе 1 в котором меняются данные и как только данные изменилисьв столбце А у меня вместе с измененными данными копировались еще столбцы B.C.D

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target
If Not Intersect(cell, Range("A1:A500")) Is Nothing Then
Sheets("Лист2").Cells(Target.Row, Target.Column) = Sheets("Лист1").Cells(Target.Row, Target.Column)
End If
Next cell
End Sub
[/vba]

Автор - sd31337
Дата добавления - 17.03.2014 в 17:30
AlexM Дата: Понедельник, 17.03.2014, 17:36 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
По правилам форума к вопросу надо приложить файл.
Объяснения в файле.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПо правилам форума к вопросу надо приложить файл.
Объяснения в файле.

Автор - AlexM
Дата добавления - 17.03.2014 в 17:36
sd31337 Дата: Понедельник, 17.03.2014, 17:53 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AlexM, Добавил в предыдущие сообщение , подскажите если не сложно
 
Ответить
СообщениеAlexM, Добавил в предыдущие сообщение , подскажите если не сложно

Автор - sd31337
Дата добавления - 17.03.2014 в 17:53
AlexM Дата: Понедельник, 17.03.2014, 18:02 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Уточните.
Если данные меняются в А2, то копируем диапазон А2:D2 куда?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеУточните.
Если данные меняются в А2, то копируем диапазон А2:D2 куда?

Автор - AlexM
Дата добавления - 17.03.2014 в 18:02
sd31337 Дата: Понедельник, 17.03.2014, 18:04 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AlexM, то копируем то что изменилось в листе 1 из ячеек А 2 и данные из соседних столбцов B C D в независимости изменились оини или нет в Лист 2 соответственно в теже ячейки
 
Ответить
СообщениеAlexM, то копируем то что изменилось в листе 1 из ячеек А 2 и данные из соседних столбцов B C D в независимости изменились оини или нет в Лист 2 соответственно в теже ячейки

Автор - sd31337
Дата добавления - 17.03.2014 в 18:04
AlexM Дата: Понедельник, 17.03.2014, 18:11 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
так?
К сообщению приложен файл: sd31337_new.xls (35.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщениетак?

Автор - AlexM
Дата добавления - 17.03.2014 в 18:11
Hugo Дата: Понедельник, 17.03.2014, 18:13 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Уточните каким образом меняются эти данные - это может быть важно.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеУточните каким образом меняются эти данные - это может быть важно.

Автор - Hugo
Дата добавления - 17.03.2014 в 18:13
AlexM Дата: Понедельник, 17.03.2014, 18:21 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Если в столбце А значения меняются формулами, то событие не произойдет, следовательно макрос не сработает.

PS. тему бы перенести в "Вопросы по VBA"



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 17.03.2014, 18:22
 
Ответить
СообщениеЕсли в столбце А значения меняются формулами, то событие не произойдет, следовательно макрос не сработает.

PS. тему бы перенести в "Вопросы по VBA"

Автор - AlexM
Дата добавления - 17.03.2014 в 18:21
Hugo Дата: Понедельник, 17.03.2014, 18:33 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
И кстати действительно (как уже подсказали на другом форуме) - по данному примеру оптимально делать формулами.
Код
=ЕСЛИ(Лист1!A1="";"";Лист1!A1)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеИ кстати действительно (как уже подсказали на другом форуме) - по данному примеру оптимально делать формулами.
Код
=ЕСЛИ(Лист1!A1="";"";Лист1!A1)

Автор - Hugo
Дата добавления - 17.03.2014 в 18:33
AlexM Дата: Понедельник, 17.03.2014, 18:41 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Я понял, что данные могут меняться по всякому, 0 - 3, 3 - 5, и тд. и на эти изменения копировать ячейки, да и запрашивался макрос.
А на другом форуме этот вопрос то же есть?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЯ понял, что данные могут меняться по всякому, 0 - 3, 3 - 5, и тд. и на эти изменения копировать ячейки, да и запрашивался макрос.
А на другом форуме этот вопрос то же есть?

Автор - AlexM
Дата добавления - 17.03.2014 в 18:41
Hugo Дата: Понедельник, 17.03.2014, 18:56 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Да, на одном я его вижу.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеДа, на одном я его вижу.

Автор - Hugo
Дата добавления - 17.03.2014 в 18:56
sd31337 Дата: Понедельник, 17.03.2014, 21:42 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AlexM,

Да все так , спасибо Вам огромное очень выручили , СПАСИБО
 
Ответить
СообщениеAlexM,

Да все так , спасибо Вам огромное очень выручили , СПАСИБО

Автор - sd31337
Дата добавления - 17.03.2014 в 21:42
sd31337 Дата: Понедельник, 17.03.2014, 21:44 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Hugo, И Вам спасибо большое за ответ !!!
 
Ответить
СообщениеHugo, И Вам спасибо большое за ответ !!!

Автор - sd31337
Дата добавления - 17.03.2014 в 21:44
sd31337 Дата: Понедельник, 17.03.2014, 21:46 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Да и вообще очень приятно что есть люди такие как Вы , которые профессионалы своего дела и которым не сложно помочь в решении пустяковой проблемы ( пустяковой на мой взгляд для Вас ) просто искал информацию на многих форумах , подсказали только на Вашем и еще одном , в остальных местах давали ссылки на литературу , хотя я и за это очень признателен , а Ваш пример на 100 % мне подошел , еще раз Огромное спасибо.
 
Ответить
СообщениеДа и вообще очень приятно что есть люди такие как Вы , которые профессионалы своего дела и которым не сложно помочь в решении пустяковой проблемы ( пустяковой на мой взгляд для Вас ) просто искал информацию на многих форумах , подсказали только на Вашем и еще одном , в остальных местах давали ссылки на литературу , хотя я и за это очень признателен , а Ваш пример на 100 % мне подошел , еще раз Огромное спасибо.

Автор - sd31337
Дата добавления - 17.03.2014 в 21:46
AlexM Дата: Понедельник, 17.03.2014, 21:52 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
ссылки на литературу
Тут есть КНИГИ, СПРАВОЧНИКИ и СТАТЬИ



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 17.03.2014, 21:53
 
Ответить
Сообщение
ссылки на литературу
Тут есть КНИГИ, СПРАВОЧНИКИ и СТАТЬИ

Автор - AlexM
Дата добавления - 17.03.2014 в 21:52
sd31337 Дата: Вторник, 18.03.2014, 06:50 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AlexM, Спасибо за книги , возможно через пару лет сам буду кому нибудь помогать советом +) Буду читать и стараться во всем этом разобраться что бы больше не задавать глупых вопросов
 
Ответить
СообщениеAlexM, Спасибо за книги , возможно через пару лет сам буду кому нибудь помогать советом +) Буду читать и стараться во всем этом разобраться что бы больше не задавать глупых вопросов

Автор - sd31337
Дата добавления - 18.03.2014 в 06:50
AlexM Дата: Вторник, 18.03.2014, 08:50 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4505
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
[offtop]
через пару лет сам буду кому нибудь помогать советом
Зачем так долго ждать. Даже те знания Excel и VBA, которые у вас уже есть, могут кому-то пригодится. Помогайте, вы закрепите и умножите свои познания по в этой программе. Даже хорошо зная функции Excel надо научится их использовать. Это как с языком, можно знать много слов, а не уметь говорить. На конференции можно увидеть множество задач и варианты их решения. Это великолепная школа.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение[offtop]
через пару лет сам буду кому нибудь помогать советом
Зачем так долго ждать. Даже те знания Excel и VBA, которые у вас уже есть, могут кому-то пригодится. Помогайте, вы закрепите и умножите свои познания по в этой программе. Даже хорошо зная функции Excel надо научится их использовать. Это как с языком, можно знать много слов, а не уметь говорить. На конференции можно увидеть множество задач и варианты их решения. Это великолепная школа.

Автор - AlexM
Дата добавления - 18.03.2014 в 08:50
sd31337 Дата: Среда, 19.03.2014, 11:19 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
AlexM,
Помогите разобраться для понимая что где происходит , а то никак не могу понять , на форуме есть куча тем с примерами по worksheet_change

я понял что Private Sub Worksheet_Change (ByVal Target As Range) тут мы отслеживаем изменения на листе в диапозонеRange который мы обозначили в строке If Not Intersect(cell, Range("A1:A500")) Is Nothing Then

Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Copy (Sheets("Лист2").Cells(Target.Row, 1)) \\ тут мы копируем то что у нас изменилось в Лист1
я по образцу сделал копирование всего что есть на листе 1 в лист 2
Range("A2:D200").Copy Worksheets("Лист2").Range("A2:D200")

потом захотел сделать еще авто фильтр на листе 2
Range("A2:D200").AutoFilter workshetts("Лист2").Range("A2:D200")\\ естественно такой код не отработал
мне не до конца понятно как работать с выделенным диапазоном
например я хочу что бы Range("A1:D200") выполнил еще какое нибудь действие при изменении
набираю range.и в выпадающем списке возможных вариантов выбираю AutoFilter или еще какое либо действие но не совсем понимаю какие параметры вводить .

Если не сложно подскажите как работать с этим , очень хочу научится , на примере авто фильтра , не обязательно рабочий код а просто описание что за что отвечает .

Получилось сделать таким способом

Range("A1:D200").Select
Selection.AutoFilter
\\ но он делает авто фильтр на Лист 2 , а как указать ему что бы делал на Лист 2 ?

Range("A1:D200").Select Worksheets("Лист2").Range("A1:D200")
Selection.AutoFilter \\ попробовал вот так но ничего не произошло , и ошибку не выдало


Сообщение отредактировал sd31337 - Среда, 19.03.2014, 11:32
 
Ответить
СообщениеAlexM,
Помогите разобраться для понимая что где происходит , а то никак не могу понять , на форуме есть куча тем с примерами по worksheet_change

я понял что Private Sub Worksheet_Change (ByVal Target As Range) тут мы отслеживаем изменения на листе в диапозонеRange который мы обозначили в строке If Not Intersect(cell, Range("A1:A500")) Is Nothing Then

Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Copy (Sheets("Лист2").Cells(Target.Row, 1)) \\ тут мы копируем то что у нас изменилось в Лист1
я по образцу сделал копирование всего что есть на листе 1 в лист 2
Range("A2:D200").Copy Worksheets("Лист2").Range("A2:D200")

потом захотел сделать еще авто фильтр на листе 2
Range("A2:D200").AutoFilter workshetts("Лист2").Range("A2:D200")\\ естественно такой код не отработал
мне не до конца понятно как работать с выделенным диапазоном
например я хочу что бы Range("A1:D200") выполнил еще какое нибудь действие при изменении
набираю range.и в выпадающем списке возможных вариантов выбираю AutoFilter или еще какое либо действие но не совсем понимаю какие параметры вводить .

Если не сложно подскажите как работать с этим , очень хочу научится , на примере авто фильтра , не обязательно рабочий код а просто описание что за что отвечает .

Получилось сделать таким способом

Range("A1:D200").Select
Selection.AutoFilter
\\ но он делает авто фильтр на Лист 2 , а как указать ему что бы делал на Лист 2 ?

Range("A1:D200").Select Worksheets("Лист2").Range("A1:D200")
Selection.AutoFilter \\ попробовал вот так но ничего не произошло , и ошибку не выдало

Автор - sd31337
Дата добавления - 19.03.2014 в 11:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выполнить действие на изменение данных в ячейке (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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