Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Функция в Excel: добавление картинки / 15 сообщений из 15, страница 1 из 1
05.12.2006, 08:53:48
    #34176461
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Прошу сразу меня извинить, в поиске ничего не нашел.

Нужна функция, которая берет путь из ячейки, в вставляет картинку из этого пути на определенное место в документе.
Вот все с функциями перепробовал (чайник я), но никак не могу заставить ее вообще вставлять картинку. Помогите =(
...
Рейтинг: 0 / 0
05.12.2006, 09:36:52
    #34176527
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Или хотя бы подскажите, это вообще сделать можно?
Функция может вернуть картинку?
...
Рейтинг: 0 / 0
05.12.2006, 09:55:53
    #34176573
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
можно сделать кнопку и повесить на неё свой макрос. а макрос можно записать макрорекордером. Там где будет указан путь картинки в коде, заменить его на Cells(r,c).value, т.е. на значение ячейки, в которой находится путь. Например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub CommandButton1_Click()
Dim PPath As String
    PPath = Cells( 1 ,  1 ).Value
    With ActiveSheet.Pictures.Insert(PPath)
        .ShapeRange.IncrementLeft - 199 . 5 
        .ShapeRange.IncrementTop - 3 
    End With
End Sub

строки с .ShapeRange - для изменения положения
...
Рейтинг: 0 / 0
05.12.2006, 09:59:03
    #34176579
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Про кнопку я думал, но хочется чтобы все делалось автоматически.
А у клиентов и так в системе куча кнопок, ругаются.

А можно хоть в этой функции вызвать процедуру, которая вставляет картинку?
у меня щас вот так:

автор Public Function Add()
Range("B5").Select
ActiveSheet.Pictures.Insert("C:\My Documents\My Pictures\logo_sas.gif").Select
End Function

не работает.
...
Рейтинг: 0 / 0
05.12.2006, 10:19:00
    #34176652
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
BayroNА можно хоть в этой функции вызвать процедуру, которая вставляет картинку?
не будет работать.

можно попробовать следующий алгоритм: сделать обработчик события изменения листа, проверять изменилось ли содержание ячейки с адресом картинки. если изменилось - вставить новую.
...
Рейтинг: 0 / 0
05.12.2006, 10:31:39
    #34176703
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Тогда попрошу подсказать как отследить изменение =)
...
Рейтинг: 0 / 0
05.12.2006, 10:49:04
    #34176719
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
этот код нужно добавить в код листа, не модуля:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Const AddressRange = "A1"
Static OldValue As String
Dim PPath As String
Static PictureName As String

    If Target.Address <> Range(AddressRange).Address Then
        Exit Sub
    End If
    
    On Error GoTo errhandler_emptypath:

    If Range(AddressRange).Value = "" Then
        ActiveSheet.Shapes(PictureName).Delete
        OldValue = ""
        Exit Sub
    End If
    
    On Error GoTo errhandler_wrangpath:
    
    If Range(AddressRange).Value <> OldValue Then
        PPath = Range(AddressRange).Value
        With ActiveSheet.Pictures.Insert(PPath)
            .ShapeRange.IncrementLeft - 199 . 5 
            .ShapeRange.IncrementTop - 3 
            PictureName = .Name
        End With
        OldValue = PPath
    End If
    
    Exit Sub

errhandler_wrangpath:
    MsgBox "Неверный адрес картинки"
    Exit Sub

errhandler_emptypath:
    Exit Sub

End Sub
...
Рейтинг: 0 / 0
05.12.2006, 11:18:15
    #34176822
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Огромное спасибо. Так все работает. Но оказалось, что все не так просто.
У меня шаблон заполняется автоматически, и залезть в AutoOpen который это делает я не могу.
Получается, что изменения как бы и нет, если руками ничего не вводишь.
Можно это как-то обойти?
...
Рейтинг: 0 / 0
05.12.2006, 11:32:03
    #34176881
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
BayroN... залезть в AutoOpen который это делает я не могу... Это удивительно! можно добавить одну строчку в конце для вызова своей функции и все. Подумайте об этом.

BayroNПолучается, что изменения как бы и нет, если руками ничего не вводишь.
Можно это как-то обойти?

Можно использовать еще эти события книги для запуска своего макроса при открытии файла. Они будут выполняться после Workbook_Open:
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Workbook_Activate()
    MsgBox "Workbook_Activate"
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    MsgBox "Workbook_WindowActivate"
End Sub
...
Рейтинг: 0 / 0
05.12.2006, 12:01:46
    #34177037
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Спасибо большое за уделенное время.
Но у меня все равно ничего не работает =)

Схема получается такая:
- Есть шаблон Excel.
- Из программы выгружаются данные, и открывается AutoOpen.xls, он подхватывает шаблон и заполняет его данными.
- В одном из столбцов будет путь, по этому пути мне надо вставить туда картинку =(
- AutoOрen я не могу поменять, потому как он для всех компаний один, а это надо сделать только для одного клиент, не хочется его переписывать.

Можно ли сделать что-нибудь в такой ситуации?
...
Рейтинг: 0 / 0
05.12.2006, 13:23:28
    #34177358
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
можешь прислать мне шаблон и заполненный файл?
...
Рейтинг: 0 / 0
05.12.2006, 14:19:53
    #34177599
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Отправил.
...
Рейтинг: 0 / 0
05.12.2006, 18:31:37
    #34178626
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
BayroNСхема получается такая:
- Есть шаблон Excel.
- Из программы выгружаются данные, и открывается AutoOpen.xls, он подхватывает шаблон и заполняет его данными.
- В одном из столбцов будет путь, по этому пути мне надо вставить туда картинку =(
- AutoOрen я не могу поменять, потому как он для всех компаний один, а это надо сделать только для одного клиент, не хочется его переписывать.

Можно ли сделать что-нибудь в такой ситуации?
Добавь в нужные шаблоны модуль с именем Reformat и в нем макрос:
Код: plaintext
1.
2.
Public Sub AfterGenerate()
    ... здесь твой код с картинками и разной другой фигней
end sub
А в AutoOpen (который универсален для всех) в самом конце макроса сделай вызов:
Код: plaintext
1.
2.
on error resume next
Application.Run("MyNewDocument.xls!Reformat.AfterGenerate")
on error goto  0 
То есть оно попытается найти в документе созданном из шаблона этот макрос и если найдет - запустит. Не найдет - молча пропустит.
...
Рейтинг: 0 / 0
08.12.2006, 09:41:59
    #34185185
BayroN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
Всем спасибо за помощь.
Пришлось все же делать кнопкой.
Не дали исправить то что уже есть =(
...
Рейтинг: 0 / 0
20.11.2007, 16:53:39
    #34952763
ShurikEv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция в Excel: добавление картинки
А вот почему в 2007 офисе нет ShapeRange.IncrementLeft? Выяснилось простой записью макроса, когда картинка перемещается. Как тут быть?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Функция в Excel: добавление картинки / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]