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

Вход

Регистрация

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

 

= Мир MS Excel/Аналог "примечания" в ячейке с текстом - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Аналог "примечания" в ячейке с текстом (Макросы/Sub)
Аналог "примечания" в ячейке с текстом
Venique Дата: Четверг, 16.10.2014, 16:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Приветствую.

Каким образом написать в VBA (Excel 2003) аналог примечания? Есть ячейка с текстом, по активации (двойному клику на неё) с новой строки должно добавляться имя пользователя и текущая дата\время. Нечто вроде системы логирования, кто и когда добавил новый комментарий.

Сам я, что называется, ненастоящий сварщик, поэтому при помощи гугла смог сделать вот такое:

[vba]
Код


Private Sub Worksheet_Change(ByVal Target As Range) 'включаем макрос
     If Not Intersect(Target, Range("K1:K1000")) Is Nothing Then 'делаем так, чтобы он работал только в диапазоне ячеек K1-K1000
     With Target(1, 1) 'указываем, с какой ячейкой работать в данный момент
     .Value = .Value & vbLf & Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
     End With
     End If
End Sub

[/vba]

Вот только проблема - всё это дело вставляется не по клику (я так понимаю, где-то должен стоять On.Click или что-то вроде того), а уже после того как я вношу какие-то данные и убираю фокус с ячейки, а также после изменения ячейки все эти строки начинают добавляться без остановки, пока принудительно не нажмешь Esc. Почему и как это предотвратить, останавливая макрос после первого же выполнения - не понятно...

Можете помочь допилить скрипт?
 
Ответить
СообщениеПриветствую.

Каким образом написать в VBA (Excel 2003) аналог примечания? Есть ячейка с текстом, по активации (двойному клику на неё) с новой строки должно добавляться имя пользователя и текущая дата\время. Нечто вроде системы логирования, кто и когда добавил новый комментарий.

Сам я, что называется, ненастоящий сварщик, поэтому при помощи гугла смог сделать вот такое:

[vba]
Код


Private Sub Worksheet_Change(ByVal Target As Range) 'включаем макрос
     If Not Intersect(Target, Range("K1:K1000")) Is Nothing Then 'делаем так, чтобы он работал только в диапазоне ячеек K1-K1000
     With Target(1, 1) 'указываем, с какой ячейкой работать в данный момент
     .Value = .Value & vbLf & Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
     End With
     End If
End Sub

[/vba]

Вот только проблема - всё это дело вставляется не по клику (я так понимаю, где-то должен стоять On.Click или что-то вроде того), а уже после того как я вношу какие-то данные и убираю фокус с ячейки, а также после изменения ячейки все эти строки начинают добавляться без остановки, пока принудительно не нажмешь Esc. Почему и как это предотвратить, останавливая макрос после первого же выполнения - не понятно...

Можете помочь допилить скрипт?

Автор - Venique
Дата добавления - 16.10.2014 в 16:53
_Boroda_ Дата: Четверг, 16.10.2014, 17:08 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
На двойной клик нужно писать другое событие
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     If Not Intersect(Target, Range("K1:K1000")) Is Nothing Then 'делаем так, чтобы он работал только в диапазоне ячеек K1-K1000
     With Target(1, 1) 'указываем, с какой ячейкой работать в данный момент
     .Value = .Value & vbLf & Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
     End With
     Cancel = True
     End If
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНа двойной клик нужно писать другое событие
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     If Not Intersect(Target, Range("K1:K1000")) Is Nothing Then 'делаем так, чтобы он работал только в диапазоне ячеек K1-K1000
     With Target(1, 1) 'указываем, с какой ячейкой работать в данный момент
     .Value = .Value & vbLf & Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
     End With
     Cancel = True
     End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 16.10.2014 в 17:08
Venique Дата: Четверг, 16.10.2014, 17:33 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Теперь всё работает, спасибо огромное! :)

Если кому понадобится, то вот, добавил ещё одно условие, чтобы перевода на новую строку не происходило, если ячейка изначально пуста:

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'делаем так, чтобы он работал только в диапазоне ячеек K1-K1000
          With Target(1, 1) 'указываем, с какой ячейкой работать в данный момент
              If IsEmpty(Target) Then
              .Value = Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
              Else
              .Value = .Value & vbLf & Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
              End If
          End With
      Cancel = True
      End If
End Sub
[/vba]

А как ещё сделать:
а) Чтобы по клику, после добавления времени\даты\имени, ячейка открывалась на редактирование как при обычном двойном клике? Иначе приходится после этого выставлять курсор в поле сверху (типа адресной строки, где формулы вводятся).
б) Чтобы при редактировании этой ячейки через строку для формул, макрос срабатывал при нажатии Alt+Enter (перевод на новую строку)? Или этого нельзя добиться, так как происходит редактирование текста (ввод), которое нельзя обработать (выцепить из него хот-кей)? Пробовал поиграться с Application.OnKey, не вышло...


