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

Вход

Регистрация

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

 

= Мир MS Excel/Создать примечание с нужным размером и нужным фоном - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создать примечание с нужным размером и нужным фоном (Макросы/Sub)
Создать примечание с нужным размером и нужным фоном
pavelselected Дата: Пятница, 05.03.2021, 06:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте. Помогите, пожалуйста, создать макрос, который создавал бы примечание в нужной ячейке с определенными параметрами.
1. Размер примечания -- 8см на 8см.
2. Удалял подпись владельца компьютера из тела примечания (текста примечания не будет, будет только картинка в фоне, чтобы при наведении курсора, она показывалась бы.
3. Открывал папку, из которой я выбирал бы рисунок для фона примечания.

В результате должно получиться что-то похожее на пример из вложения.
К сообщению приложен файл: 5182449.xlsx(154.2 Kb)
 
Ответить
СообщениеЗдравствуйте. Помогите, пожалуйста, создать макрос, который создавал бы примечание в нужной ячейке с определенными параметрами.
1. Размер примечания -- 8см на 8см.
2. Удалял подпись владельца компьютера из тела примечания (текста примечания не будет, будет только картинка в фоне, чтобы при наведении курсора, она показывалась бы.
3. Открывал папку, из которой я выбирал бы рисунок для фона примечания.

В результате должно получиться что-то похожее на пример из вложения.

Автор - pavelselected
Дата добавления - 05.03.2021 в 06:24
Апострофф Дата: Пятница, 05.03.2021, 07:14 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 328
Репутация: 94 ±
Замечаний: 0% ±

Excel 1997
pavelselected, утро доброе!
8 * 8 см? Нисколько смущать нас не должен размер самого экрана?
И размер сантиметра?


Сообщение отредактировал Апострофф - Пятница, 05.03.2021, 09:18
 
Ответить
Сообщениеpavelselected, утро доброе!
8 * 8 см? Нисколько смущать нас не должен размер самого экрана?
И размер сантиметра?

Автор - Апострофф
Дата добавления - 05.03.2021 в 07:14
pavelselected Дата: Пятница, 05.03.2021, 14:10 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Апострофф, Нет, это не очень важно. Тем более, что если у меня будет тело макроса, то я смогу в редакторе уже подправить нужные параметры. Или не смогу?)
Я пытался записать макрос, но он, почему-то не записывает мои нажатия в параметрах примечания.
 
Ответить
СообщениеАпострофф, Нет, это не очень важно. Тем более, что если у меня будет тело макроса, то я смогу в редакторе уже подправить нужные параметры. Или не смогу?)
Я пытался записать макрос, но он, почему-то не записывает мои нажатия в параметрах примечания.

Автор - pavelselected
Дата добавления - 05.03.2021 в 14:10
doober Дата: Пятница, 05.03.2021, 18:26 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 736
Репутация: 285 ±
Замечаний: 0% ±

Excel 2010
Для тела годится?[vba]
Код
    Dim rng As Range, Shp As Shape
    Set rng = Range("a1")
    Set com = rng.AddComment(" ")
    Set Shp = com.Shape
    Shp.Width = 200
    Shp.Height = 200
    Shp.Fill.UserPicture "C:\Users\Сергей\Downloads\PB-#1.gif"
[/vba]


 
Ответить
СообщениеДля тела годится?[vba]
Код
    Dim rng As Range, Shp As Shape
    Set rng = Range("a1")
    Set com = rng.AddComment(" ")
    Set Shp = com.Shape
    Shp.Width = 200
    Shp.Height = 200
    Shp.Fill.UserPicture "C:\Users\Сергей\Downloads\PB-#1.gif"
[/vba]

Автор - doober
Дата добавления - 05.03.2021 в 18:26
Апострофф Дата: Пятница, 05.03.2021, 18:28 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 328
Репутация: 94 ±
Замечаний: 0% ±

Excel 1997
[vba]
Код
Sub Макрос1()
    Range("E5").Select
    Selection.Copy
    Range("K11").Select
    ActiveSheet.Paste
End Sub
[/vba]
А вот какую хрень вы вписали в примечание? Менделеев мимо прошёл бы...
 
Ответить
Сообщение[vba]
Код
Sub Макрос1()
    Range("E5").Select
    Selection.Copy
    Range("K11").Select
    ActiveSheet.Paste
End Sub
[/vba]
А вот какую хрень вы вписали в примечание? Менделеев мимо прошёл бы...

Автор - Апострофф
Дата добавления - 05.03.2021 в 18:28
doober Дата: Пятница, 05.03.2021, 20:44 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 736
Репутация: 285 ±
Замечаний: 0% ±

