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

Вход

Регистрация

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

 

= Мир MS Excel/Вставить картинку в файл - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставить картинку в файл (Макросы/Sub)
Вставить картинку в файл
карандаш Дата: Пятница, 22.01.2016, 10:01 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
Здравствуйте!
Вот _Boroda_ осчастливил юзеров макросом вставки картинки в файл

[vba]
Код
Sub tt()
' On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = "D:\прикол\" 'если картинки в той же папке, что и файл, то = ThisWorkbook.Path & "\"
If .Show <> -1 Then Exit Sub
ppp_ = .SelectedItems(1)
End With
Sheets("ДОГОВОР К-П").DrawingObjects.Delete 'Удаляет все объекты на листе
Set kar_ = Sheets("ДОГОВОР К-П").Range("A1").Parent.Pictures.Insert(ppp_)
With Sheets("ДОГОВОР К-П").Range("B238")
kar_.Top = .Top
kar_.Left = .Left
End With
End Sub
[/vba]

Вопрос в том, куда вставить этот макрос так, чтобы он был доступен из вновь открытого любого файла?
После обновления/переустановки Эксела пропали макросы этот и второй - сохранить файл как pdf с тем же названием (именем файла)

Уточнение по макросу. Можно заменить "Sheets("ДОГОВОР К-П")" на ActiveSheet, чтобы картинка вставлялась на текущую активную страницу?
Уточнение 2. Для вставки сразу двух картинок какую часть нужно продублировать?

прим. файл не прикладываю по причине его отсутствия, т.к. не знаю, куда прикрепить макрос.

Спасибо
[moder]Код нужно оформлять специальным тегом. Кнопка #
Поправил за Вас[/moder]


Сообщение отредактировал SLAVICK - Пятница, 22.01.2016, 10:08
 
Ответить
СообщениеЗдравствуйте!
Вот _Boroda_ осчастливил юзеров макросом вставки картинки в файл

[vba]
Код
Sub tt()
' On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = "D:\прикол\" 'если картинки в той же папке, что и файл, то = ThisWorkbook.Path & "\"
If .Show <> -1 Then Exit Sub
ppp_ = .SelectedItems(1)
End With
Sheets("ДОГОВОР К-П").DrawingObjects.Delete 'Удаляет все объекты на листе
Set kar_ = Sheets("ДОГОВОР К-П").Range("A1").Parent.Pictures.Insert(ppp_)
With Sheets("ДОГОВОР К-П").Range("B238")
kar_.Top = .Top
kar_.Left = .Left
End With
End Sub
[/vba]

Вопрос в том, куда вставить этот макрос так, чтобы он был доступен из вновь открытого любого файла?
После обновления/переустановки Эксела пропали макросы этот и второй - сохранить файл как pdf с тем же названием (именем файла)

Уточнение по макросу. Можно заменить "Sheets("ДОГОВОР К-П")" на ActiveSheet, чтобы картинка вставлялась на текущую активную страницу?
Уточнение 2. Для вставки сразу двух картинок какую часть нужно продублировать?

прим. файл не прикладываю по причине его отсутствия, т.к. не знаю, куда прикрепить макрос.

Спасибо
[moder]Код нужно оформлять специальным тегом. Кнопка #
Поправил за Вас[/moder]

Автор - карандаш
Дата добавления - 22.01.2016 в 10:01
карандаш Дата: Пятница, 22.01.2016, 10:10 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
я знаю как в Word'e вставить макрос - в Normal/ Тогда в любом файле он доступен.
А в Экселе нет Normal'a
Есть какая-то Personal.xlsb (это я увидел из ошибки исполнения макроса, который ругается, что не может её найти)
Но где инструменты, чтобы исправить этот путь - я не знаю. Кнопка от макроса осталась и вывод ошибки исполнения при её нажатии. Всё остальное куда-то исчезло, да.
***. я сам поправил сразу. Не увидел сразу.


Сообщение отредактировал карандаш - Пятница, 22.01.2016, 10:11
 
Ответить
Сообщениея знаю как в Word'e вставить макрос - в Normal/ Тогда в любом файле он доступен.
А в Экселе нет Normal'a
Есть какая-то Personal.xlsb (это я увидел из ошибки исполнения макроса, который ругается, что не может её найти)
Но где инструменты, чтобы исправить этот путь - я не знаю. Кнопка от макроса осталась и вывод ошибки исполнения при её нажатии. Всё остальное куда-то исчезло, да.
***. я сам поправил сразу. Не увидел сразу.

