Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Всем доброго! В общем всё получилось! ) Огромная благодарность и отдельное спасибо за наставление на путь истинный - asesja! В общем выкладываю то, что у меня получилось, надеюсь кому то подойдет данный шаблон! Но если будут рекомендации по коду буду только рад! Всем спасибо за помощь и поддержку!  
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Народ, помогите пожалуйста! Не пойму почему размер по ширине метка не изменяет (((
к сожалению файл не прикрепить ибо превышен размер допустимого в 300 кб  ((((  
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Народ, помогите пожалуйста! Не пойму почему размер по ширине метка не изменяет (((
Sub ОписаниеКартинок()
   Dim pic As Shape, lbl As OLEObject
   Dim imgID As String
   Dim desc As String
   Dim additionalInfoC As String
   Dim additionalInfoD As String
   Dim additionalInfoE As String
   Dim rowIndex As Long
   Dim maxWidth As Double
   maxWidth = 300 ' Максимальная ширина метки

   ' Получаем ссылку на картинку
   Set pic = ActiveSheet.Shapes(Application.Caller)

   ' Проверяем наличие Label1 на активном листе
   On Error Resume Next
   Set lbl = ActiveSheet.OLEObjects("Label1")
   On Error GoTo 0

   If lbl Is Nothing Then
       MsgBox "Label1 не найдена на активном листе", vbExclamation
       Exit Sub
   End If

   If Not TypeOf lbl.Object Is MSForms.Label Then
       MsgBox "Объект Label1 не является меткой!", vbExclamation
       Exit Sub
   End If

   ' Получаем метку
   Dim lblLabel As MSForms.Label
   Set lblLabel = lbl.Object

   ' Получаем ID картинки
   imgID = Split(pic.Name, "_")(1)
   Debug.Print "imgID: " & imgID

   ' Ищем строку по ID
   rowIndex = FindRowByID(imgID, "Данные")

   If rowIndex > 0 Then
       desc = Sheets("Данные").Range("B" & rowIndex).Value
       additionalInfoC = Sheets("Данные").Range("C" & rowIndex).Value
       additionalInfoD = Sheets("Данные").Range("D" & rowIndex).Value
       additionalInfoE = Sheets("Данные").Range("E" & rowIndex).Value
       
       desc = "Описание: " & desc & vbCrLf & _
              "Дополнительно C: " & additionalInfoC & vbCrLf & _
              "Дополнительно D: " & additionalInfoD & vbCrLf & _
              "Дополнительно E: " & additionalInfoE
       
       desc = Replace(desc, ",", vbCrLf) ' Меняем запятую на перенос строки

       ' Проверяем, отличается ли текст метки от нового текста
       If lblLabel.Caption <> desc Then
           lblLabel.Caption = desc

           ' Отключаем автоматическую подгонку высоты
           lblLabel.AutoSize = False
           
           ' Устанавливаем ширину метки, и если она больше maxWidth, устанавливаем maxWidth
           lblLabel.Width = Application.WorksheetFunction.Min(lblLabel.Width, maxWidth)
           
           ' Устанавливаем высоту
           lblLabel.Height = Application.WorksheetFunction.Max(lblLabel.Height, 20)

           ' Изменяем шрифты и цвет заливки
           With lblLabel.Font
               .Name = "Arial"
               .Size = 11
               .Bold = False
           End With

           ' Устанавливаем цвет заливки
           lblLabel.BackColor = RGB(255, 255, 0)

           ' Получаем координаты для размещения Label
           With pic
               Dim picRight As Double
               Dim picBottom As Double
               picRight = .Left + .Width
               picBottom = .Top + .Height - 15
           End With
           
           lblLabel.Left = picRight
           lblLabel.Top = picBottom
           
           lbl.Visible = True
       End If
   Else
       MsgBox "ID не найден: " & imgID & vbNewLine & "Проверьте наличие данных на листе 'Данные'."
   End If

End Sub


Function FindRowByID(imgID As String, sheetName As String) As Long
   Dim ws As Worksheet

   ' Проверяем, существует ли sheetName
   On Error Resume Next
   Set ws = Sheets(sheetName)
   On Error GoTo 0

   If ws Is Nothing Then
       MsgBox "Лист '" & sheetName & "' не найден", vbExclamation
       FindRowByID = -1
       Exit Function
   End If

   Dim lastRow As Long
   lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Находим последнюю строку в столбце A
   
   Dim i As Long
   For i = 1 To lastRow
       If ws.Cells(i, 1).Value = imgID Then ' Предполагается, что ID находится в столбце A
           FindRowByID = i ' Возвращаем номер строки, где найден ID
           Exit Function
       End If
   Next i
   
   FindRowByID = -1 ' Если не найден, возвращаем -1
End Function
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Порылся в интернете, но подсказки так и не появляются (( помогите пожалуйста найти ошибку
Изменено: kot2012 - 15.03.2025 22:36:56
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Для специалиста это решаемо.
Это понятно, что спец сделает, но я к таким не отношусь к сожалению, поэтому и обратился за помощью  
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Сложно ли, к примеру, на автомобиле поменять ГРМ или Шаровую опору для обычного водителя, который в этом не разбирается (или не понимает как сделать) и для специалиста, который работает в этой сфере в автомастерской?       Еще нужно учитывать, что у каждого  мастера свой уровень знаний, практического опыта ну и собственно подхода к выполнению работы (качественно или "на отвали").      
Видимо, сложно ( думал как с примечаниями к ячейке, что так и с картинкой можно поступить в два клика, это печально  :cry:  
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Так я это и предложил, в описании реализации своего варианта   .
:) ну вот видите мой уровень в программировании )) я ни слова не понял ))) а сложно ли это реализовать? И если у кода будут комментарии вообще будет супер! Буду признателен за помощь!
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
А мне видится реализация довольно лаконичной (для моего варианта).Независимо от количества картинок на листе, присвоить всем одну процедуру. На другой лист получить в столбик имена всех картинок и рядом уже прописывать свои данные (характеристики или что там будет у ТС), ну и, соответственно, выводить описание по имени картинки в единственный label. Естественно, всё описанное делается программно.
А можно ли так реализовать, к примеру на соседнем листе вносить данные, а на рабочем к картинке подтягивались ее характеристики (из таблицы), чтобы в код не лазить? Для меня это темный лес ((
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Положение меняется в свойствах Left и Top объекта Label1.
Подскажите пожалуйста, на что он ругается? Я просто скопировал весь код в новый файл без изменений, и он перестал работать
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Положение меняется в свойствах Left и Top объекта Label1.
Благодарю! Еще раз огромное спасибо вам за помощь!  
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
kot2012 , здравствуйте.Можно попробовать вот так, только не при наведении на картинку, а при клике.См. вложение.
Да! Это оно! Вы супер!  :) А как изменять аннотацию/описание? И как можно изменить положение описания? Я в этом абсолютный ноль (( буду очень признателен за разъяснение!
Изменено: kot2012 - 14.03.2025 21:35:01
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
Файл нужен в формате excel.фотки не подходят или к ворожке обратиться
Ну если это как-то поможет
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Цитата
написал:
https://www.excelworld.ru/forum/10-54239-1
ну это почти то, но там не понятно как потом редактировать (( да и с макросами я не работал ни когда, я думал может штатно как-то можно, как в примерах когда в описания картинку вставляют. Мне бы так же только наоборот )))) А может вы знаете как можно привязать картинку к ячейки, чтобы можно было потом эту картинку таскать куда угодно с сохранением привязки к ячейки? Может ещё так прокатит, а то у меня идеи как это без кода и при этом легко редактируемо сделать вообще закончились ((((
Добавление описания/примечания (выпадающий список) на картинке, Как сделать чтобы при наведении на картинку появлялся список/описание
 
Всем доброго! В общем задача такая, необходимо сделать так, чтобы при наведении на картинку появлялся список (характеристик, описание и т.д) получилось сделать следующее (см. скрин) реализовано было так: в ячейке, что за картинкой тупо вставил примечание и вроде бы вот оно счастье, но картинок планируется много и если их переместить то всё пойдет по тому самому месту ((( Как можно и ЕСЛИ можно, добавить примечание к самой картинке? Чтобы куда бы её не переместили описание было намертво прикреплено к ней? Из идей создать отдельный лист с id и привязать эти id с описаниями к конкретной картинке, но как это сделать ума не хватает! (( Одна надежда на гуру Excel, помогите пожалуйста!
Страницы: 1
Наверх