Сообщение отредактировал Venique - Четверг, 16.10.2014, 17:36
 
Ответить
СообщениеТеперь всё работает, спасибо огромное! :)

Если кому понадобится, то вот, добавил ещё одно условие, чтобы перевода на новую строку не происходило, если ячейка изначально пуста:

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'делаем так, чтобы он работал только в диапазоне ячеек K1-K1000
          With Target(1, 1) 'указываем, с какой ячейкой работать в данный момент
              If IsEmpty(Target) Then
              .Value = Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
              Else
              .Value = .Value & vbLf & Now & " " & Application.UserName & ": " 'добавляем к активированной ячейке её же данные + перенос на новую строку + точное время\дату + пробел + имя пользователя + двоеточие и пробел (т.е. получается нечто вроде "16.10.2014 16:56:54 А. Иванов: ")
              End If
          End With
      Cancel = True
      End If
End Sub
[/vba]

А как ещё сделать:
а) Чтобы по клику, после добавления времени\даты\имени, ячейка открывалась на редактирование как при обычном двойном клике? Иначе приходится после этого выставлять курсор в поле сверху (типа адресной строки, где формулы вводятся).
б) Чтобы при редактировании этой ячейки через строку для формул, макрос срабатывал при нажатии Alt+Enter (перевод на новую строку)? Или этого нельзя добиться, так как происходит редактирование текста (ввод), которое нельзя обработать (выцепить из него хот-кей)? Пробовал поиграться с Application.OnKey, не вышло...

Автор - Venique
Дата добавления - 16.10.2014 в 17:33
_Boroda_ Дата: Четверг, 16.10.2014, 17:39 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
а.
Cancel = 0 или False
б.
Сходу ничего в голову не приходит. Боюсь, что, если и возможно, то не так вот запросто.


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

Автор - _Boroda_
Дата добавления - 16.10.2014 в 17:39
Venique Дата: Четверг, 16.10.2014, 17:45 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Ну и ладно тогда, в любом случае спасибо огромное! Наверное, так будет даже лучше, иначе если придется сделать перевод каретки, то каждый раз будет проставляться эта информация и её каждый раз придется удалять. :) Вот финальная версия макроса, надеюсь, кому-нибудь ещё это поможет:

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
     If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
         With Target(1, 1) 'указываем, с какой ячейкой работать макросу
             If IsEmpty(Target) Then 'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
             .Value = Now & " " & Application.UserName & ": "
             Else 'в противном случае - перевод на новую строку будет
             .Value = .Value & vbLf & Now & " " & Application.UserName & ": "
             End If
         End With
     End If
Cancel = 0
End Sub
[/vba]

Ну и чтобы людям было легче найти: excel, макрос на VBA, аналог примечания на VBA, макрос примечание, ввод данных в ячейку, добавить к тексту, добавить по клику, добавить время и имя

p.s: сам не сеошник, не подумайте :D
 
Ответить
СообщениеНу и ладно тогда, в любом случае спасибо огромное! Наверное, так будет даже лучше, иначе если придется сделать перевод каретки, то каждый раз будет проставляться эта информация и её каждый раз придется удалять. :) Вот финальная версия макроса, надеюсь, кому-нибудь ещё это поможет:

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
     If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
         With Target(1, 1) 'указываем, с какой ячейкой работать макросу
             If IsEmpty(Target) Then 'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
             .Value = Now & " " & Application.UserName & ": "
             Else 'в противном случае - перевод на новую строку будет
             .Value = .Value & vbLf & Now & " " & Application.UserName & ": "
             End If
         End With
     End If
Cancel = 0
End Sub
[/vba]

Ну и чтобы людям было легче найти: excel, макрос на VBA, аналог примечания на VBA, макрос примечание, ввод данных в ячейку, добавить к тексту, добавить по клику, добавить время и имя

p.s: сам не сеошник, не подумайте :D

Автор - Venique
Дата добавления - 16.10.2014 в 17:45
Venique Дата: Понедельник, 20.10.2014, 14:30 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
А как сделать, чтобы добавляемый данным макросом текст имел определённый цвет? Т.е. весь текст обычным (чёрным) цветом написан, а добавляемый комментарий уже синим, например.

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
        If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
            With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                If IsEmpty(Target) Then 'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
                .Value = Now & " " & Application.UserName & ": "
                Else 'в противном случае - перевод на новую строку будет
                .Value = .Value & vbLf & Now & " " & Application.UserName & ": "
                End If
                    
                If Application.UserName = "Иванов А." Then
                Target.Font.Color = vbRed
                Else
                Target.Font.Color = vbBlue
                End If
                    
            End With
        End If
Cancel = 0
End Sub
[/vba]

