Макросы excel вставить примечание

14 Июл

Автоматическая вставка примечаний в Excel

Иногда нам требуется быстро вставить примечания в определённом диапазоне, делать это с помощью вкладок программы или контекстного меню (правой кнопки мыши) неудобно да и долго. Напишем свой макрос для быстрой вставки примечаний в ячейки таблицы.

Иногда нам требуется быстро вставить примечания в определённом диапазоне, делать это с помощью вкладок программы или контекстного меню (правой кнопки мыши) неудобно да и долго. Напишем свой макрос для быстрой вставки примечаний в ячейки таблицы.

Текст макроса:

Sub CreateComments()
   Dim cell As Range
   ‘ Производим поиск по всем ячейкам диапазона и добавляем примечания _
   ко всем ячейкам, содержащим слово «Выручка»
   For Each cell In Range(«E1:E100»)
      If cell.Value Like «*Выручка*» Then
         cell.ClearComments
         cell.AddComment «Сдать в банк»
      End If
   Next
End Sub

Всем удачи!

 

alexandrnaz

Пользователь

Сообщений: 6
Регистрация: 17.08.2016

Коллеги подскажите как написать макрос чтобы у каждой ячейки диапазона

Т.е. в примечание поместить содержание самой ячейки т.к. там большой объем текста и каждый раз разворачивать сложно. Заранее спасибо :)

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

Попробуйте спросить

так

. Первая ссылка.

 

alexandrnaz

Пользователь

Сообщений: 6
Регистрация: 17.08.2016

Много читал и гуглил 4 часа уже пытаюсь найти хотя бы приблизительное решение, но поскольку совсем не знаю VBA, не получается доработать макросы, для наглядности приложу пример  

Прикрепленные файлы

  • Пример.xlsx (12.66 КБ)

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

#4

17.08.2016 01:21:24

Ну я ведь подсказал, где можно взять код. Там самую малость нужно было переделать:

Код
Sub Macro1()
Dim i As Long, LastRow As Long
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To LastRow
        With Cells(i, 1)
            .ClearComments
            If Len(.Text) > 0 Then
                .AddComment
                .Comment.Visible = False
                .Comment.Text Text:=.Text
            End If
        End With
    Next
End Sub
 

alexandrnaz

Пользователь

Сообщений: 6
Регистрация: 17.08.2016

Юрий спасибо Вам большое, вы настоящий мастер!

 

alexandrnaz

Пользователь

Сообщений: 6
Регистрация: 17.08.2016

Юрий М, простите за назойливость, не совсем разобрался как можно применить к другим столбцам кроме А, и не могли бы вы еще подсказать как увеличить размер окно примечания, туда не весь текст помещается(

 

Gauss

Пользователь

Сообщений: 24
Регистрация: 17.08.2016

Для изменения размера примечания по тексту добавьте после строки 10
.Comment.Shape.TextFrame.AutoSize = True

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

#8

17.08.2016 10:19:48

Цитата
alexandrnaz написал:
как можно применить к другим столбцам кроме А

With Cells(i, 1) — применительно к ячейке первого столбца  ;)

 

alexandrnaz

Пользователь

Сообщений: 6
Регистрация: 17.08.2016

Gauss, Юрий М, спасибо, все работает, очень Вам благодарен за помощь  :D

 

DarkMers

Пользователь

Сообщений: 7
Регистрация: 22.08.2016

Дополнительный вопрос по теме: как дополнить макрос из темы, чтобы текст для примечания брался из 3 столбца, а само примечание добавлялось в ячейки из 5, к примеру?

Изменено: DarkMers22.08.2016 08:24:22

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#11

22.08.2016 10:00:49

Цитата
DarkMers написал: текст для примечания брался из 3 столбца, а само примечание добавлялось в ячейки из 5
Код
Sub Macro1()
Dim i As Long, LastRow As Long

const column_from as long = 3
const column_to as long = 5

    LastRow = Cells(Rows.Count, column_from).End(xlUp).Row
    For i = 1 To LastRow
        With Cells(i, column_to)
            .ClearComments
            If Len(Cells(i, column_from).Text) > 0 Then
                .AddComment
                .Comment.Visible = False
                .Comment.Text Text:=Cells(i, column_from).Text
            End If
        End With
    Next