Автор - карандаш
Дата добавления - 22.01.2016 в 10:10
SLAVICK Дата: Пятница, 22.01.2016, 10:14 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2007
Репутация: 674 ±
Замечаний: 0% ±

2007,2010,2013,2016
куда вставить этот макрос так, чтобы он был доступен из вновь открытого любого файла?

В личную книгу макросов почитать можно здесь и здесь

Для вставки сразу двух картинок какую часть нужно продублировать
Про вставку картинок хорошо написано здесь.
Или менять приложенный макрос, поскольку в нем нужно выбирать картинку для вставки.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
куда вставить этот макрос так, чтобы он был доступен из вновь открытого любого файла?

В личную книгу макросов почитать можно здесь и здесь

Для вставки сразу двух картинок какую часть нужно продублировать
Про вставку картинок хорошо написано здесь.
Или менять приложенный макрос, поскольку в нем нужно выбирать картинку для вставки.

Автор - SLAVICK
Дата добавления - 22.01.2016 в 10:14
Manyasha Дата: Пятница, 22.01.2016, 10:32 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 1997
Репутация: 829 ±
Замечаний: 0% ±

Excel 2010, 2016
поправила код для вставки нескольких картинок:
[vba]
Код
Sub tt()
'On Error Resume Next
    Dim ppp_()
    With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = "D:\прикол\" 'если картинки в той же папке, что и файл, то = ThisWorkbook.Path & "\"
        If .Show <> -1 Then Exit Sub
        For i = 0 To .SelectedItems.Count - 1
            ReDim Preserve ppp_(0 To i)
            ppp_(i) = .SelectedItems(i + 1)
        Next i
    End With
    Debug.Print UBound(ppp_)
    ActiveSheet.DrawingObjects.Delete 'Удаляет все объекты на листе
    For i = 0 To UBound(ppp_)
        Set kar_ = ActiveSheet.Range("A1").Parent.Pictures.Insert(ppp_(i))
        With ActiveSheet.Range("B" & 2 + i * 10)
            kar_.Top = .Top
            kar_.Left = .Left
        End With
    Next i
End Sub
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениепоправила код для вставки нескольких картинок:
[vba]
Код
Sub tt()
'On Error Resume Next
    Dim ppp_()
    With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = "D:\прикол\" 'если картинки в той же папке, что и файл, то = ThisWorkbook.Path & "\"
        If .Show <> -1 Then Exit Sub
        For i = 0 To .SelectedItems.Count - 1
            ReDim Preserve ppp_(0 To i)
            ppp_(i) = .SelectedItems(i + 1)
        Next i
    End With
    Debug.Print UBound(ppp_)
    ActiveSheet.DrawingObjects.Delete 'Удаляет все объекты на листе
    For i = 0 To UBound(ppp_)
        Set kar_ = ActiveSheet.Range("A1").Parent.Pictures.Insert(ppp_(i))
        With ActiveSheet.Range("B" & 2 + i * 10)
            kar_.Top = .Top
            kar_.Left = .Left
        End With
    Next i
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 22.01.2016 в 10:32
_Boroda_ Дата: Пятница, 22.01.2016, 13:33 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11545
Репутация: 4754 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Марина, спасибо.
Немного добавлю, чтобы картинки ровненько по вертикали располагались
[vba]
Код
Sub tt()
'On Error Resume Next
    Dim ppp_()
    With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = ThisWorkbook.Path & "\" 'если картинки в другой папке, то путь к ней вида "D:\прикол\"
        If .Show <> -1 Then Exit Sub
        For i = 0 To .SelectedItems.Count - 1
            ReDim Preserve ppp_(0 To i)
            ppp_(i) = .SelectedItems(i + 1)
        Next i
    End With
    ActiveSheet.DrawingObjects.Delete 'Удаляет все объекты на листе
    For i = 0 To UBound(ppp_)
        Set kar_ = ActiveSheet.Range("A1").Parent.Pictures.Insert(ppp_(i))
        n_ = 20 'Расстояние между картинками по вертикали
        With ActiveSheet.Range("B2")
            kar_.Top = .Top + h_
            kar_.Left = .Left
            h_ = kar_.Height + h_ + n_
        End With
    Next i
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМарина, спасибо.
Немного добавлю, чтобы картинки ровненько по вертикали располагались
[vba]
Код
Sub tt()
'On Error Resume Next
    Dim ppp_()
    With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = ThisWorkbook.Path & "\" 'если картинки в другой папке, то путь к ней вида "D:\прикол\"
        If .Show <> -1 Then Exit Sub
        For i = 0 To .SelectedItems.Count - 1
            ReDim Preserve ppp_(0 To i)
            ppp_(i) = .SelectedItems(i + 1)
        Next i
    End With
    ActiveSheet.DrawingObjects.Delete 'Удаляет все объекты на листе
    For i = 0 To UBound(ppp_)
        Set kar_ = ActiveSheet.Range("A1").Parent.Pictures.Insert(ppp_(i))
        n_ = 20 'Расстояние между картинками по вертикали
        With ActiveSheet.Range("B2")
            kar_.Top = .Top + h_
            kar_.Left = .Left
            h_ = kar_.Height + h_ + n_
        End With
    Next i
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 22.01.2016 в 13:33
карандаш Дата: Пятница, 22.01.2016, 18:10 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
мда...
Личная книга появляется только после первой записи любого макроса. Поэтому я её не видел.
Вот получилося такой макрос (не надо выбирать картинки)
[vba]
Код
Sub tt()
ActiveSheet.Range("A1").Parent.Pictures.Insert ("c:\Users\kpa\Pictures\3.png")
ActiveSheet.Range("A1").Parent.Pictures.Insert ("c:\Users\kpa\Pictures\1.png")
End Sub
[/vba]