Смог реализовать это через конструкцию ЕСЛИ имя пользователя = Иванов А. (мне нужно, чтобы цветом выделялись комментарии только определённого человека), но в таком случае меняется цвет ВСЕГО содержимого ячейки, а нужно только вводимого в данный момент текста.


Сообщение отредактировал Venique - Понедельник, 20.10.2014, 16:24
 
Ответить
СообщениеА как сделать, чтобы добавляемый данным макросом текст имел определённый цвет? Т.е. весь текст обычным (чёрным) цветом написан, а добавляемый комментарий уже синим, например.

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
        If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
            With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                If IsEmpty(Target) Then 'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
                .Value = Now & " " & Application.UserName & ": "
                Else 'в противном случае - перевод на новую строку будет
                .Value = .Value & vbLf & Now & " " & Application.UserName & ": "
                End If
                    
                If Application.UserName = "Иванов А." Then
                Target.Font.Color = vbRed
                Else
                Target.Font.Color = vbBlue
                End If
                    
            End With
        End If
Cancel = 0
End Sub
[/vba]

Смог реализовать это через конструкцию ЕСЛИ имя пользователя = Иванов А. (мне нужно, чтобы цветом выделялись комментарии только определённого человека), но в таком случае меняется цвет ВСЕГО содержимого ячейки, а нужно только вводимого в данный момент текста.

Автор - Venique
Дата добавления - 20.10.2014 в 14:30
krosav4ig Дата: Понедельник, 20.10.2014, 19:58 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
     If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
             With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                 Dim Name$: Name = Application.UserName
                 If IsEmpty(Target) Then 'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
                     .Value = Now & " " & Name & ": "
                 Else
                     .Value = .Value & vbLf & Now & " " & Name & ": "
                 End If
                 'With .Characters(InStr(.Value, Name), Len(Name)) ' если раскомментировать эту строку и закометировать следующую, то выделится только имя пользователя
                 With .Characters(Len(.Value), 1)
                     .Font.Color = IIf(Name = "Иванов А.", vbRed, vbBlue)
                 End With
                 Application.SendKeys "^{END}"
             End With
         End If
Cancel = 0
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 21.10.2014, 00:02
 
Ответить
Сообщениекак-то так
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
     If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
             With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                 Dim Name$: Name = Application.UserName
                 If IsEmpty(Target) Then 'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
                     .Value = Now & " " & Name & ": "
                 Else
                     .Value = .Value & vbLf & Now & " " & Name & ": "
                 End If
                 'With .Characters(InStr(.Value, Name), Len(Name)) ' если раскомментировать эту строку и закометировать следующую, то выделится только имя пользователя
                 With .Characters(Len(.Value), 1)
                     .Font.Color = IIf(Name = "Иванов А.", vbRed, vbBlue)
                 End With
                 Application.SendKeys "^{END}"
             End With
         End If
Cancel = 0
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 20.10.2014 в 19:58
Venique Дата: Вторник, 21.10.2014, 17:12 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
1) При выполнении макроса выдает Runtime Error '1004': Нельзя установить свойство Color класса Font.

2) Что делает строка Application.SendKeys "^{END}"?

3) Сработает ли комбинация IIf(Name = "Иванов А." or Name = "Иванов Б.", vbRed, vbBlue)?

В любом случае, спасибо!


Сообщение отредактировал Venique - Вторник, 21.10.2014, 17:13
 
Ответить
Сообщение1) При выполнении макроса выдает Runtime Error '1004': Нельзя установить свойство Color класса Font.

2) Что делает строка Application.SendKeys "^{END}"?

3) Сработает ли комбинация IIf(Name = "Иванов А." or Name = "Иванов Б.", vbRed, vbBlue)?

В любом случае, спасибо!

Автор - Venique
Дата добавления - 21.10.2014 в 17:12
Venique Дата: Вторник, 21.10.2014, 17:56 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Немного отвечая самому себе...

Скрипт не отрабатывал, т.к. стояла защита на листе (в т.ч. запрет на изменение форматирования ячеек). Как только его выключил - заработало.

Но почему-то с закомментированной первой строкой нужных действий не происходит. Происходит только следующее:
а) по клику на ячейку дата\время\фамилия не окрашиваются вообще;
б) если в ячейке содержится "21.10.2014 17:38:20 Иванов А.:", при этом "Иванов А." уже окрашено в какой-то цвет, то окрашивание убирается;
в) если выделить красным цветом цветом всю строку "21.10.2014 17:38:20 Иванов А.:", то при клике по ячейке окраска "инвертируется", а именно "Иванов А." на окрашенной строке становится синим, весь остальной текст красным.

Т.е. строка "With .Characters(Len(.Value), 1)" не то, что не работает, а работает совсем некорректно, увы. Вторая строка "With .Characters(InStr(.Value, Name), Len(Name))" исправно окрашивает фамилию\имя в цвет, но этого недостаточно. Можете помочь?