Excel 2010
Не понял ничего, каким боком Дмитрий Иванович к бредовому макросу
Это ТС для старта, пускай работает


 
Ответить
СообщениеНе понял ничего, каким боком Дмитрий Иванович к бредовому макросу
Это ТС для старта, пускай работает

Автор - doober
Дата добавления - 05.03.2021 в 20:44
pavelselected Дата: Суббота, 06.03.2021, 06:47 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Для тела годится?

Почти.
Там на каждую ячейку будет своя картинка. Возможно это сделать так, чтобы он предлагал выбрать картинку из папки вручную? Или как-то прописать в теле макроса, чтобы он в формате "2-200.png" Первую двойку брал из значения в столбце A, а 200 -- это значение из строки 4. Т.е. если активная ячейка D10, то в ячейке А10 будет значение "2", а в ячейке D4 - "200", и в нашей активной D10, после срабатывания макроса, появится примечание с фоном от картинки с именем "2-200.png"

Как-то так должно работать.
Нужно будет сделать для нескольких сотен расчетов визуализацию для запоминания, но кажется, что много времени уходит на ручное форматирование примечаний.
 
Ответить
Сообщение
Для тела годится?

Почти.
Там на каждую ячейку будет своя картинка. Возможно это сделать так, чтобы он предлагал выбрать картинку из папки вручную? Или как-то прописать в теле макроса, чтобы он в формате "2-200.png" Первую двойку брал из значения в столбце A, а 200 -- это значение из строки 4. Т.е. если активная ячейка D10, то в ячейке А10 будет значение "2", а в ячейке D4 - "200", и в нашей активной D10, после срабатывания макроса, появится примечание с фоном от картинки с именем "2-200.png"

Как-то так должно работать.
Нужно будет сделать для нескольких сотен расчетов визуализацию для запоминания, но кажется, что много времени уходит на ручное форматирование примечаний.

Автор - pavelselected
Дата добавления - 06.03.2021 в 06:47
pavelselected Дата: Воскресенье, 07.03.2021, 05:58 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Пока кажется, что это можно сделать через цикл, если заранее насохранять картинки с именем ячейки.
Наверняка, VBA умеет подставлять в имя файла значение переменной.

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

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

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

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

Автор - pavelselected
Дата добавления - 07.03.2021 в 05:58
Pelena Дата: Воскресенье, 07.03.2021, 09:03 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 17437
Репутация: 3873 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Цитата pavelselected, 07.03.2021 в 05:58, в сообщении № 8 ()
возможно создать в макросе диалоговое окно
возможно
[vba]
Код
    Dim rng As Range, Shp As Shape, com
    Dim FilePath
    FilePath = Application.GetOpenFilename _
               (FileFilter:="Image Files (*.jpg;*.png;*.gif), *.jpg;*.png;*.gif", _
                MultiSelect:=False, Title:="File for comment")

    If FilePath <> False Then
        Set rng = Range("a1")
        rng.ClearComments
        Set com = rng.AddComment(" ")
        Set Shp = com.Shape
        Shp.Width = 200
        Shp.Height = 200
        Shp.Fill.UserPicture FilePath
    End If
[/vba]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
Цитата pavelselected, 07.03.2021 в 05:58, в сообщении № 8 ()
возможно создать в макросе диалоговое окно
возможно
[vba]
Код
    Dim rng As Range, Shp As Shape, com
    Dim FilePath
    FilePath = Application.GetOpenFilename _
               (FileFilter:="Image Files (*.jpg;*.png;*.gif), *.jpg;*.png;*.gif", _
                MultiSelect:=False, Title:="File for comment")

    If FilePath <> False Then
        Set rng = Range("a1")
        rng.ClearComments
        Set com = rng.AddComment(" ")
        Set Shp = com.Shape
        Shp.Width = 200
        Shp.Height = 200
        Shp.Fill.UserPicture FilePath
    End If
[/vba]

Автор - Pelena
Дата добавления - 07.03.2021 в 09:03
pavelselected Дата: Вторник, 09.03.2021, 20:49 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Pelena, Спасибо огромное, это именно так работает, как я себе и представлял) У вас в подписи кошелек ЯД, правильно?

Поставил всем плюсики)
 
Ответить
СообщениеPelena, Спасибо огромное, это именно так работает, как я себе и представлял) У вас в подписи кошелек ЯД, правильно?

Поставил всем плюсики)

Автор - pavelselected
Дата добавления - 09.03.2021 в 20:49
Pelena Дата: Среда, 10.03.2021, 08:52 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 17437
Репутация: 3873 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Правильно


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПравильно

Автор - Pelena
Дата добавления - 10.03.2021 в 08:52
pavelselected Дата: Понедельник, 15.03.2021, 05:35 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Pelena, Отправил на кофе.
Еще раз - Спасибо)
 
Ответить
СообщениеPelena, Отправил на кофе.
Еще раз - Спасибо)