End Sub

Изменено: JayBhagavan22.08.2016 10:09:15
(недоглядел кой чего, исправил)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

DarkMers

Пользователь

Сообщений: 7
Регистрация: 22.08.2016

#12

22.08.2016 10:13:23

JayBhagavan, Огромное спасибо! :)

Изменено: DarkMers22.08.2016 15:47:24

Add comments to cells in Excel with this macro. This allows you to quickly and easily add a comment to any cell within a worksheet or workbook in Excel.

In order to use this macro simply replace the A1 cell reference with the range object with the cell that you want to add a comment to and also replace the text This is my comment. with the text that you would like included in the comment. Make sure to put your comment within the quotation marks in the macro.

Where to install the macro:  Module

Excel Macro to Add Comments to Cells

Sub Add_Comment()
'Adds a comment to cell A1 in Excel

Range("A1").AddComment ("This is my comment.")

End Sub


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

AutoFilter with an Excel Macro

Tutorial: This Excel tip shows you how you can use an Excel Macro in order to run a Filter on data w…

Add Notes and Comments to Cells in Excel

Tutorial:
Did you know that you can add notes and comments to any cell in Excel?  You can write re…

Rename a Module for an Excel Macro

Tutorial: This Excel tip shows you how to rename a module in Excel. This is a very important thing t…

Delete All Comments in a Worksheet in Excel Macro

Macro: Excel macro that will delete all of the comment contained within the active or current wor…

How to Add Formatting to Cells and Data in Excel Styles, Fonts, Colors, & More

Tutorial: In this tutorial I will cover how to use the various formatting tools in Excel. The Format…

Install a Macro into an Excel Spreadsheet

Tutorial: This tip will show you how to copy an Excel Macro into your workbook or spreadsheet. You w…

How to Install the Macro

  1. Select and copy the text from within the grey box above.
  2. Open the Microsoft Excel file in which you would like the Macro to function.
  3. Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
     Or For other ways to get there, Click Here.
  4. On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
  5. If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
  6. If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
  7. If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
  8. Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
  9. You are now ready to run the macro.

Similar Content

AutoFilter with an Excel Macro

Tutorial: This Excel tip shows you how you can use an Excel Macro in order to run a Filter on data w…

Add Notes and Comments to Cells in Excel

Tutorial:
Did you know that you can add notes and comments to any cell in Excel?  You can write re…

Rename a Module for an Excel Macro

Tutorial: This Excel tip shows you how to rename a module in Excel. This is a very important thing t…

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Макрос для создания примечания с датой и текстом из ячейки

ilucho

Дата: Четверг, 11.04.2013, 13:51 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Добрый день уважаемые! Большая просьба помочь со следующим вопросом. Необходимо:
а) Создание нового примечания
1. Автоматически создать примечание в ячейке при внесении значений в данную ячейку
2. Автоматически заполнить примечание данными: ТекущаяДата, Значение ячейки (см. вложение)
б) Редактирование существующего примечания
1. Автоматически редактировать существующее примечание при внесении новых значений в данную ячейку. Иными словами вносим новую сумму в ячейку, к примечанию добавляется текущая дата и новая сумма из ячейки (см. вложение)

Добавлю еще, что файл общий. Не знаю что из этого можно на практике реализовать, т.к. с макросами почти не знаком. Но очень нужна ваша помощь.

К сообщению приложен файл:

3148796.xls
(32.5 Kb)

 

Ответить

Hugo

Дата: Четверг, 11.04.2013, 14:34 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

В принципе вероятно можно сделать именно так — но я бы писал в комменты не слагаемые, а общую сумму. Если нужно — разницу всегда можно высчитать.
А так, как заказано — думаю сделать очень сложно, если предусматривать все варианты. Я делать не буду.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

RAN

Дата: Четверг, 11.04.2013, 15:25 |
Сообщение № 3

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

На общий доступ не проверял

