Добрый день уважаемые! Большая просьба помочь со следующим вопросом. Необходимо: а) Создание нового примечания 1. Автоматически создать примечание в ячейке при внесении значений в данную ячейку 2. Автоматически заполнить примечание данными: ТекущаяДата, Значение ячейки (см. вложение) б) Редактирование существующего примечания 1. Автоматически редактировать существующее примечание при внесении новых значений в данную ячейку. Иными словами вносим новую сумму в ячейку, к примечанию добавляется текущая дата и новая сумма из ячейки (см. вложение)
Добавлю еще, что файл общий. Не знаю что из этого можно на практике реализовать, т.к. с макросами почти не знаком. Но очень нужна ваша помощь.
Добрый день уважаемые! Большая просьба помочь со следующим вопросом. Необходимо: а) Создание нового примечания 1. Автоматически создать примечание в ячейке при внесении значений в данную ячейку 2. Автоматически заполнить примечание данными: ТекущаяДата, Значение ячейки (см. вложение) б) Редактирование существующего примечания 1. Автоматически редактировать существующее примечание при внесении новых значений в данную ячейку. Иными словами вносим новую сумму в ячейку, к примечанию добавляется текущая дата и новая сумма из ячейки (см. вложение)
Добавлю еще, что файл общий. Не знаю что из этого можно на практике реализовать, т.к. с макросами почти не знаком. Но очень нужна ваша помощь.ilucho
В принципе вероятно можно сделать именно так - но я бы писал в комменты не слагаемые, а общую сумму. Если нужно - разницу всегда можно высчитать. А так, как заказано - думаю сделать очень сложно, если предусматривать все варианты. Я делать не буду.
В принципе вероятно можно сделать именно так - но я бы писал в комменты не слагаемые, а общую сумму. Если нужно - разницу всегда можно высчитать. А так, как заказано - думаю сделать очень сложно, если предусматривать все варианты. Я делать не буду.Hugo
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]
На общий доступ не проверял
[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
спасибо большое за отклик, только я не могу разобраться как сделать что бы заработал макрос. в basic нажимаю insert module, вставляю, сохраняю, но при изменении ячеек примечания не добавляются. что я делаю не так? помогите разобраться плиз. я не специалист(((
спасибо большое за отклик, только я не могу разобраться как сделать что бы заработал макрос. в basic нажимаю insert module, вставляю, сохраняю, но при изменении ячеек примечания не добавляются. что я делаю не так? помогите разобраться плиз. я не специалист(((ilucho
Проверяйте - немного доработал код Андрея. Можно там ещё чуть жирность доработать - но лень. Может быть не нужна жирность? Посмотрел - с жирностью много гемороя, делать уже и некогда...
Проверяйте - немного доработал код Андрея. Можно там ещё чуть жирность доработать - но лень. Может быть не нужна жирность? Посмотрел - с жирностью много гемороя, делать уже и некогда...Hugo
А иначе в 2003-2007 примечание маячит на экране, и его нужно вручную прятать... Ну тогда ещё проверку версии нужно ставить. Или корректировать по месту.
А иначе в 2003-2007 примечание маячит на экране, и его нужно вручную прятать... Ну тогда ещё проверку версии нужно ставить. Или корректировать по месту.Hugo
о, работает! здорово! спасибо огромное. а я наверно сразу не уточнил...мне нужно редактировать по всему листу а не только по столбцу или ячейке...можно как-то дополнить код?
о, работает! здорово! спасибо огромное. а я наверно сразу не уточнил...мне нужно редактировать по всему листу а не только по столбцу или ячейке...можно как-то дополнить код?ilucho
Вот, разобрался, отредактировал, добавил файл. Итак, что хотелось бы дополнить. 1. Сохранив файл в excel2010 обнаружил, что при редактировании ячейки когда добавляешь новую сумму, то в комментарии записывается сумма двух слогаемых, а не последние введенные цифры. Нужна именно последняя сумма. 2. Автоматическое добавление примечаний необходимо большему количеству ячеек. Я изменил в коде условие и сделал как мне нужно, что бы примечания добавлялись с четвертого столбца. Здесь вопросов вроде нет. 3. По поводу того, что примечание остается активным и его надо скрывать вручную. Это даже хорошо в моем случае. Т.к. к той информации которая появляется в нем автоматически я дописываю еще различный текст а потом скрываю его кнопкой (в этом случае мне не надо дополнительно нажимать кнопку «изменить примечание»). По этому можно ли сделать так что бы в случае редактирования ячейки (добавления новых значений) примечание так же становилось активным и не надо было дополнительно нажимать кнопку «изменить примечание»? 4. И напоследок, хотелось бы что бы если ячейку случайно зацепил сделал активной, но ничего не вводил, оставил пустой, то примечание не создавалось… А то даже при нажатии кнопки delete на пустой ячейке создается примечание. Помогите довести файлик до ума…
пункт 5 пока не нужен и надеюсь не понадобится (удалил). вроде норм.
Вот, разобрался, отредактировал, добавил файл. Итак, что хотелось бы дополнить. 1. Сохранив файл в excel2010 обнаружил, что при редактировании ячейки когда добавляешь новую сумму, то в комментарии записывается сумма двух слогаемых, а не последние введенные цифры. Нужна именно последняя сумма. 2. Автоматическое добавление примечаний необходимо большему количеству ячеек. Я изменил в коде условие и сделал как мне нужно, что бы примечания добавлялись с четвертого столбца. Здесь вопросов вроде нет. 3. По поводу того, что примечание остается активным и его надо скрывать вручную. Это даже хорошо в моем случае. Т.к. к той информации которая появляется в нем автоматически я дописываю еще различный текст а потом скрываю его кнопкой (в этом случае мне не надо дополнительно нажимать кнопку «изменить примечание»). По этому можно ли сделать так что бы в случае редактирования ячейки (добавления новых значений) примечание так же становилось активным и не надо было дополнительно нажимать кнопку «изменить примечание»? 4. И напоследок, хотелось бы что бы если ячейку случайно зацепил сделал активной, но ничего не вводил, оставил пустой, то примечание не создавалось… А то даже при нажатии кнопки delete на пустой ячейке создается примечание. Помогите довести файлик до ума…
пункт 5 пока не нужен и надеюсь не понадобится (удалил). вроде норм.ilucho
огромное огромное спасибо за ваш труд. вот сейчас файл проверил без общего доступа все работает. а еще один нюанс как-то можно осуществить? сразу не сообразил написать вам. теперь примечание всегда активное, можно ли сделать так, что бы оно скрывалось автоматически после добавления текста? например: ввели данные, примечание создано (или становится активным если было создано ранее), оно активно, добавляю в нем пару слов, щелкаю соседнюю ячейку, примечание скрылось. Или как-то к времени его привязать? например скрыть через пять секунд))) Просто иначе немного теряется смысл его автоматического создания. Раньше я вручную нажимал создать примечание а теперь буду нажимать скрыть примечание....лишнее действие остается.
огромное огромное спасибо за ваш труд. вот сейчас файл проверил без общего доступа все работает. а еще один нюанс как-то можно осуществить? сразу не сообразил написать вам. теперь примечание всегда активное, можно ли сделать так, что бы оно скрывалось автоматически после добавления текста? например: ввели данные, примечание создано (или становится активным если было создано ранее), оно активно, добавляю в нем пару слов, щелкаю соседнюю ячейку, примечание скрылось. Или как-то к времени его привязать? например скрыть через пять секунд))) Просто иначе немного теряется смысл его автоматического создания. Раньше я вручную нажимал создать примечание а теперь буду нажимать скрыть примечание....лишнее действие остается.ilucho
Сообщение отредактировал ilucho - Понедельник, 15.04.2013, 22:32
Примечание прячется по активации ячейки с примечанием.
[vba]
Код
Option Explicit Dim flagFormula$ Private Sub Worksheet_Change(ByVal Target As Range) Dim flag$, AddText If Target.Count > 1 Then Exit Sub If Target.Column <= 4 Then Exit Sub On Error Resume Next If Len(Target) Then With Target flag = .Comment.Text If Err Then Err.Clear .AddComment AddText = Format(Replace(.Formula, "=", ""), "# ##0.00") .Comment.Text Text:=Application.UserName & ":" & Chr(10) & Date & " " & AddText Else If flagFormula = .Formula Then Exit Sub If .HasFormula Then AddText = Format(Split(.Formula, "+")(UBound(Split(.Formula, "+"))), "# ##0.00") If UBound(Split(.Formula, "+")) = 0 Then AddText = Format(Replace(.Formula, "=", ""), "# ##0.00") Else AddText = .Text End If .Comment.Text Text:=.Comment.Text & Chr(10) & Application.UserName & ":" & Chr(10) & Date & " " & AddText End If .Comment.Shape.TextFrame.AutoSize = True .Comment.Visible = True .Comment.Shape.Select End With End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Column <= 4 Then Exit Sub flagFormula = Target.Formula On Error Resume Next Target.Comment.Visible = False End Sub
[/vba]
Примечание прячется по активации ячейки с примечанием.
[vba]
Код
Option Explicit Dim flagFormula$ Private Sub Worksheet_Change(ByVal Target As Range) Dim flag$, AddText If Target.Count > 1 Then Exit Sub If Target.Column <= 4 Then Exit Sub On Error Resume Next If Len(Target) Then With Target flag = .Comment.Text If Err Then Err.Clear .AddComment AddText = Format(Replace(.Formula, "=", ""), "# ##0.00") .Comment.Text Text:=Application.UserName & ":" & Chr(10) & Date & " " & AddText Else If flagFormula = .Formula Then Exit Sub If .HasFormula Then AddText = Format(Split(.Formula, "+")(UBound(Split(.Formula, "+"))), "# ##0.00") If UBound(Split(.Formula, "+")) = 0 Then AddText = Format(Replace(.Formula, "=", ""), "# ##0.00") Else AddText = .Text End If .Comment.Text Text:=.Comment.Text & Chr(10) & Application.UserName & ":" & Chr(10) & Date & " " & AddText End If .Comment.Shape.TextFrame.AutoSize = True .Comment.Visible = True .Comment.Shape.Select End With End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Column <= 4 Then Exit Sub flagFormula = Target.Formula On Error Resume Next Target.Comment.Visible = False End Sub
потестировав еще раз файлик все что я просил выше всё работает, спасибо. Но еще что заметил в общем файле - это после сохранения или закрытия файла при следующем открытии добавляя новую сумму в ячейку с уже имеющейся суммой и примечанием, весь текст примечания дублируется и только после него появляется нужное. вложил пример с примечанием (сохранялся поле каждого добавления данных). посмотрите пожалуйста, может быть можно избавиться от задвоений, а то тект увеличивается в геометрической прогресии.
потестировав еще раз файлик все что я просил выше всё работает, спасибо. Но еще что заметил в общем файле - это после сохранения или закрытия файла при следующем открытии добавляя новую сумму в ячейку с уже имеющейся суммой и примечанием, весь текст примечания дублируется и только после него появляется нужное. вложил пример с примечанием (сохранялся поле каждого добавления данных). посмотрите пожалуйста, может быть можно избавиться от задвоений, а то тект увеличивается в геометрической прогресии.ilucho