Автор - pavelselected
Дата добавления - 15.03.2021 в 05:35
Pelena Дата: Понедельник, 15.03.2021, 07:45 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 17437
Репутация: 3873 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
на кофе
наконец-то на кофе, а то всё на пиво да на пиво :D
Спасибо)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
на кофе
наконец-то на кофе, а то всё на пиво да на пиво :D
Спасибо)

Автор - Pelena
Дата добавления - 15.03.2021 в 07:45
pavelselected Дата: Среда, 17.03.2021, 03:29 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте.
Помогите, пожалуйста, доработать макрос для моих странных целей.
Есть такой, из сообщений выше:

Цитата
[vba]
Код
Sub Макрос1()
'
Dim rng As Range, Shp As Shape, com
Dim FilePath
FilePath = Application.GetOpenFilename _
(FileFilter:="Image Files (*.jpg;*.png;*.gif), *.jpg;*.png;*.gif", _
MultiSelect:=False, Title:="File for comment")

If FilePath <> False Then
Set rng = ActiveCell
rng.ClearComments
Set com = rng.AddComment(" ")
Set Shp = com.Shape
Shp.Width = 200
Shp.Height = 200
Shp.Fill.UserPicture FilePath
End If
End Sub
[/vba]


Он прекрасно работает, но желание автоматизировать полностью зудит.

Как можно сделать так, чтобы вместо активной ячейки, я выделял прямоугольный диапазон ячеек (D4-W17, в примере), и макрос автоматически подставлял нужные картинки в каждую ячейку. Формат картинок "Х-У.png", где Х-значение в столбце, слева от выделенного диапазона от 2 до 30, например. А У- значение в строке, сверху выделенного диапазона от 50 до 1000, с шагом 50, как в примере во вложении.
То есть - я указываю папку со скриншотами в редакторе макроса, и он автоматически расставляет все имеющиеся картинки, удовлетворяющие условиям, в нужные ячейки выделенного диапазона.

Готов угостить кофе (или пивом) за работающий вариант.
К сообщению приложен файл: examp.xlsx(8.6 Kb)


Сообщение отредактировал Serge_007 - Среда, 17.03.2021, 10:03
 
Ответить
СообщениеЗдравствуйте.
Помогите, пожалуйста, доработать макрос для моих странных целей.
Есть такой, из сообщений выше:

Цитата
[vba]
Код
Sub Макрос1()
'
Dim rng As Range, Shp As Shape, com
Dim FilePath
FilePath = Application.GetOpenFilename _
(FileFilter:="Image Files (*.jpg;*.png;*.gif), *.jpg;*.png;*.gif", _
MultiSelect:=False, Title:="File for comment")

If FilePath <> False Then
Set rng = ActiveCell
rng.ClearComments
Set com = rng.AddComment(" ")
Set Shp = com.Shape
Shp.Width = 200
Shp.Height = 200
Shp.Fill.UserPicture FilePath
End If
End Sub
[/vba]


Он прекрасно работает, но желание автоматизировать полностью зудит.

Как можно сделать так, чтобы вместо активной ячейки, я выделял прямоугольный диапазон ячеек (D4-W17, в примере), и макрос автоматически подставлял нужные картинки в каждую ячейку. Формат картинок "Х-У.png", где Х-значение в столбце, слева от выделенного диапазона от 2 до 30, например. А У- значение в строке, сверху выделенного диапазона от 50 до 1000, с шагом 50, как в примере во вложении.
То есть - я указываю папку со скриншотами в редакторе макроса, и он автоматически расставляет все имеющиеся картинки, удовлетворяющие условиям, в нужные ячейки выделенного диапазона.

Готов угостить кофе (или пивом) за работающий вариант.

Автор - pavelselected
Дата добавления - 17.03.2021 в 03:29
doober Дата: Среда, 17.03.2021, 15:32 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 736
Репутация: 285 ±
Замечаний: 0% ±

Excel 2010
И я немного странный, очень люблю джин %) [vba]
Код
Sub для_моих_странных_целей()
    Dim Sh As Worksheet, RangeX, RangeY, Rng As Range, cel As Range
    Set Sh = ActiveSheet
    Folder = "C:\mmm"
    RangeY = Sh.Range("A3:W3")
    RangeX = Sh.Range("C1:C17")
    Set Rng = Application.InputBox(Prompt:="выбираем диапазон внутри координат ", _
                    Title:="Выбор диапазона", Type:=8)
    With CreateObject("Scripting.FileSystemObject")
        For Each cel In Rng.Cells
            If cel.Row <= UBound(RangeX) And cel.Column <= UBound(RangeY, 2) Then
                X = RangeX(cel.Row, 1)
                Y = RangeY(1, cel.Column)
                Filename = X & "-" & Y & ".png"
                FilePath = .BuildPath(Folder, Filename)
                If .FileExists(FilePath) Then
                    cel.ClearComments
                    Set com = cel.AddComment(" ")
                    Set Shp = com.Shape
                    Shp.Width = 200
                    Shp.Height = 200
                    Shp.Fill.UserPicture FilePath
                End If
            End If
        Next
    End With