[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
Dim flag$
     If Target.Count > 1 Then Exit Sub
     If Target.Column <> 1 Then Exit Sub
     On Error Resume Next
     With Target
         flag = .Comment.Text
         If Err Then
             Err.Clear
             .AddComment
             .Comment.Visible = True
             .Comment.Text Text:=Application.UserName & Chr(10) & Date & » » & .Value
         Else
             .Comment.Text Text:=.Comment.Text & Chr(10) & Application.UserName & Chr(10) & Date & » » & .Value
         End If
     End With
End Sub

[/vba]


Быть или не быть, вот в чем загвоздка!

 

Ответить

ilucho

Дата: Четверг, 11.04.2013, 20:27 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


спасибо большое за отклик, только я не могу разобраться как сделать что бы заработал макрос. в basic нажимаю insert module, вставляю, сохраняю, но при изменении ячеек примечания не добавляются. что я делаю не так? помогите разобраться плиз. я не специалист(((

 

Ответить

Полковник МВД

Дата: Четверг, 11.04.2013, 20:38 |
Сообщение № 5

Макрос надо вставить в модуль листа

 

Ответить

ilucho

Дата: Четверг, 11.04.2013, 20:44 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


и в module1 вставлял не работает и в лист1 не работает почему-то((

 

Ответить

Hugo

Дата: Четверг, 11.04.2013, 21:21 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Проверяйте — немного доработал код Андрея. Можно там ещё чуть жирность доработать — но лень. Может быть не нужна жирность?
Посмотрел — с жирностью много гемороя, делать уже и некогда…

К сообщению приложен файл:

9355851.xls
(42.5 Kb)


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

RAN

Дата: Четверг, 11.04.2013, 21:25 |
Сообщение № 8

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

[vba]

Код

    If Target.Column <> 1 Then Exit Sub

[/vba]

определяет номер столбца, при изменениях в ячейках которого работает макрос

PS Игорь, Visible зря убрал. В 2010 без него создается скрытое примечание.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RANЧетверг, 11.04.2013, 21:27

 

Ответить

Hugo

Дата: Четверг, 11.04.2013, 21:35 |
Сообщение № 9

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

А иначе в 2003-2007 примечание маячит на экране, и его нужно вручную прятать… sad
Ну тогда ещё проверку версии нужно ставить. Или корректировать по месту.


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

RAN

Дата: Четверг, 11.04.2013, 21:42 |
Сообщение № 10

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

В 2007 у меня и без Visible маячит, пока вручную на спрячешь.


Быть или не быть, вот в чем загвоздка!

 

Ответить

ilucho

Дата: Четверг, 11.04.2013, 21:44 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


о, работает! здорово! спасибо огромное. а я наверно сразу не уточнил…мне нужно редактировать по всему листу а не только по столбцу или ячейке…можно как-то дополнить код?

 

Ответить

RAN

Дата: Четверг, 11.04.2013, 21:47 |
Сообщение № 12

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Убрать эту строку. biggrin

Но тогда к любой ячейке будут добавляться примечания. Так что уточните хотелку.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RANЧетверг, 11.04.2013, 21:48

 

Ответить

ilucho

Дата: Четверг, 11.04.2013, 21:55 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


окей, завтра роверю на практике и отпишусь smile

 

Ответить

ilucho

Дата: Понедельник, 15.04.2013, 17:06 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Черт файлик пока не могу приложить…чуть позже…

Сообщение отредактировал iluchoПонедельник, 15.04.2013, 17:19

 

Ответить

RAN

Дата: Понедельник, 15.04.2013, 17:26 |
Сообщение № 15

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

п.4 решается просто, п.1 — сложнее, но решается, а вот п.5 — сомневаюсь.


Быть или не быть, вот в чем загвоздка!

 

Ответить

ilucho

Дата: Понедельник, 15.04.2013, 17:33 |
Сообщение № 16

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Вот, разобрался, отредактировал, добавил файл.
Итак, что хотелось бы дополнить.
1. Сохранив файл в excel2010 обнаружил, что при редактировании ячейки когда добавляешь новую сумму, то в комментарии записывается сумма двух слогаемых, а не последние введенные цифры. Нужна именно последняя сумма.
2. Автоматическое добавление примечаний необходимо большему количеству ячеек. Я изменил в коде условие и сделал как мне нужно, что бы примечания добавлялись с четвертого столбца. Здесь вопросов вроде нет.
3. По поводу того, что примечание остается активным и его надо скрывать вручную. Это даже хорошо в моем случае. Т.к. к той информации которая появляется в нем автоматически я дописываю еще различный текст а потом скрываю его кнопкой (в этом случае мне не надо дополнительно нажимать кнопку «изменить примечание»). По этому можно ли сделать так что бы в случае редактирования ячейки (добавления новых значений) примечание так же становилось активным и не надо было дополнительно нажимать кнопку «изменить примечание»?
4. И напоследок, хотелось бы что бы если ячейку случайно зацепил сделал активной, но ничего не вводил, оставил пустой, то примечание не создавалось… А то даже при нажатии кнопки delete на пустой ячейке создается примечание.
Помогите довести файлик до ума…

пункт 5 пока не нужен и надеюсь не понадобится (удалил). вроде норм.

К сообщению приложен файл:

9944283.xlsm
(35.7 Kb)

Сообщение отредактировал iluchoПонедельник, 15.04.2013, 17:36

 

Ответить

RAN

Дата: Понедельник, 15.04.2013, 19:37 |
Сообщение № 17

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Ну как-то так.

Но с общим доступом не работает.

К сообщению приложен файл:

9224091.xlsm
(32.1 Kb)


Быть или не быть, вот в чем загвоздка!

 

Ответить

ilucho

Дата: Понедельник, 15.04.2013, 22:32 |
Сообщение № 18

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


огромное огромное спасибо за ваш труд. вот сейчас файл проверил без общего доступа все работает. а еще один нюанс как-то можно осуществить? сразу не сообразил написать вам. теперь примечание всегда активное, можно ли сделать так, что бы оно скрывалось автоматически после добавления текста? например: ввели данные, примечание создано (или становится активным если было создано ранее), оно активно, добавляю в нем пару слов, щелкаю соседнюю ячейку, примечание скрылось. Или как-то к времени его привязать? например скрыть через пять секунд))) Просто иначе немного теряется смысл его автоматического создания. Раньше я вручную нажимал создать примечание а теперь буду нажимать скрыть примечание….лишнее действие остается.

Сообщение отредактировал iluchoПонедельник, 15.04.2013, 22:32

 

Ответить

RAN

Дата: Понедельник, 15.04.2013, 23:16 |
Сообщение № 19

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Примечание прячется по активации ячейки с примечанием.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RANПонедельник, 15.04.2013, 23:18

 

Ответить

ilucho

Дата: Четверг, 18.04.2013, 10:17 |
Сообщение № 20

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


потестировав еще раз файлик все что я просил выше всё работает, спасибо. Но еще что заметил в общем файле — это после сохранения или закрытия файла при следующем открытии добавляя новую сумму в ячейку с уже имеющейся суммой и примечанием, весь текст примечания дублируется и только после него появляется нужное. вложил пример с примечанием (сохранялся поле каждого добавления данных). посмотрите пожалуйста, может быть можно избавиться от задвоений, а то тект увеличивается в геометрической прогресии.

К сообщению приложен файл:

9250524.xlsm
(33.4 Kb)

Сообщение отредактировал iluchoЧетверг, 18.04.2013, 10:23

 

Ответить


1 августа 2012,
VBA,
Konstantin

Создание примечания для ячейки в Excel с помощью макроса, которое также имело бы сложное внутреннее форматирование, не самая тривиальная задача. Для этого можно воспользоваться например таким кодом:

With Worksheets(1).Cells(4, 12).Comment
   .Visible = False
   .Text "Жирный шрифт:" & Chr(10) & "курсив"
   .Shape.DrawingObject.Characters(1, 13).Font.Bold = True
   .Shape.DrawingObject.Characters(15, 20).Font.Italic = True
End With

В итоге получится примерно такое примечание:

Форматированное примечание ячейки

Order_macros

2 комментария в “Создание форматированного примечания с помощью VBA”

Комментировать

Понравилась статья? Поделить с друзьями:
  • Макроса данные с одной таблицы excel в другую
  • Макросы excel ввод данных в ячейку
  • Макрос удалил все листы в excel
  • Макроса в excel обновление сводных таблиц
  • Макросы excel vba синтаксис