Отвечая на следующий свой вопрос - конструкция "IIf(Name = "Иванов А." or Name = "Иванов Б.", vbRed, vbBlue)" работает корректно.

Что отправляется командой Application.SendKeys "^{END}" по нажатию END пока не разобрался...
 
Ответить
СообщениеНемного отвечая самому себе...

Скрипт не отрабатывал, т.к. стояла защита на листе (в т.ч. запрет на изменение форматирования ячеек). Как только его выключил - заработало.

Но почему-то с закомментированной первой строкой нужных действий не происходит. Происходит только следующее:
а) по клику на ячейку дата\время\фамилия не окрашиваются вообще;
б) если в ячейке содержится "21.10.2014 17:38:20 Иванов А.:", при этом "Иванов А." уже окрашено в какой-то цвет, то окрашивание убирается;
в) если выделить красным цветом цветом всю строку "21.10.2014 17:38:20 Иванов А.:", то при клике по ячейке окраска "инвертируется", а именно "Иванов А." на окрашенной строке становится синим, весь остальной текст красным.

Т.е. строка "With .Characters(Len(.Value), 1)" не то, что не работает, а работает совсем некорректно, увы. Вторая строка "With .Characters(InStr(.Value, Name), Len(Name))" исправно окрашивает фамилию\имя в цвет, но этого недостаточно. Можете помочь?

Отвечая на следующий свой вопрос - конструкция "IIf(Name = "Иванов А." or Name = "Иванов Б.", vbRed, vbBlue)" работает корректно.

Что отправляется командой Application.SendKeys "^{END}" по нажатию END пока не разобрался...

Автор - Venique
Дата добавления - 21.10.2014 в 17:56
krosav4ig Дата: Среда, 22.10.2014, 01:29 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Что отправляется командой Application.SendKeys "^{END}"

Ctrl+End
так надо что ли?
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
    On Error GoTo err
     If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
         With Target(1, 1) 'указываем, с какой ячейкой работать макросу
             With Application: .ScreenUpdating = 0: .EnableEvents = 0: End With
             Dim Name$: Name = Application.UserName
             Dim L&: L = Len(.Value)
             Dim char, arr&(), i&
             ReDim arr(L + (L > 0))
             For i = 1 To L: arr(i - 1) = .Characters(i, 1).Font.Color: Next
             'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
             .Value = .Value & IIf(L, vbLf, "") & Now & " " & Name & ": "
             For i = 1 To L: .Characters(i, 1).Font.Color = arr(i - 1): Next
             'With .Characters(InStr(.Value, Name), Len(Name)) ' если раскомментировать эту строку и закометировать следующую, то выделится только имя пользователя
             With .Characters(L + 1, Len(.Value) - L - 1)
                 .Font.Color = IIf(Name = "krosav4ig", vbRed, vbBlue)
             End With
             .Characters(Len(.Value)).Font.ColorIndex = xlAutomatic
             Application.SendKeys "^{END}"
         End With
     End If
     Cancel = 0
     If err.Number Then MsgBox "Ошибка " & err.Number & " (" & err.Description & ") в Worksheet_BeforeDoubleClick модуля Лист2"
err:
With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Что отправляется командой Application.SendKeys "^{END}"

Ctrl+End
так надо что ли?
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
    On Error GoTo err
     If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
         With Target(1, 1) 'указываем, с какой ячейкой работать макросу
             With Application: .ScreenUpdating = 0: .EnableEvents = 0: End With
             Dim Name$: Name = Application.UserName
             Dim L&: L = Len(.Value)
             Dim char, arr&(), i&
             ReDim arr(L + (L > 0))
             For i = 1 To L: arr(i - 1) = .Characters(i, 1).Font.Color: Next
             'если ячейка изначально пуста, то включаем макрос без перевода на новую строку
             .Value = .Value & IIf(L, vbLf, "") & Now & " " & Name & ": "
             For i = 1 To L: .Characters(i, 1).Font.Color = arr(i - 1): Next
             'With .Characters(InStr(.Value, Name), Len(Name)) ' если раскомментировать эту строку и закометировать следующую, то выделится только имя пользователя
             With .Characters(L + 1, Len(.Value) - L - 1)
                 .Font.Color = IIf(Name = "krosav4ig", vbRed, vbBlue)
             End With
             .Characters(Len(.Value)).Font.ColorIndex = xlAutomatic
             Application.SendKeys "^{END}"
         End With
     End If
     Cancel = 0
     If err.Number Then MsgBox "Ошибка " & err.Number & " (" & err.Description & ") в Worksheet_BeforeDoubleClick модуля Лист2"
err:
With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.10.2014 в 01:29
Venique Дата: Среда, 22.10.2014, 12:46 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Большое спасибо!