Скажите, тут всё верно? Он в принципе работает. И картинки вставляет в текущую, активную ячейку (они всегда разные для разных файлов).

А что нужно добавить для "относительного перемещения" по ячейкам, чтобы вторая картинка была рядом с первой?
Например, две ячейки вправо и одна вниз. Попытка записать макрос даёт "абсолютный результат" - т.е. конкретную ячейку, а не смещение.
 
Ответить
Сообщениемда...
Личная книга появляется только после первой записи любого макроса. Поэтому я её не видел.
Вот получилося такой макрос (не надо выбирать картинки)
[vba]
Код
Sub tt()
ActiveSheet.Range("A1").Parent.Pictures.Insert ("c:\Users\kpa\Pictures\3.png")
ActiveSheet.Range("A1").Parent.Pictures.Insert ("c:\Users\kpa\Pictures\1.png")
End Sub
[/vba]

Скажите, тут всё верно? Он в принципе работает. И картинки вставляет в текущую, активную ячейку (они всегда разные для разных файлов).

А что нужно добавить для "относительного перемещения" по ячейкам, чтобы вторая картинка была рядом с первой?
Например, две ячейки вправо и одна вниз. Попытка записать макрос даёт "абсолютный результат" - т.е. конкретную ячейку, а не смещение.

Автор - карандаш
Дата добавления - 22.01.2016 в 18:10
Udik Дата: Пятница, 22.01.2016, 19:13 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1589
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
А что нужно добавить для "относительного перемещения" по ячейкам,

Ну как-то так можно для смещения
[vba]
Код

