Страницы: 1
RSS
Примечания Comments- как вернуть примечания в район ячейки родной ячейки для редактирования, в режиме редактирования примечания - оччччень далеко на листе
 
Файл с большим количеством данных, разными форматоми их обработки, проверяется многими людьми разных инстанций. Для многих ячеек добавлены примечания об источних данных, или о способе получения данных. После того как файл вернулся на доработку, примечания к ячейке в столбцах (например, AX) всплывают рядом с ячейкой. Но если захотеть его раедактировать, то открывается в районе столбца GIX, например. или еще на сотни дальше. Примечаний в файле много на наскольких листах. Как их всех вернуть к своим ячейкам. Или в район первых A-F столбцов (обычно мы эти столбцы оставляем на экране во время проверки или обработки этих данных.
Я просмотрела темы по примечаниям. Но такого совета не нашла.
Спасибо всем, кто откликнится с идеями. Эта задача у нас возникает достаточно регулярно.
 
Макрос работает с примечаниями НА АКТИВНОМ ЛИСТЕ. После его отработки примечания выставляются возле ячеек-родителей. Задается одинаковый размер примечаний.
Открыть нужный лист, запустить макрос
Код
Sub SizeAndFixComments()
    Dim oComm As Comment

    For Each oComm In ActiveSheet.Comments
        With oComm
            .Shape.Top = .Parent.Cells.Top - 10                         ' чуток выше ячейки
            .Shape.Left = .Parent.Cells.Left + .Parent.Cells.Width + 10 ' и чуть правее
            .Shape.Height = 50 ' высота примечания
            .Shape.Width = 110 ' и его ширина
        End With
    Next oComm
End Sub
 
Спасибо, но пока не получилось. Я открыла файл, разрешила работать макросам. Выбрала нужный лист. Если подвожу курсор к ячейке - примечание показывается рядом. но если выбираю редактирование примечания - то опять в районе столбца GJG.

P.S.
Добавление: положение примечаний да, изменилось. Раньше они разбегались вверх вниз и далеко, а теперь они все на тойже строке, на которой родная ячейка, но очень далеко на дальних столбцах.

P.P.S.
Ой, все заработало, когда изменила ориентацию листа на "слева-направо". А что надо добавить в ваш макрос, чтобы проверяло ориентацию листа "слева-направо" или "справа-налево". и тогда я Left заменяю на что?
Изменено: Лодмила - 26.02.2020 02:50:58
 
Проверку ориентации нашла
а как исправить, чтобы в обратной ориентации все тоже получалось - нет, не нашла, жду вашей помощи.

Sub SizeAndFixComments()
   Dim oComm As Comment
   If ActiveSheet.DisplayRightToLeft Then
       For Each oComm In ActiveSheet.Comments
        With oComm
           .Shape.Top = .Parent.Cells.Top - 10
           .Shape.Left = .Parent.Cells.Left + .Parent.Cells.Width + 10
           .Shape.Height = 50
           .Shape.Width = 110
        End With
       Next oComm
   Else
       For Each oComm In ActiveSheet.Comments
        With oComm
           .Shape.Top = .Parent.Cells.Top - 10
           .Shape.?????= .Parent.Cells.????? + .Parent.Cells.Width + 10
           .Shape.Height = 50
           .Shape.Width = 110
        End With
       Next oComm
   End If
   
End Sub
 
Не проверял:
Код
Sub SizeAndFixComments()
    Dim oComm As Comment
    Dim lWidth As Long
    
    lWidth = 110

    For Each oComm In ActiveSheet.Comments
        With oComm
            .Shape.Height = 50
            .Shape.Width = lWidth
            .Shape.Top = .Parent.Cells.Top - 10
            
            If ActiveSheet.DisplayRightToLeft Then
                .Shape.Left = .Parent.Cells.Left + .Parent.Cells.Width + 10
            Else
                .Shape.Left = .Parent.Cells.Left - 10 - lWidth
            End If
        End With
    Next oComm
End Sub
Страницы: 1
Наверх