Да, Вы правильно меня поняли. Мне было необходимо, чтобы макрос не только вставлял в ячейку дату\время\имя комментирующего, но и выделял эту вставленную информацию определённым цветом, если фамилия комментирующего совпадает с указанной в макросе. То есть, например, в ячейке текст инцидента написан чёрным, как и некоторые комментарии, а если свой комментарий вставляет супер-пользователь Иванов А., то его строка с датой\временем\именем выделяется синим для акцента.

Собственно, вот, немного причесал код. Надеюсь, ничего лишнего не удалил. Поправьте, ежели что, не обессудьте :D

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
         If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
             With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                 With Application: .ScreenUpdating = 0: .EnableEvents = 0: End With 'оптимизация производительности макроса
                 Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
                 'волшебство начинается
                 Dim L&: L = Len(.Value)
                 Dim char, arr&(), i&
                 ReDim arr(L + (L > 0))
                 For i = 1 To L: arr(i - 1) = .Characters(i, 1).Font.Color: Next
                 'волшебство заканчивается
                 .Value = .Value & IIf(L, vbLf, "") & Now & " " & Name & ": " 'проставляем дату\время\ФИО, в скобках - условие "пустая ли ячейка?" (т.е. делать перенос строки или нет)
                 For i = 1 To L: .Characters(i, 1).Font.Color = arr(i - 1): Next 'ещё немного волшебства
                     With .Characters(L + 1, Len(.Value) - L - 1)
                     .Font.Color = IIf(Name = "Иванов А." Or Name = "Андреев П." Or Name = "Васьков А.", vbBlue, vbBlack) 'выделяем дату\время\ФИО в комментарии определённого пользователя
                     End With
                 .Characters(Len(.Value)).Font.ColorIndex = xlAutomatic 'оптимизация производительности макроса
             End With
         End If
Cancel = 0 'открываем ячейку по двойному клику, а не только добавляем в неё данные
With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With 'оптимизация производительности макроса
End Sub
[/vba]

Единственное, я заметил, что если в ячейке текст уже как-то отформатирован (например, какая-то его часть выделена жирным или подчёркнутым, изменён размер), то при отрабатывании макроса:
а) если вставляется "цветной" комментарий, то всё форматирование (кроме цвета) сбрасывается к стандартному
б) если вставляется "обычный" комментарий, то ВЕСЬ текст в ячейке, включая добавленный комментарий, становится жирным\другого размера и т.п., в зависимости от того, какое форматирование было к нему применено

Если первый пункт ещё не очень критичен, то второй уже сильно влияет, иначе весь файл превратится в разношёрстную "радугу"...


Сообщение отредактировал Venique - Среда, 22.10.2014, 13:01
 
Ответить
СообщениеБольшое спасибо!

Да, Вы правильно меня поняли. Мне было необходимо, чтобы макрос не только вставлял в ячейку дату\время\имя комментирующего, но и выделял эту вставленную информацию определённым цветом, если фамилия комментирующего совпадает с указанной в макросе. То есть, например, в ячейке текст инцидента написан чёрным, как и некоторые комментарии, а если свой комментарий вставляет супер-пользователь Иванов А., то его строка с датой\временем\именем выделяется синим для акцента.

Собственно, вот, немного причесал код. Надеюсь, ничего лишнего не удалил. Поправьте, ежели что, не обессудьте :D

[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
         If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
             With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                 With Application: .ScreenUpdating = 0: .EnableEvents = 0: End With 'оптимизация производительности макроса
                 Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
                 'волшебство начинается
                 Dim L&: L = Len(.Value)
                 Dim char, arr&(), i&
                 ReDim arr(L + (L > 0))
                 For i = 1 To L: arr(i - 1) = .Characters(i, 1).Font.Color: Next
                 'волшебство заканчивается
                 .Value = .Value & IIf(L, vbLf, "") & Now & " " & Name & ": " 'проставляем дату\время\ФИО, в скобках - условие "пустая ли ячейка?" (т.е. делать перенос строки или нет)
                 For i = 1 To L: .Characters(i, 1).Font.Color = arr(i - 1): Next 'ещё немного волшебства
                     With .Characters(L + 1, Len(.Value) - L - 1)
                     .Font.Color = IIf(Name = "Иванов А." Or Name = "Андреев П." Or Name = "Васьков А.", vbBlue, vbBlack) 'выделяем дату\время\ФИО в комментарии определённого пользователя
                     End With
                 .Characters(Len(.Value)).Font.ColorIndex = xlAutomatic 'оптимизация производительности макроса
             End With
         End If
Cancel = 0 'открываем ячейку по двойному клику, а не только добавляем в неё данные
With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With 'оптимизация производительности макроса
End Sub
[/vba]

Единственное, я заметил, что если в ячейке текст уже как-то отформатирован (например, какая-то его часть выделена жирным или подчёркнутым, изменён размер), то при отрабатывании макроса:
а) если вставляется "цветной" комментарий, то всё форматирование (кроме цвета) сбрасывается к стандартному
б) если вставляется "обычный" комментарий, то ВЕСЬ текст в ячейке, включая добавленный комментарий, становится жирным\другого размера и т.п., в зависимости от того, какое форматирование было к нему применено