Public Sub test()
Dim rng1 As Range
Set rng1 = ActiveSheet.Range("A1")
rng1.Value = 1
rng1.Offset(2, 1).Value = 2
End Sub
[/vba]
К сообщению приложен файл: 0t.xlsm(15Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
А что нужно добавить для "относительного перемещения" по ячейкам,

Ну как-то так можно для смещения
[vba]
Код

Public Sub test()
Dim rng1 As Range
Set rng1 = ActiveSheet.Range("A1")
rng1.Value = 1
rng1.Offset(2, 1).Value = 2
End Sub
[/vba]

Автор - Udik
Дата добавления - 22.01.2016 в 19:13
_Boroda_ Дата: Пятница, 22.01.2016, 19:28 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11545
Репутация: 4754 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А что нужно добавить

Я бы вот так написал, уж если Вы не хотите пользоваться смещением на высоту картинки, как я в предыдущем макросе сделал.
[vba]
Код
Sub tt()
    Application.ScreenUpdating = 0
    With ActiveSheet
        ad_ = Selection.Address
        .Range("C3").Select
        Selection.Parent.Pictures.Insert ("D:\Стереть\56565.JPG")
        .Range("C3").Offset(1, 2).Select
        Selection.Parent.Pictures.Insert ("D:\Стереть\56565_1.JPG")
        .Range(ad_).Select
    End With
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
А что нужно добавить

Я бы вот так написал, уж если Вы не хотите пользоваться смещением на высоту картинки, как я в предыдущем макросе сделал.
[vba]
Код
Sub tt()
    Application.ScreenUpdating = 0
    With ActiveSheet
        ad_ = Selection.Address
        .Range("C3").Select
        Selection.Parent.Pictures.Insert ("D:\Стереть\56565.JPG")
        .Range("C3").Offset(1, 2).Select
        Selection.Parent.Pictures.Insert ("D:\Стереть\56565_1.JPG")
        .Range(ad_).Select
    End With
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 22.01.2016 в 19:28
карандаш Дата: Пятница, 22.01.2016, 19:35 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
код в примере про "относительно смещение" вставляет значения в указанные конкретные ячейки

Мои две строки вставляют картинки относительно ячейки, которая активна.
Попытка во второй строке изменить А1 на В3 ни к чему не привела.

Нужно не значения в ячейки вставить, а расположить картинки. Со смещением относительно произвольной ячеки (ткнул мышкой в нужное место, нажал кнопку макроса - картинки со смещением вставились). Не понял принципа действия вышеприведённого примера по отношению к картинкам и не смог его приспособить.
 
Ответить
Сообщениекод в примере про "относительно смещение" вставляет значения в указанные конкретные ячейки

Мои две строки вставляют картинки относительно ячейки, которая активна.
Попытка во второй строке изменить А1 на В3 ни к чему не привела.

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

Автор - карандаш
Дата добавления - 22.01.2016 в 19:35
_Boroda_ Дата: Пятница, 22.01.2016, 19:56 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11545
Репутация: 4754 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Нужно не значения в ячейки вставить, а расположить картинки.

Ну конечно. А почему Вы решили, что вставляются значения?
Со смещением относительно произвольной ячеки

Тогда так
[vba]
Код
Sub tt()
    Selection.Parent.Pictures.Insert ("D:\Стереть\56565.JPG")
    Selection.Offset(1, 2).Select
    Selection.Parent.Pictures.Insert ("D:\Стереть\56565_1.JPG")
End Sub
[/vba]
Не понял принципа действия вышеприведённого примера

С пояснениями
[vba]
Код
Sub tt()
'On Error Resume Next
    Dim ppp_(1) 'объявляем массив из 2-х элементов (начало с нуля)
    ppp_(0) = "D:\Стереть\56565.JPG" 'присваем значение первому элементу массива
    ppp_(1) = "D:\Стереть\56565_1.JPG" 'присваем значение второму элементу массива
    ActiveSheet.DrawingObjects.Delete 'Удаляет все объекты на листе
    For i = 0 To UBound(ppp_) 'цикл по элементам массива
        Set kar_ = ActiveSheet.Range("A1").Parent.Pictures.Insert(ppp_(i)) 'вставляем i-ю картинку
        n_ = 20 'Расстояние между картинками по вертикали
        nn_ = 10 'Расстояние между картинками по горизонтали
        ' n_ и nn_ определяются пользователем методом научного тыка
        With Selection 'для левой верхней ячейки выделенного диапазона
            'от левого верхнего угла выделеной ячейки отступаем h_ вниз или w_ вправо и передвигаем левый верхний угол
            'только что вставленной картинки в полученную точку
            kar_.Top = .Top + h_ 'или + h_, или в строке ниже + w_
            kar_.Left = .Left ' + w_
            h_ = kar_.Height + h_ + n_ 'высота этой картинки + высота всех предыдущих + расстояние между картинками по высоте
            w_ = kar_.Width + w_ + nn_ 'ширина этой картинки + ширина всех предыдущих + расстояние между картинками по ширине
        End With
    Next i
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Нужно не значения в ячейки вставить, а расположить картинки.

Ну конечно. А почему Вы решили, что вставляются значения?
Со смещением относительно произвольной ячеки

Тогда так
[vba]
Код
Sub tt()
    Selection.Parent.Pictures.Insert ("D:\Стереть\56565.JPG")
    Selection.Offset(1, 2).Select
    Selection.Parent.Pictures.Insert ("D:\Стереть\56565_1.JPG")
End Sub
[/vba]
Не понял принципа действия вышеприведённого примера

С пояснениями
[vba]
Код
Sub tt()
'On Error Resume Next
    Dim ppp_(1) 'объявляем массив из 2-х элементов (начало с нуля)
    ppp_(0) = "D:\Стереть\56565.JPG" 'присваем значение первому элементу массива
    ppp_(1) = "D:\Стереть\56565_1.JPG" 'присваем значение второму элементу массива
    ActiveSheet.DrawingObjects.Delete 'Удаляет все объекты на листе
    For i = 0 To UBound(ppp_) 'цикл по элементам массива
        Set kar_ = ActiveSheet.Range("A1").Parent.Pictures.Insert(ppp_(i)) 'вставляем i-ю картинку
        n_ = 20 'Расстояние между картинками по вертикали
        nn_ = 10 'Расстояние между картинками по горизонтали
        ' n_ и nn_ определяются пользователем методом научного тыка
        With Selection 'для левой верхней ячейки выделенного диапазона
            'от левого верхнего угла выделеной ячейки отступаем h_ вниз или w_ вправо и передвигаем левый верхний угол
            'только что вставленной картинки в полученную точку
            kar_.Top = .Top + h_ 'или + h_, или в строке ниже + w_
            kar_.Left = .Left ' + w_
            h_ = kar_.Height + h_ + n_ 'высота этой картинки + высота всех предыдущих + расстояние между картинками по высоте
            w_ = kar_.Width + w_ + nn_ 'ширина этой картинки + ширина всех предыдущих + расстояние между картинками по ширине
        End With
    Next i
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 22.01.2016 в 19:56
карандаш Дата: Пятница, 22.01.2016, 21:59 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
Отлично!!! работает на 5+

Большое спасибо!
 
Ответить
СообщениеОтлично!!! работает на 5+

Большое спасибо!

Автор - карандаш
Дата добавления - 22.01.2016 в 21:59
карандаш Дата: Пятница, 22.01.2016, 22:01 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
Ну конечно. А почему Вы решили, что вставляются значения?


когда писал, Вашего сообщения не было. И эта фраза (про вставление значений) был ответ на макрос Udik, который вставлял 1 и 2 в разные ячейки.
 
Ответить
Сообщение
Ну конечно. А почему Вы решили, что вставляются значения?


когда писал, Вашего сообщения не было. И эта фраза (про вставление значений) был ответ на макрос Udik, который вставлял 1 и 2 в разные ячейки.

Автор - карандаш
Дата добавления - 22.01.2016 в 22:01
_Boroda_ Дата: Пятница, 22.01.2016, 22:07 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11545
Репутация: 4754 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А, понятно. Вы пока ответ писали, я в свое пред. сообщение еще накидал пояснялок.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА, понятно. Вы пока ответ писали, я в свое пред. сообщение еще накидал пояснялок.

Автор - _Boroda_
Дата добавления - 22.01.2016 в 22:07
Udik Дата: Пятница, 22.01.2016, 22:08 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1589
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Ну я ж для примера, чтобы проверить. А для вставки картинок просто заменить .Value


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНу я ж для примера, чтобы проверить. А для вставки картинок просто заменить .Value

Автор - Udik
Дата добавления - 22.01.2016 в 22:08
карандаш Дата: Пятница, 22.01.2016, 22:37 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
прошу пардону!
всё рухнуло (((

не запускается макросы из "личной книги"

После открытия Эксела опять не было Личной книги. записал простой макрос, чтобы что-то было. Книга появилась.
Стёр этот макрос и вставил туда новый макрос, который сработал на 5+. Но кнопка макроса в "Панели быстрого доступа" говорит "Не удаётся выполнить макрос "PERSONAL.XLSB!tt". Возможно этот макрос отсутствует в текущей книге либо все макросы отключены"
Попытка запустить макрос из списка макросов (через панель разработчика) пишет "Compile error: Wrong number of argument or invalid property assigment"

Личную Книгу сохранил через кнопку с дискетой в VBA "Сохранить"

Кнопки пытался переназначить на существующий макрос - не помогло.

что бы это значило? где я что-то не так сделал?
 
Ответить
Сообщениепрошу пардону!
всё рухнуло (((

не запускается макросы из "личной книги"

После открытия Эксела опять не было Личной книги. записал простой макрос, чтобы что-то было. Книга появилась.
Стёр этот макрос и вставил туда новый макрос, который сработал на 5+. Но кнопка макроса в "Панели быстрого доступа" говорит "Не удаётся выполнить макрос "PERSONAL.XLSB!tt". Возможно этот макрос отсутствует в текущей книге либо все макросы отключены"
Попытка запустить макрос из списка макросов (через панель разработчика) пишет "Compile error: Wrong number of argument or invalid property assigment"

Личную Книгу сохранил через кнопку с дискетой в VBA "Сохранить"

Кнопки пытался переназначить на существующий макрос - не помогло.

что бы это значило? где я что-то не так сделал?

Автор - карандаш
Дата добавления - 22.01.2016 в 22:37
_Boroda_ Дата: Пятница, 22.01.2016, 22:39 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11545
Репутация: 4754 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте полностью закрыть Excel. Если спросит про сохранение - соглашайтесь. А потом переназначьте кнопку.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте полностью закрыть Excel. Если спросит про сохранение - соглашайтесь. А потом переназначьте кнопку.

Автор - _Boroda_
Дата добавления - 22.01.2016 в 22:39
карандаш Дата: Пятница, 22.01.2016, 22:47 | Сообщение № 17
Группа: Проверенные
Ранг: Обитатель
Сообщений: 327
Репутация: 8 ±
Замечаний: 0% ±

2010
помогло, но глюки продолжаются.
Очевидно, что это не имеет отношения к теме - макросы работают.

Всем большое спасибо.


Сообщение отредактировал карандаш - Пятница, 22.01.2016, 23:12
 
Ответить
Сообщениепомогло, но глюки продолжаются.
Очевидно, что это не имеет отношения к теме - макросы работают.

Всем большое спасибо.

Автор - карандаш
Дата добавления - 22.01.2016 в 22:47
Serega_SS Дата: Четверг, 09.06.2016, 01:14 | Сообщение № 18
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010 ; Excel 2016
Добрый день.
Уважаемые специалисты, прошу помогите.
Есть макрос по вставке изображений в Excel, но он создает ссылку на картинку, при отправке по почте или открытии на другом компьютере картинки не отображаются.
Если кто то может доработать файл, помогите, необходимо, что-бы вставленное изображение видно было на другом компьютере.
К сообщению прикрепил вложение " макрос работает по нажатию кнопки".
Поглядите, что можно сделать...

------------
Sub КНОПКА()
Dim datei As String
datei = Excel.Application.GetOpenFilename(" Bilddateien (*.), *.", True)
Range("A3").Select
Selection.Delete
ActiveSheet.Pictures.Insert(datei).Select
Selection.ShapeRange.Width = 480
'Defines the variable as a variant data type
Dim X As Variant
'Continues to run the macro even if an error occurs
On Error Resume Next
'Loops through every file that is selected and opens each one
For Y = 1 To UBound(X)
Workbooks.Open X(Y)
Next
Exit Sub
End Sub
[moder]Читаем Правила форума, создаём свою тему. Эта тема закрыта. И код следует оформлять тегами (кнопка #)[/moder]
К сообщению приложен файл: 5468289.xlsb(25Kb)


Сообщение отредактировал Pelena - Четверг, 09.06.2016, 06:23
 
Ответить
СообщениеДобрый день.
Уважаемые специалисты, прошу помогите.
Есть макрос по вставке изображений в Excel, но он создает ссылку на картинку, при отправке по почте или открытии на другом компьютере картинки не отображаются.
Если кто то может доработать файл, помогите, необходимо, что-бы вставленное изображение видно было на другом компьютере.
К сообщению прикрепил вложение " макрос работает по нажатию кнопки".
Поглядите, что можно сделать...

------------
Sub КНОПКА()
Dim datei As String
datei = Excel.Application.GetOpenFilename(" Bilddateien (*.), *.", True)
Range("A3").Select
Selection.Delete
ActiveSheet.Pictures.Insert(datei).Select
Selection.ShapeRange.Width = 480
'Defines the variable as a variant data type
Dim X As Variant
'Continues to run the macro even if an error occurs
On Error Resume Next
'Loops through every file that is selected and opens each one
For Y = 1 To UBound(X)
Workbooks.Open X(Y)
Next
Exit Sub
End Sub
[moder]Читаем Правила форума, создаём свою тему. Эта тема закрыта. И код следует оформлять тегами (кнопка #)[/moder]

Автор - Serega_SS
Дата добавления - 09.06.2016 в 01:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставить картинку в файл (Макросы/Sub)
Страница 1 из 11
Поиск:

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