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

Вход

Регистрация

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

 

= Мир MS Excel/Как определить цвет и соотв.текст под центром фигуры - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как определить цвет и соотв.текст под центром фигуры
Dalm Дата: Понедельник, 24.10.2022, 13:45 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте.
помогите решить вопрос.

На листе есть множество ячеек залитых разным цветом.
Имеется фигура которая можно перемещать стрелками (вверх,вниз,влево,вправо).
Рядом находится таблица, в которой каждому цвету ячейки - сопоставлен какой-то уникальный текст.

Как макросом вывести в ячейку G6 - цвет ячейки, которая находится точно под центром фигуры, а в ячейку H6 - соответствующий этому цвету текст ?
(но обновление этих данных нужно не сразу, а лишь каждые несколько ходов, количество которых указано в ячейке G5)
К сообщению приложен файл: 111.xls (56.5 Kb)
 
Ответить
СообщениеЗдравствуйте.
помогите решить вопрос.

На листе есть множество ячеек залитых разным цветом.
Имеется фигура которая можно перемещать стрелками (вверх,вниз,влево,вправо).
Рядом находится таблица, в которой каждому цвету ячейки - сопоставлен какой-то уникальный текст.

Как макросом вывести в ячейку G6 - цвет ячейки, которая находится точно под центром фигуры, а в ячейку H6 - соответствующий этому цвету текст ?
(но обновление этих данных нужно не сразу, а лишь каждые несколько ходов, количество которых указано в ячейке G5)

Автор - Dalm
Дата добавления - 24.10.2022 в 13:45
msi2102 Дата: Понедельник, 24.10.2022, 17:21 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 415
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Может Вам лучше привязаться к активной ячейке, и повесить на событие Worksheet_SelectionChange, а то лень разбираться с Вашими задумками
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("B5:P10")) Is Nothing Then
        [a1].Interior.ColorIndex = Target.Interior.ColorIndex
        With ActiveSheet.Shapes.Range("Овал 1")
            .Left = Target.Left + Target.Width / 2 - .Width / 2
            .Top = Target.Top + Target.Height / 2 - .Height / 2
        End With
    End If
End Sub
[/vba]

см. файл
Активную ячейку перемещайте стрелками на клавиатуре, если активная ячейка в диапазоне В5:Р10 то в А1 изменяется цвет
К сообщению приложен файл: 0786914.xlsm (17.3 Kb)
 
Ответить
СообщениеМожет Вам лучше привязаться к активной ячейке, и повесить на событие Worksheet_SelectionChange, а то лень разбираться с Вашими задумками
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("B5:P10")) Is Nothing Then
        [a1].Interior.ColorIndex = Target.Interior.ColorIndex
        With ActiveSheet.Shapes.Range("Овал 1")
            .Left = Target.Left + Target.Width / 2 - .Width / 2
            .Top = Target.Top + Target.Height / 2 - .Height / 2
        End With
    End If
End Sub
[/vba]

см. файл
Активную ячейку перемещайте стрелками на клавиатуре, если активная ячейка в диапазоне В5:Р10 то в А1 изменяется цвет

Автор - msi2102
Дата добавления - 24.10.2022 в 17:21
Dalm Дата: Понедельник, 24.10.2022, 18:35 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
msi2102, ясно, но мне нужно - именно как в моем вопросе.
 
Ответить
Сообщениеmsi2102, ясно, но мне нужно - именно как в моем вопросе.

Автор - Dalm
Дата добавления - 24.10.2022 в 18:35
Pelena Дата: Понедельник, 24.10.2022, 19:52 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
Так хотели?
К сообщению приложен файл: 1111.xlsm (27.6 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеТак хотели?

Автор - Pelena
Дата добавления - 24.10.2022 в 19:52
Dalm Дата: Вторник, 25.10.2022, 09:05 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 92
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Pelena, Да, спасибо.
Все так - как нужно.
 
Ответить
СообщениеPelena, Да, спасибо.
Все так - как нужно.

Автор - Dalm
Дата добавления - 25.10.2022 в 09:05
RAN Дата: Вторник, 25.10.2022, 17:00 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Лена, а показать без файла? :p


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЛена, а показать без файла? :p

Автор - RAN
Дата добавления - 25.10.2022 в 17:00
Pelena Дата: Вторник, 25.10.2022, 17:53 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
да пожалуйста)
[vba]
Код
Public nstep As Long
Public Sub GetColor()
    Dim x, y, shp As Shape, r As Range, cell As Range
    Application.ScreenUpdating = False
    nstep = nstep + 1
    If nstep >= Range("G5") Then
        With ActiveSheet.Shapes.Range(Array("Ãðóïïà 4"))
            x = .Left + .Width / 2
            y = .Top + .Height / 2
        End With
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeOval, x, y, 1, 1)
        Set r = shp.TopLeftCell
        shp.Delete
        Range("G6").Interior.Color = r.Interior.Color
        nstep = 0
        For Each cell In Range("BK4:BK15")
            If cell.Interior.Color = r.Interior.Color Then Range("H6") = cell.Offset(, 1): Exit For
        Next cell
    End If
    Application.ScreenUpdating = True
End Sub
[/vba]
и вызвать при нажатии на любую из нарисованных стрелок


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеда пожалуйста)
[vba]
Код
Public nstep As Long
Public Sub GetColor()
    Dim x, y, shp As Shape, r As Range, cell As Range
    Application.ScreenUpdating = False
    nstep = nstep + 1
    If nstep >= Range("G5") Then
        With ActiveSheet.Shapes.Range(Array("Ãðóïïà 4"))
            x = .Left + .Width / 2
            y = .Top + .Height / 2
        End With
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeOval, x, y, 1, 1)
        Set r = shp.TopLeftCell
        shp.Delete
        Range("G6").Interior.Color = r.Interior.Color
        nstep = 0
        For Each cell In Range("BK4:BK15")
            If cell.Interior.Color = r.Interior.Color Then Range("H6") = cell.Offset(, 1): Exit For
        Next cell
    End If
    Application.ScreenUpdating = True
End Sub
[/vba]
и вызвать при нажатии на любую из нарисованных стрелок

Автор - Pelena
Дата добавления - 25.10.2022 в 17:53
  • Страница 1 из 1
  • 1
Поиск:

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