Если первый пункт ещё не очень критичен, то второй уже сильно влияет, иначе весь файл превратится в разношёрстную "радугу"...

Автор - Venique
Дата добавления - 22.10.2014 в 12:46
Venique Дата: Четверг, 23.10.2014, 16:02 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Цитата
Единственное, я заметил, что если в ячейке текст уже как-то отформатирован (например, какая-то его часть выделена жирным или подчёркнутым, изменён размер), то при отрабатывании макроса:
а) если вставляется "цветной" комментарий, то всё форматирование (кроме цвета) сбрасывается к стандартному
б) если вставляется "обычный" комментарий, то ВЕСЬ текст в ячейке, включая добавленный комментарий, становится жирным\другого размера и т.п., в зависимости от того, какое форматирование было к нему применено


Может кто-нибудь помочь?
 
Ответить
Сообщение
Цитата
Единственное, я заметил, что если в ячейке текст уже как-то отформатирован (например, какая-то его часть выделена жирным или подчёркнутым, изменён размер), то при отрабатывании макроса:
а) если вставляется "цветной" комментарий, то всё форматирование (кроме цвета) сбрасывается к стандартному
б) если вставляется "обычный" комментарий, то ВЕСЬ текст в ячейке, включая добавленный комментарий, становится жирным\другого размера и т.п., в зависимости от того, какое форматирование было к нему применено


Может кто-нибудь помочь?

Автор - Venique
Дата добавления - 23.10.2014 в 16:02
krosav4ig Дата: Пятница, 24.10.2014, 20:16 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
Cancel = 1
         On Error GoTo err 'если произойдет какая-нибудь ошибка, выполнить последнюю строку кода
         If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
             With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                 With Application: .ScreenUpdating = 0: End With 'оптимизация производительности макроса
                 Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
                 'волшебство начинается
                 Dim L&: L = Len(.Value)
                 Dim D$, i&, tmp$, k$
                 Select Case Application.MoveAfterReturnDirection
                     Case xlDown: D = "UP": Case xlUp: D = "DOWN"
                     Case xlRight: D = "LEFT": Case xlLeft: D = "RIGHT"
                 End Select
                 k = "{F2}^{END}" & IIf(L, "%{ENTER}", "") & Now & " " & Name & ": {ENTER}{" & D & "}"
                 Application.SendKeys k
                 DoEvents
                 'волшебство закончилось ; )
                 With .Characters(L + 1, Len(.Value) - L - 1)
                     .Font.Color = IIf(Name = "Иванов А." Or Name = "Андреев П." Or Name = "Васьков А.", vbBlue, vbBlack) 'выделяем дату\время\ФИО в комментарии определённого пользователя
                 End With
                 With .Characters(L + 1, Len(.Value) - L).Font
                     .Name = Application.StandardFont: .Bold = 0: .Italic = 0
                     .Size = Application.StandardFontSize: .Strikethrough = 0
                     .Subscript = 0: .Superscript = 0: .ThemeFont = xlThemeFontNone
                     .TintAndShade = 0: .Underline = xlUnderlineStyleNone
                     .OutlineFont = 0: .Shadow = 0: .FontStyle = "обычный"
                 End With
                 .Characters(L).Font.ColorIndex = xlAutomatic
             End With
             Application.SendKeys "{F2}"
         End If
err: 'следующая строка дожна быть обязательно выполнена
         With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With 'оптимизация производительности макроса
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 24.10.2014, 20:45
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
Cancel = 1
         On Error GoTo err 'если произойдет какая-нибудь ошибка, выполнить последнюю строку кода
         If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
             With Target(1, 1) 'указываем, с какой ячейкой работать макросу
                 With Application: .ScreenUpdating = 0: End With 'оптимизация производительности макроса
                 Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
                 'волшебство начинается
                 Dim L&: L = Len(.Value)
                 Dim D$, i&, tmp$, k$
                 Select Case Application.MoveAfterReturnDirection
                     Case xlDown: D = "UP": Case xlUp: D = "DOWN"
                     Case xlRight: D = "LEFT": Case xlLeft: D = "RIGHT"
                 End Select
                 k = "{F2}^{END}" & IIf(L, "%{ENTER}", "") & Now & " " & Name & ": {ENTER}{" & D & "}"
                 Application.SendKeys k
                 DoEvents
                 'волшебство закончилось ; )
                 With .Characters(L + 1, Len(.Value) - L - 1)
                     .Font.Color = IIf(Name = "Иванов А." Or Name = "Андреев П." Or Name = "Васьков А.", vbBlue, vbBlack) 'выделяем дату\время\ФИО в комментарии определённого пользователя
                 End With
                 With .Characters(L + 1, Len(.Value) - L).Font
                     .Name = Application.StandardFont: .Bold = 0: .Italic = 0
                     .Size = Application.StandardFontSize: .Strikethrough = 0
                     .Subscript = 0: .Superscript = 0: .ThemeFont = xlThemeFontNone
                     .TintAndShade = 0: .Underline = xlUnderlineStyleNone
                     .OutlineFont = 0: .Shadow = 0: .FontStyle = "обычный"
                 End With
                 .Characters(L).Font.ColorIndex = xlAutomatic
             End With
             Application.SendKeys "{F2}"
         End If
