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

Вход

Регистрация

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

 

= Мир MS Excel/Получение адреса активной ячкйки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение адреса активной ячкйки (Макросы/Sub)
Получение адреса активной ячкйки
adamm1603 Дата: Четверг, 07.07.2016, 15:40 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Доброго времени господа! Как возможно средствами VBA определить адрес активной ячейки, а конкретно в примере: если выделить ячейку С4, её адрес должен отобразиться в ячейке J4 и так с каждой ячейкой в диапазоне B1:D16.
Данная тема открыта http://www.planetaexcel.ru/forum....acheyki
К сообщению приложен файл: 9286930.xlsx(10Kb)
 
Ответить
СообщениеДоброго времени господа! Как возможно средствами VBA определить адрес активной ячейки, а конкретно в примере: если выделить ячейку С4, её адрес должен отобразиться в ячейке J4 и так с каждой ячейкой в диапазоне B1:D16.
Данная тема открыта http://www.planetaexcel.ru/forum....acheyki

Автор - adamm1603
Дата добавления - 07.07.2016 в 15:40
adamm1603 Дата: Четверг, 07.07.2016, 15:41 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Модераторы не знаю, но по какой то причине само собой создались дубликаты тем
[moder]удалила[/moder]


Сообщение отредактировал Manyasha - Четверг, 07.07.2016, 15:42
 
Ответить
СообщениеМодераторы не знаю, но по какой то причине само собой создались дубликаты тем
[moder]удалила[/moder]

Автор - adamm1603
Дата добавления - 07.07.2016 в 15:41
Manyasha Дата: Четверг, 07.07.2016, 15:53 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
adamm1603, так подойдет?
[vba]
Код

'Код размещаем в модуле листа, где выделяем ячейки
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    'Range("b1:d16") - диапазон ячеек, выделение которого мы отслеживаем
    If Not Intersect(Target, Range("b1:d16")) Is Nothing Then
    '[j4] - место, куда записываем адрес выделенной ячейки
    'Sheets(2).[j4] - ячейка j4 второго листа
        [j4] = ActiveCell.Address
    Else
    'аналогично (очищаем ячейку с адресом, если выделенная ячейка вне диапазона b1:d16)
        [j4].ClearContents
    End If
End Sub
[/vba]
К сообщению приложен файл: 9286930-1.xlsm(16Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804


Сообщение отредактировал Manyasha - Четверг, 07.07.2016, 16:07
 
Ответить
Сообщениеadamm1603, так подойдет?
[vba]
Код

'Код размещаем в модуле листа, где выделяем ячейки
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    'Range("b1:d16") - диапазон ячеек, выделение которого мы отслеживаем
    If Not Intersect(Target, Range("b1:d16")) Is Nothing Then
    '[j4] - место, куда записываем адрес выделенной ячейки
    'Sheets(2).[j4] - ячейка j4 второго листа
        [j4] = ActiveCell.Address
    Else
    'аналогично (очищаем ячейку с адресом, если выделенная ячейка вне диапазона b1:d16)
        [j4].ClearContents
    End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 07.07.2016 в 15:53
adamm1603 Дата: Четверг, 07.07.2016, 15:58 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Manyasha, Вау супер! А что прописать в макросе, что бы перенести на другой лист?
 
Ответить
СообщениеManyasha, Вау супер! А что прописать в макросе, что бы перенести на другой лист?

Автор - adamm1603
Дата добавления - 07.07.2016 в 15:58
Manyasha Дата: Четверг, 07.07.2016, 16:01 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
adamm1603, Правой кнопкой мышки щелкните по ярлыку листа - Исходный текст. Весь код перенесите в модуль нужного листа.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеadamm1603, Правой кнопкой мышки щелкните по ярлыку листа - Исходный текст. Весь код перенесите в модуль нужного листа.

Автор - Manyasha
Дата добавления - 07.07.2016 в 16:01
adamm1603 Дата: Четверг, 07.07.2016, 16:01 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
с радости забыл уточнить, перенести на другой лист результат?
 
Ответить
Сообщениес радости забыл уточнить, перенести на другой лист результат?

Автор - adamm1603
Дата добавления - 07.07.2016 в 16:01
Manyasha Дата: Четверг, 07.07.2016, 16:09 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
adamm1603, прокомментировала код, смотрите мой первый пост.
[p.s.]Не поделитесь секретом, зачем это Вам нужно?)[/p.s.]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеadamm1603, прокомментировала код, смотрите мой первый пост.
[p.s.]Не поделитесь секретом, зачем это Вам нужно?)[/p.s.]

Автор - Manyasha
Дата добавления - 07.07.2016 в 16:09
adamm1603 Дата: Четверг, 07.07.2016, 16:20 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Manyasha, В двух словах не объяснить, суть задачи в том, что бы создать отчёт в форме многуровневого выпадающего списка, ссылка http://excel2.ru/article....wnload. Но в данном случае пришлось допиливать формулы так как исходник не предполагает повторов во втором и далее уровнях и предназначен только для одной рабочей строки, а вот как раз макрос мне здесь и поможет. У меня появиться возможность выбора данных, короче там всё сложно для меня, если интересно могу выслать Вам на почту оригинал может у Вас найдётся другое решение!
 
