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

Вход

Регистрация

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

 

= Мир MS Excel/Просмотр диапазона и перенос данных - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Просмотр диапазона и перенос данных (Макросы/Sub)
Просмотр диапазона и перенос данных
web-master Дата: Четверг, 18.12.2014, 21:51 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Так как только недавно начал работать с VBA прошу у вас помощи. Нужно реализовать следующее:
Просматривать определенный диапазон, например F10:AJ20 и если в этом диапазоне в ячейку вводят определенное значение, например "ДЦ" то сразу должно появляться окно с определенной формой (форму уже сделаю сам), и если в этом окне юзер нажимает кнопку ОК, то происходит следующая процедура которую лучше описать по картинке

В желтой ячейке вдруг появилось значение ДЦ, то тогда при клике в форме кнопки ОК нужно скопировать данные из зеленых ячеек (т.е. желтая ячейка, это пересечение зеленых) на другой лист, по тексту ясно что положение желтой ячейки может меняться, соответственно и адрес зеленых.
 
Ответить
СообщениеТак как только недавно начал работать с VBA прошу у вас помощи. Нужно реализовать следующее:
Просматривать определенный диапазон, например F10:AJ20 и если в этом диапазоне в ячейку вводят определенное значение, например "ДЦ" то сразу должно появляться окно с определенной формой (форму уже сделаю сам), и если в этом окне юзер нажимает кнопку ОК, то происходит следующая процедура которую лучше описать по картинке

В желтой ячейке вдруг появилось значение ДЦ, то тогда при клике в форме кнопки ОК нужно скопировать данные из зеленых ячеек (т.е. желтая ячейка, это пересечение зеленых) на другой лист, по тексту ясно что положение желтой ячейки может меняться, соответственно и адрес зеленых.

Автор - web-master
Дата добавления - 18.12.2014 в 21:51
JayBhagavan Дата: Четверг, 18.12.2014, 22:38 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
Пример. (срабатывание, адреса)[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B4:O26]) Is Nothing Then
      If Target.Count = 1 Then
          MsgBox "top cell adr=" & Intersect(Rows(3), Target.EntireColumn).Address & " left cell adr=" & Intersect(Columns(1), Target.EntireRow).Address
End If: End If
End Sub
[/vba]Макрос в код целевого листа. Далее сами.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов

Сообщение отредактировал JayBhagavan - Четверг, 18.12.2014, 22:39
 
Ответить
СообщениеПример. (срабатывание, адреса)[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [B4:O26]) Is Nothing Then
      If Target.Count = 1 Then
          MsgBox "top cell adr=" & Intersect(Rows(3), Target.EntireColumn).Address & " left cell adr=" & Intersect(Columns(1), Target.EntireRow).Address
End If: End If
End Sub
[/vba]Макрос в код целевого листа. Далее сами.

Автор - JayBhagavan
Дата добавления - 18.12.2014 в 22:38
web-master Дата: Суббота, 20.12.2014, 21:16 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
JayBhagavan, спасибо, то что нужно, все сделал как хотел, но дошел до момента получения значения из ячейки
Подскажите, как из вот этого Intersect(Columns(3), Target.EntireRow).Address вытащить значение ячейки?
[moder]А почему Вы Правила форума не читаете? Пункт 3, например.
 
Ответить
СообщениеJayBhagavan, спасибо, то что нужно, все сделал как хотел, но дошел до момента получения значения из ячейки
Подскажите, как из вот этого Intersect(Columns(3), Target.EntireRow).Address вытащить значение ячейки?
[moder]А почему Вы Правила форума не читаете? Пункт 3, например.

Автор - web-master
Дата добавления - 20.12.2014 в 21:16
web-master Дата: Воскресенье, 21.12.2014, 13:27 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Все, сам разобрался
Но есть маленькая проблема в этом коде
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [F10:AJ209]) Is Nothing Then
     If Target = "ДЦ" Or Target = "дц" Then
     From_Unit.Show
     End If
End If
End Sub
[/vba]

Показывает ошибку "run-time error 13" когда выделяю диапазон где есть "ДЦ" и нажимаю DELETE
Причем если удалять ячейки по одной все в порядке.
Ругается на строку If Target = "ДЦ" Or Target = "дц" Then
 
Ответить
СообщениеВсе, сам разобрался
Но есть маленькая проблема в этом коде
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [F10:AJ209]) Is Nothing Then
     If Target = "ДЦ" Or Target = "дц" Then
     From_Unit.Show
     End If
End If
End Sub
[/vba]

Показывает ошибку "run-time error 13" когда выделяю диапазон где есть "ДЦ" и нажимаю DELETE
Причем если удалять ячейки по одной все в порядке.
Ругается на строку If Target = "ДЦ" Or Target = "дц" Then

Автор - web-master
Дата добавления - 21.12.2014 в 13:27
RAN Дата: Воскресенье, 21.12.2014, 19:59 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Правильно ругается.
Когда вы берете мешок яблок с одним кирпичем, кирпич можно выбросить только перебрав содержимое мешка.
Или весь мешок сразу. :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПравильно ругается.
Когда вы берете мешок яблок с одним кирпичем, кирпич можно выбросить только перебрав содержимое мешка.
Или весь мешок сразу. :)

Автор - RAN
Дата добавления - 21.12.2014 в 19:59
PowerBoy Дата: Понедельник, 22.12.2014, 13:43 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
...
[/vba]


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
Сообщение[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
...
[/vba]

Автор - PowerBoy
Дата добавления - 22.12.2014 в 13:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Просмотр диапазона и перенос данных (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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