End Sub
[/vba]


 
Ответить
СообщениеИ я немного странный, очень люблю джин %) [vba]
Код
Sub для_моих_странных_целей()
    Dim Sh As Worksheet, RangeX, RangeY, Rng As Range, cel As Range
    Set Sh = ActiveSheet
    Folder = "C:\mmm"
    RangeY = Sh.Range("A3:W3")
    RangeX = Sh.Range("C1:C17")
    Set Rng = Application.InputBox(Prompt:="выбираем диапазон внутри координат ", _
                    Title:="Выбор диапазона", Type:=8)
    With CreateObject("Scripting.FileSystemObject")
        For Each cel In Rng.Cells
            If cel.Row <= UBound(RangeX) And cel.Column <= UBound(RangeY, 2) Then
                X = RangeX(cel.Row, 1)
                Y = RangeY(1, cel.Column)
                Filename = X & "-" & Y & ".png"
                FilePath = .BuildPath(Folder, Filename)
                If .FileExists(FilePath) Then
                    cel.ClearComments
                    Set com = cel.AddComment(" ")
                    Set Shp = com.Shape
                    Shp.Width = 200
                    Shp.Height = 200
                    Shp.Fill.UserPicture FilePath
                End If
            End If
        Next
    End With
End Sub
[/vba]

Автор - doober
Дата добавления - 17.03.2021 в 15:32
pavelselected Дата: Пятница, 19.03.2021, 00:25 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

doober, я правильно понимаю, что если таблица будет ниже, то я указываю RangeY как, например A26:W26, а RangeX С1:С40, ну, с такими вводными макрос сработал на таблице, которая была ниже на несколько ячеек.
А макрос будет работать если таблица будет ниже и сдвинута относительно столбца C?
Или если таблица будет правее, и в строке будут другие данные вначале?
То есть, вопрос в том, какие данные мне ввести в макрос в значения Range, если активные таблицы будут разбросаны в случайном порядке по большому листу?

И напишите, куда угощение отправить, киви там, или ymoney, или еще как-нибудь)


Сообщение отредактировал pavelselected - Пятница, 19.03.2021, 00:45
 
Ответить
Сообщениеdoober, я правильно понимаю, что если таблица будет ниже, то я указываю RangeY как, например A26:W26, а RangeX С1:С40, ну, с такими вводными макрос сработал на таблице, которая была ниже на несколько ячеек.
А макрос будет работать если таблица будет ниже и сдвинута относительно столбца C?
Или если таблица будет правее, и в строке будут другие данные вначале?
То есть, вопрос в том, какие данные мне ввести в макрос в значения Range, если активные таблицы будут разбросаны в случайном порядке по большому листу?

И напишите, куда угощение отправить, киви там, или ymoney, или еще как-нибудь)

Автор - pavelselected
Дата добавления - 19.03.2021 в 00:25
doober Дата: Пятница, 19.03.2021, 10:46 | Сообщение № 17
Группа: Друзья
Ранг: Ветеран
Сообщений: 736
Репутация: 285 ±
Замечаний: 0% ±

Excel 2010
Диапазон прописывается любой.
Условия вертикаль обязательно с первой строки, горизонталь с первого столбца в макросе
RangeY = Sh.Range("A строка:буква столбца строка") RangeX = Sh.Range("буква столбца 1:буква столбца строка")
Рабочая область не обязательно начинается с первой ячейки, так как в файле.Макрос проверяет , что обе координаты не пусты и находятся внутри области.
Макрос проверяет наличие файла в папке, если его нет, то и выводить не будет.
На нескольких диапазонах макрос не работает.В конкретном примере работает внутри оранжевой подсветки




Сообщение отредактировал doober - Пятница, 19.03.2021, 10:50
 
Ответить
СообщениеДиапазон прописывается любой.
Условия вертикаль обязательно с первой строки, горизонталь с первого столбца в макросе
RangeY = Sh.Range("A строка:буква столбца строка") RangeX = Sh.Range("буква столбца 1:буква столбца строка")
Рабочая область не обязательно начинается с первой ячейки, так как в файле.Макрос проверяет , что обе координаты не пусты и находятся внутри области.
Макрос проверяет наличие файла в папке, если его нет, то и выводить не будет.
На нескольких диапазонах макрос не работает.В конкретном примере работает внутри оранжевой подсветки

Автор - doober
Дата добавления - 19.03.2021 в 10:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создать примечание с нужным размером и нужным фоном (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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