err: 'следующая строка дожна быть обязательно выполнена
         With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With 'оптимизация производительности макроса
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 24.10.2014 в 20:16
krosav4ig Дата: Суббота, 25.10.2014, 15:48 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
Cancel = 0
       On Error GoTo err 'если произойдет какая-нибудь ошибка, выполнить последнюю строку кода
       If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
           With Target(1, 1) 'указываем, с какой ячейкой работать макросу
           With Application: .ScreenUpdating = 0: End With 'оптимизация производительности макроса
               Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
               'волшебство начинается
               Dim L&: L = Len(.Value)
               .Characters(L).Insert Right(.Value, 1) & IIf(L, vbLf, "") & Now & " " & Name & ": "
               Dim L2&: L2 = Len(Target.Characters.Text)
               Dim AL: Set AL = CreateObject("System.Collections.ArrayList")
               AL.Add "Иванов А.": AL.Add "Андреев П.": AL.Add "Васьков А."
               .Characters(L + 1, L2 - L - 1).Font.Color = IIf(AL.contains(Name), vbBlue, vbBlack) 'выделяем дату\время\ФИО в комментарии определённого пользователя
               Set AL = Nothing
               'волшебство закончилось ; )
               With .Characters(L + 1, L2 - L).Font
                   .Name = Application.StandardFont: .Bold = 0: .Italic = 0
                   .Size = Application.StandardFontSize: .Strikethrough = 0
                   .Subscript = 0: .Superscript = 0: .ThemeFont = 0
                   .TintAndShade = 0: .Underline = -4142
                   .OutlineFont = 0: .Shadow = 0: .FontStyle = "обычный"
               End With
               .Characters(L2).Font.ColorIndex = xlAutomatic
           End With
       End If
err: 'следующая строка дожна быть обязательно выполнена
       With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With 'оптимизация производительности макроса
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 25.10.2014, 16:45
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'включаем действие по клику
Cancel = 0
       On Error GoTo err 'если произойдет какая-нибудь ошибка, выполнить последнюю строку кода
       If Not Intersect(Target, Range("K4:K5000")) Is Nothing Then 'включаем макрос для данного диапазона ячеек
           With Target(1, 1) 'указываем, с какой ячейкой работать макросу
           With Application: .ScreenUpdating = 0: End With 'оптимизация производительности макроса
               Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
               'волшебство начинается
               Dim L&: L = Len(.Value)
               .Characters(L).Insert Right(.Value, 1) & IIf(L, vbLf, "") & Now & " " & Name & ": "
               Dim L2&: L2 = Len(Target.Characters.Text)
               Dim AL: Set AL = CreateObject("System.Collections.ArrayList")
               AL.Add "Иванов А.": AL.Add "Андреев П.": AL.Add "Васьков А."
               .Characters(L + 1, L2 - L - 1).Font.Color = IIf(AL.contains(Name), vbBlue, vbBlack) 'выделяем дату\время\ФИО в комментарии определённого пользователя
               Set AL = Nothing
               'волшебство закончилось ; )
               With .Characters(L + 1, L2 - L).Font
                   .Name = Application.StandardFont: .Bold = 0: .Italic = 0
                   .Size = Application.StandardFontSize: .Strikethrough = 0
                   .Subscript = 0: .Superscript = 0: .ThemeFont = 0
                   .TintAndShade = 0: .Underline = -4142
                   .OutlineFont = 0: .Shadow = 0: .FontStyle = "обычный"
               End With
               .Characters(L2).Font.ColorIndex = xlAutomatic
           End With
       End If
err: 'следующая строка дожна быть обязательно выполнена
       With Application: .ScreenUpdating = 1: .EnableEvents = 1: End With 'оптимизация производительности макроса
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 25.10.2014 в 15:48
Venique Дата: Пятница, 31.10.2014, 15:23 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Ух, только добрался до ПК... действительно "волшебство", до такого уже никак не додуматься самому...

Второй вариант изящнее первого, насколько я понял, но увы он перестаёт добавлять комментарии уже где-то после 7-10 клика по ячейке. Поэтому пришлось воспользоваться первым. Он хоть и не такой красивый и работает наверняка чуть медленнее, но работает правильно - наличие текста в ячейке понимает, дату\время\фио добавляет, окрашивает их, если это ФИО определённого человека, остальное форматирование не сбивает.

