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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование содержимого ячейки в примечание - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование содержимого ячейки в примечание (Макросы/Sub)
Копирование содержимого ячейки в примечание
andre131313 Дата: Понедельник, 03.12.2018, 15:17 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте! Прошу извинить заранее, т.к. новичок в создании макросов, да и в VBA тоже. Хотелось бы узнать как можно создать макрос по следующему алгоритму: активная ячейка из столбца А лист1 сравнивается с таблицей на листе 3 столбец А и при совпадении вывод информационное окно с содержимым столбца В листа 3( соответствующей строки). Прошу не кидаться тапками.
К сообщению приложен файл: test.xls(25.0 Kb)


Сообщение отредактировал andre131313 - Понедельник, 03.12.2018, 15:18
 
Ответить
СообщениеЗдравствуйте! Прошу извинить заранее, т.к. новичок в создании макросов, да и в VBA тоже. Хотелось бы узнать как можно создать макрос по следующему алгоритму: активная ячейка из столбца А лист1 сравнивается с таблицей на листе 3 столбец А и при совпадении вывод информационное окно с содержимым столбца В листа 3( соответствующей строки). Прошу не кидаться тапками.

Автор - andre131313
Дата добавления - 03.12.2018 в 15:17
_Boroda_ Дата: Понедельник, 03.12.2018, 15:36 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Сделал не для выделенной ячейки, а для всех сразу в столбце А
[vba]
Код
Sub tt()
    n_ = Cells(Rows.Count, 1).End(3).Row - 1 'кол нужных ячеек в столбце А
    If n_ = 0 Then Exit Sub 'если там только шапка - выход из макроса
    With Sheets("Лист3") 'Для листа Лист3
        n1_ = .Cells(.Rows.Count, 1).End(3).Row - 1 'кол нужных ячеек в столбце А
        If n1_ = 0 Then Exit Sub 'если там только шапка - выход из макроса
        ar1 = .Range("A2").Resize(n1_, 2) 'данные столбцов АВ - в массив
    End With 'окончание работы с листом Лист3
    ar = Range("A2").Resize(n_) 'данные столбца А в массив
    Range("A2").Resize(n_).ClearComments 'в столбце А удаляем все комментарии
    Set slov = CreateObject("Scripting.Dictionary") 'объявление словаря
    With slov 'для него
        For i = 1 To n1_ 'цикл по массиву ar1
            .Item(ar1(i, 1)) = ar1(i, 2) 'заносим в словарь. Ключи - из столбца А, элементы - из столбца В
        Next i
        For i = 1 To n_ 'цикл по массиву ar
            If .Exists(ar(i, 1)) Then 'если i-я запись в массиве есть в словаре
                If .Item(ar(i, 1)) <> "" Then 'если соответствующий элемент в слоываре не пустой
                    Cells(i + 1, 1).AddComment 'в ячейку столбца А строки i+1 добавляем примечание
                    Cells(i + 1, 1).Comment.Text Text:=.Item(ar(i, 1)) 'заполняем его значением элемента словаря
                End If
            End If
        Next i
    End With
End Sub
[/vba]
* Добавил комментарии
К сообщению приложен файл: test-6-1.xls(42.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Понедельник, 03.12.2018, 16:08
 
Ответить
СообщениеТак нужно?
Сделал не для выделенной ячейки, а для всех сразу в столбце А
[vba]
Код
Sub tt()
    n_ = Cells(Rows.Count, 1).End(3).Row - 1 'кол нужных ячеек в столбце А
    If n_ = 0 Then Exit Sub 'если там только шапка - выход из макроса
    With Sheets("Лист3") 'Для листа Лист3
        n1_ = .Cells(.Rows.Count, 1).End(3).Row - 1 'кол нужных ячеек в столбце А
        If n1_ = 0 Then Exit Sub 'если там только шапка - выход из макроса
        ar1 = .Range("A2").Resize(n1_, 2) 'данные столбцов АВ - в массив
    End With 'окончание работы с листом Лист3
    ar = Range("A2").Resize(n_) 'данные столбца А в массив
    Range("A2").Resize(n_).ClearComments 'в столбце А удаляем все комментарии
    Set slov = CreateObject("Scripting.Dictionary") 'объявление словаря
    With slov 'для него
        For i = 1 To n1_ 'цикл по массиву ar1
            .Item(ar1(i, 1)) = ar1(i, 2) 'заносим в словарь. Ключи - из столбца А, элементы - из столбца В
        Next i
        For i = 1 To n_ 'цикл по массиву ar
            If .Exists(ar(i, 1)) Then 'если i-я запись в массиве есть в словаре
                If .Item(ar(i, 1)) <> "" Then 'если соответствующий элемент в слоываре не пустой
                    Cells(i + 1, 1).AddComment 'в ячейку столбца А строки i+1 добавляем примечание
                    Cells(i + 1, 1).Comment.Text Text:=.Item(ar(i, 1)) 'заполняем его значением элемента словаря
                End If
            End If
        Next i
    End With
End Sub
[/vba]
* Добавил комментарии

Автор - _Boroda_
Дата добавления - 03.12.2018 в 15:36
andre131313 Дата: Понедельник, 03.12.2018, 15:53 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, что-то вроде этого. А не затруднит еще и кратких комментариев, что бы понять построение алгоритма?
 
Ответить
СообщениеСпасибо, что-то вроде этого. А не затруднит еще и кратких комментариев, что бы понять построение алгоритма?

Автор - andre131313
Дата добавления - 03.12.2018 в 15:53
_Boroda_ Дата: Понедельник, 03.12.2018, 16:08 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Не, не затруднит конечно. Дописал в код выше


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНе, не затруднит конечно. Дописал в код выше

Автор - _Boroda_
Дата добавления - 03.12.2018 в 16:08
andre131313 Дата: Понедельник, 03.12.2018, 16:12 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, буду разбираться.
 
Ответить
СообщениеСпасибо, буду разбираться.

Автор - andre131313
Дата добавления - 03.12.2018 в 16:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование содержимого ячейки в примечание (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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