Страницы: 1
RSS
Отображение картинки по названию.
 
Вопрос только для тех кто знает MS Excel лучше, чем собственную жену...
Суть вопроса: есть некий excel-файл куда нужно закинуть картинки (фото) основываясь на названии этих фото-файлов...
Например: в первом столбце в первой строке excel-файла указано имя соответствующего файла картинки в расширении .jpg
То есть в первом столбце первой строки написано 123456.jpg, в том же столбце но во второй строке написано 654321.jpg и т. д.
(Всех их около 40 000)
ни одно из имен .jpg-файлов не повторяются, так как все картинки содержатся в одной и той же папке
Как сделать так, чтоб при введении в первый столбец и соответствующую строку экселя - напротив во втором столбце той же строки автоматом появлялась бы картинка соответствующая имени файла указанному в первом столбце?
мне нужно, чтоб при введении в определенный столбец и определенную строку excel-файла имени файла в .jpg - напротив него в соседнем столбце, но в той же строке появлялась .jpg-картинка, находящаяся в папке "А" (например)...

Welory
 
Цитата
Valeri Gargalık написал:
Вопрос только для тех кто знает MS Excel лучше, чем собственную жену
я сразу пасс. Я знаю Excel, но жена роднее. И никогда не сравнивал кого из них знаю лучше. Возможно жену. Т.к. не определился - уйду в тень от данной темы. Ведь у автора конкретное пожелание к помогающим :-)

Хотя само решение не должно быть сложным. Код строк на... Ну 10-15. На вскидку.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Загляните в Приемы, там есть статья по этой теме.

Смущает:
Цитата
Всех их около 40 000
Это же какой размер файла получится?
 
"Суть вопроса..." понятна, "мне нужно..." тоже понятно, не понятно в чем ПОМОЧЬ? Что не получается?
Согласие есть продукт при полном непротивлении сторон
 
файл-то ладно...
как винда еще не крякнула - 40000 файлов в одной папке хранить ))
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
vikttur написал: Это же какой размер файла получится?
не очень и большой... Мегабайт 200-250 примерно... каждая из картинок весит 70-80 Кб... и всего-то
Welory
 
Цитата
Sanja написал:
"Суть вопроса..." понятна, "мне нужно..." тоже понятно, не понятно в чем ПОМОЧЬ? Что не получается?
Помочь нужно только в одном: подскажите как это сделать
Welory
 
Я Вам подсказал - смотрите Приемы.
Цитата
не очень и большой... Мегабайт 200-250 примерно...
Для Excel это очень много. Могут появиться проблемы. Например, после длительной работы с файлом в один прекрасный день он не откроется. Не говорю, что только из-за размера, но в том числе.
Не любит он большие объемы.
 
The_Prist, код строк на 10-15 говорите? ну так подскажите если не сложно ))))
Welory
 
vikttur, но с такими объемами каждый день приходится дело иметь ))))
Welory
 
Цитата
Valeri Gargalık написал: ну так подскажите если не сложно
под критерий не подхожу
Цитата
Valeri Gargalık написал: только для тех кто знает MS Excel лучше, чем собственную жену
я же написал.
Не такой уж я знаток Excel. Поэтому имеет смысл ждать кого-то, кто не женат или сознается, что Excel знает больше...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Надеюсь в будущем учтете, что помощь на форуме может не зависеть от Ваших требований к помогающим(или хотя бы смайликами обозначайте где шутите).
Код поместить в модуль листа(Правая кнопка мыши на ярлыке листа-Исходный текст):
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        'путь к папке с картинками
        Const sPicPath As String = "G:\Документы\"
        
        Dim rr As Range, oPic, s As String
        Set rr = Target
        If rr.Value <> "" Then
            s = sPicPath & rr.Value
            If Dir(s, 16) <> "" Then
                Set oPic = rr.Parent.Pictures.Insert(s)
                oPic.Top = rr.Offset(, 1).Top
                oPic.Left = rr.Offset(, 1).Left
                'если нужно размеры подогнать
                'выбрать один из вариантов
                'oPic.Height = rr.Offset(, 1).Height 'по высоте строки
                'oPic.Width = rr.Offset(, 1).Width 'по ширине столбца
            End If
        End If
    End If
End Sub
код рассчитан на то, что имена картинок будут вставляться в столбец А. Если нужен другой диапазон - просто измените его здесь: Range("A:A")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Добрый вечер
Посмотрите, как-то занимался подобным
Цитата
ikki написал:
как винда еще не крякнула - 40000 файлов в одной папке хранить ))
я видел папку с более чем 200000 фото  :)
Изменено: Alexander88 - 25.06.2015 22:44:35
Страницы: 1
Наверх