Так что спасибо Вам огромное, плюсиков в карму настоящую и виртуальную! :)
 
Ответить
СообщениеУх, только добрался до ПК... действительно "волшебство", до такого уже никак не додуматься самому...

Второй вариант изящнее первого, насколько я понял, но увы он перестаёт добавлять комментарии уже где-то после 7-10 клика по ячейке. Поэтому пришлось воспользоваться первым. Он хоть и не такой красивый и работает наверняка чуть медленнее, но работает правильно - наличие текста в ячейке понимает, дату\время\фио добавляет, окрашивает их, если это ФИО определённого человека, остальное форматирование не сбивает.

Так что спасибо Вам огромное, плюсиков в карму настоящую и виртуальную! :)

Автор - Venique
Дата добавления - 31.10.2014 в 15:23
Venique Дата: Вторник, 11.11.2014, 17:07 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
krosav4ig,
вынужден опять обратиться за Вашей помощью... первая версия макроса начала себя некорректно вести. Во-первых, вместо открытия ячейки он почему-то начинает переходить на ячейку вверх (т.е. выполнять прописанные нажатия клавиш, хотя раньше такого не было). Иногда он все-таки открывает ячейку, прописывая нужное значение, только добавляя перед этим "+K13". Попробовал испытать макрос на другом листе, чистом - вписывает в ячейку "11.11.2014 15:36:16 =0F0:0=>2 .:", т.е. вместо имени пользователя что-то непонятное, хотя оно забито верно.

Решил вернуться ко второму варианту макроса, который более изящный и всё-такое, но вновь столкнулся с проблемой, из-за которой в начале и отказался от его использования - нельзя добавить больше 7-9 строк текста нажатием на ячейку. Т.е. он вставляет дату\время\ФИО только 7-9 раз (в зав-ти от длины ФИО), потом перестаёт. Методом удаления всех строк, выяснил, что за это отвечает следующий блок:

[vba]
Код
Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
              'волшебство начинается
              Dim L&: L = Len(.Value)
              .Characters(L).Insert Right(.Value, 1) & IIf(L, vbLf, "") & Now & " " & Name & ": "
[/vba]

Возможно, есть какое-то ограничение на размер переменной L$, но как его обойти - я так и не понял... можно как-то помочь с этим? :)
 
Ответить
Сообщениеkrosav4ig,
вынужден опять обратиться за Вашей помощью... первая версия макроса начала себя некорректно вести. Во-первых, вместо открытия ячейки он почему-то начинает переходить на ячейку вверх (т.е. выполнять прописанные нажатия клавиш, хотя раньше такого не было). Иногда он все-таки открывает ячейку, прописывая нужное значение, только добавляя перед этим "+K13". Попробовал испытать макрос на другом листе, чистом - вписывает в ячейку "11.11.2014 15:36:16 =0F0:0=>2 .:", т.е. вместо имени пользователя что-то непонятное, хотя оно забито верно.

Решил вернуться ко второму варианту макроса, который более изящный и всё-такое, но вновь столкнулся с проблемой, из-за которой в начале и отказался от его использования - нельзя добавить больше 7-9 строк текста нажатием на ячейку. Т.е. он вставляет дату\время\ФИО только 7-9 раз (в зав-ти от длины ФИО), потом перестаёт. Методом удаления всех строк, выяснил, что за это отвечает следующий блок:

[vba]
Код
Dim Name$: Name = Application.UserName 'задаём переменную Name, содержащую имя пользователя
              'волшебство начинается
              Dim L&: L = Len(.Value)
              .Characters(L).Insert Right(.Value, 1) & IIf(L, vbLf, "") & Now & " " & Name & ": "
[/vba]

Возможно, есть какое-то ограничение на размер переменной L$, но как его обойти - я так и не понял... можно как-то помочь с этим? :)

Автор - Venique
Дата добавления - 11.11.2014 в 17:07
Venique Дата: Среда, 12.11.2014, 17:48 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
бамп
 
Ответить
Сообщениебамп

Автор - Venique
Дата добавления - 12.11.2014 в 17:48
Venique Дата: Четверг, 13.11.2014, 13:09 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
бамп
 
Ответить
Сообщениебамп

Автор - Venique
Дата добавления - 13.11.2014 в 13:09
Treider01 Дата: Четверг, 13.11.2014, 14:24 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 1 ±
Замечаний: 0% ±

Excel 2003


Так делать не стоит. Будет у людей время - вам помогут.
 
Ответить
Сообщение

Так делать не стоит. Будет у людей время - вам помогут.

Автор - Treider01
Дата добавления - 13.11.2014 в 14:24
Venique Дата: Понедельник, 17.11.2014, 12:58 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Надеюсь :)
 
Ответить
СообщениеНадеюсь :)

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

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