Ответить
СообщениеManyasha, В двух словах не объяснить, суть задачи в том, что бы создать отчёт в форме многуровневого выпадающего списка, ссылка http://excel2.ru/article....wnload. Но в данном случае пришлось допиливать формулы так как исходник не предполагает повторов во втором и далее уровнях и предназначен только для одной рабочей строки, а вот как раз макрос мне здесь и поможет. У меня появиться возможность выбора данных, короче там всё сложно для меня, если интересно могу выслать Вам на почту оригинал может у Вас найдётся другое решение!

Автор - adamm1603
Дата добавления - 07.07.2016 в 16:20
Manyasha Дата: Четверг, 07.07.2016, 16:47 | Сообщение № 9
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
Т.е. таким способом Вы меняете кусок формулы где-то на другом листе?
Думается мне, что есть решение полегче.
могу выслать Вам на почту оригинал
Не нужно, это я так, любопытствую)

Но если у Вас появится желание узнать про альтернативные способы решения Вашей задачи, Вы всегда можете спросить об этом на форуме :)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеТ.е. таким способом Вы меняете кусок формулы где-то на другом листе?
Думается мне, что есть решение полегче.
могу выслать Вам на почту оригинал
Не нужно, это я так, любопытствую)

Но если у Вас появится желание узнать про альтернативные способы решения Вашей задачи, Вы всегда можете спросить об этом на форуме :)

Автор - Manyasha
Дата добавления - 07.07.2016 в 16:47
adamm1603 Дата: Четверг, 07.07.2016, 17:11 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Да вы правы, таким образом я меняю часть формулы, которая привязана к выпадающему списку, благодаря Вам всё работает ещё раз спасибо!!!
 
Ответить
СообщениеДа вы правы, таким образом я меняю часть формулы, которая привязана к выпадающему списку, благодаря Вам всё работает ещё раз спасибо!!!

Автор - adamm1603
Дата добавления - 07.07.2016 в 17:11
adamm1603 Дата: Пятница, 08.07.2016, 09:02 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Manyasha, (Марина) здравствуйте! У меня опять маленькая проблема, ни как не могу применить данный код на разные ячейки, предположил, что дублем макроса получится, но не выходит. То есть в результате мне надо использовать четыре диапазона и выводить их в четыре ячейки, сможете помочь?
 
Ответить
СообщениеManyasha, (Марина) здравствуйте! У меня опять маленькая проблема, ни как не могу применить данный код на разные ячейки, предположил, что дублем макроса получится, но не выходит. То есть в результате мне надо использовать четыре диапазона и выводить их в четыре ячейки, сможете помочь?

Автор - adamm1603
Дата добавления - 08.07.2016 в 09:02
Manyasha Дата: Пятница, 08.07.2016, 10:55 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
adamm1603, для каждого диапазона продублируйте блок:
[vba]
Код
    If Not Intersect(Target, Range("b1:d16")) Is Nothing Then
        [j4] = ActiveCell.Address
    Else
        [j4].ClearContents
    End If
[/vba]
В примере прописала для трех диапазонов.

UPD
таким образом я меняю часть формулы

тогда может и очищать ячейки не нужно:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("b1:d16")) Is Nothing Then
        [j4] = ActiveCell.Address
    ElseIf Not Intersect(Target, Range("b19:d34")) Is Nothing Then
        [j22] = ActiveCell.Address
    ElseIf Not Intersect(Target, Range("b37:d52")) Is Nothing Then
        [j40] = ActiveCell.Address
    End If
End Sub
[/vba]
файл перевложила
К сообщению приложен файл: 9286930-2.xlsm(17Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеadamm1603, для каждого диапазона продублируйте блок:
[vba]
Код
    If Not Intersect(Target, Range("b1:d16")) Is Nothing Then
        [j4] = ActiveCell.Address
    Else
        [j4].ClearContents
    End If
[/vba]
В примере прописала для трех диапазонов.

UPD
таким образом я меняю часть формулы

тогда может и очищать ячейки не нужно:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("b1:d16")) Is Nothing Then
        [j4] = ActiveCell.Address
    ElseIf Not Intersect(Target, Range("b19:d34")) Is Nothing Then
        [j22] = ActiveCell.Address
    ElseIf Not Intersect(Target, Range("b37:d52")) Is Nothing Then
        [j40] = ActiveCell.Address
    End If
End Sub
[/vba]
файл перевложила

Автор - Manyasha
Дата добавления - 08.07.2016 в 10:55
adamm1603 Дата: Пятница, 08.07.2016, 11:45 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 1 ±
Замечаний: 20% ±

Excel 2013
Огромнейшее спасибо!!!
 
Ответить
СообщениеОгромнейшее спасибо!!!

Автор - adamm1603
Дата добавления - 08.07.2016 в 11:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Получение адреса активной ячкйки (Макросы/Sub)
Страница 1 из 11
Поиск:

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