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

Страницы: 1
Как получить имя для Label, на который наведена мышь
 
Большое спасибо за ваши ответы!
Несмотря на то, что сделал криво, через 80 коротких простых кодов, ваши ответы натолкнули меня на понимание, что надо освоить еще один пласт.
Как получить имя для Label, на который наведена мышь
 
Спасибо, теперь понятно почему давал ошибку.
А можно поподробней насчет модуля класса?
Как получить имя для Label, на который наведена мышь
 
Что-то то типа n=Me.Name, только для того Label, на который сейчас наведена мышь.
Допустим у меня есть код (работает):
Код
Private Sub W11D1_mousemove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    W11D1.BackColor = &H808080
End Sub
Вот как сделать так, чтобы вместо W11D1 подставить переменную (допустим n), а n определить как-то так: n=activelabel.name?
n=activelabel.name - это я для примера написал, этот код не корректен.
Изменено: Alex_p_123 - 26.11.2017 17:02:16
Как получить имя для Label, на который наведена мышь
 
Спасибо.
Но мне нужно дать общую команду. У меня этих лэйблов штук 80, я хочу одну команду для любой кнопки, а не для каждой конкретной, чтобы не ковыряться в каждом макросе.
Как получить имя для Label, на который наведена мышь
 
Добрый день!

Имя нажатой кнопки можно получить например через n=ActiveControl.Name
Есть ли возможность получить имя для Label, на которую наведена мышь? При задании такой же команды выдает ошибку object variable or With block variable not set
Как макросом получить имя выделенного объекта, Для иконки вставленного в Excel ole объекта
 
Илья Демид - да, вариант, предложенный Андрей VG, оказался работающим.

Андрей VG - спасибо.

Вот в каком виде это работает у меня в тестовом файле:
Код
Sub Макрос2()
    
    Dim myObject As OLEObject
   
    Range("O505").Select
    Workbooks.Open Filename:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Одно окно\ИНФОРМАЦИОННОЕ ПИСЬМО_реестр\Приложения\089_0501_Опрос магазинов 2.xlsx"
    ActiveWindow.Visible = True
    Set myObject = ActiveSheet.OLEObjects.Add(Filename:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Одно окно\ИНФОРМАЦИОННОЕ ПИСЬМО_реестр\Приложения\089_0501_Опрос магазинов 2.xlsx" _
        , Link:=False, DisplayAsIcon:=True, IconFileName:= _
        "C:\Windows\Installer\{90140000-0012-0000-0000-0000000FF1CE}\xlicons.exe", _
        IconIndex:=0, IconLabel:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Одно окно\ИНФОРМАЦИОННОЕ ПИСЬМО_реестр\Приложения\089_0501_Опрос магазинов 2.xlsx" _
        )
    s = myObject.Name
    myObject.Select
    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
    End With
    
    Range("P505").Select
    ActiveSheet.Shapes(s).IncrementLeft 20
    ActiveSheet.Shapes(s).IncrementTop 60
    
    Workbooks("089_0501_Опрос магазинов 2.xlsx").Close
    
End Sub
Если убрать вот этот отрезок:
Код
Workbooks.Open Filename:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Одно окно\ИНФОРМАЦИОННОЕ ПИСЬМО_реестр\Приложения\089_0501_Опрос магазинов 2.xlsx"
    ActiveWindow.Visible = True
то он при создании объекта создает какие-то книги, котjрые потом нигде кроме VBA редактора не видны, так как имеют свойство  ActiveWindow.Visible = false

Команда ActiveSheet.Shapes.Count может оказаться крайне полезной.

AndreTM - Ваш вариант (собственно его я и имел в виду строкой выше) выглядит для моих целей наверное самым верным, но я его еще не тестировал, поэтому буду пробовать.

Кстати обратил внимание, что в свойствах объекта можно задать Left и Top, но тогда он размещает его не в ячейке, а на соответствующем смещении от верхнего левого угла файла, то есть в районе ячейки A1.

Всем спасибо, по-моему вопрос нашел свое решение, далее буду крутить циклы когда надо будет вставить в ячейку несколько объектов по определенным признакам (например когда название файлов содержит соответствующий номер строки), но это уже другая история.
Как макросом получить имя выделенного объекта, Для иконки вставленного в Excel ole объекта
 
Ну вот например.
Как макросом получить имя выделенного объекта, Для иконки вставленного в Excel ole объекта
 
Не работает конечно же, потому что он не понимает, имя чего я у него спрашиваю
Надо запрашивать именно имя объекта (shape, oleobject и т.д.).
Вот я и пытаюсь понять как это сделать.
Как макросом получить имя выделенного объекта, Для иконки вставленного в Excel ole объекта
 
Сейчас попробую
Вот код, который записал за мной vba (русские символы не вставились, но думаю для примера это не принципиально).

Камень преткновения сейчас для меня - строка ActiveSheet.Shapes("Object 606").IncrementLeft 42.8570866142

Вот в ней я хочу видеть имя активного (или выделенного) значка, потому что оператор with selection прекрасно работает (пробовал отдельно от этой проблемной строки, но в этот оператор я IncrementLeft вставить не могу - выдает ошибку).
Код
Sub Ìàêðîñ3()
'
' Ìàêðîñ3 Ìàêðîñ
'

'
    Range("O504").Select
    Workbooks.Open Filename:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Îäíî îêíî\ÈÍÔÎÐÌÀÖÈÎÍÍÎÅ ÏÈÑÜÌÎ_ðååñòð\Ïðèëîæåíèÿ\089_0500_Îïðîñ ìàãàçèíîâ 18 07 2017.xlsx"
    ActiveWindow.Visible = False
    ActiveSheet.OLEObjects.Add(Filename:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Îäíî îêíî\ÈÍÔÎÐÌÀÖÈÎÍÍÎÅ ÏÈÑÜÌÎ_ðååñòð\Ïðèëîæåíèÿ\089_0500_Îïðîñ ìàãàçèíîâ 18 07 2017.xlsx" _
        , Link:=False, DisplayAsIcon:=True, IconFileName:= _
        "C:\Windows\Installer\{90140000-0012-0000-0000-0000000FF1CE}\xlicons.exe", _
        IconIndex:=0, IconLabel:= _
        "Z:\65_Sales\65_15_Sales_Support\01 BPO\Îäíî îêíî\ÈÍÔÎÐÌÀÖÈÎÍÍÎÅ ÏÈÑÜÌÎ_ðååñòð\Ïðèëîæåíèÿ\089_0500_Îïðîñ ìàãàçèíîâ 18 07 2017.xlsx" _
        ).Select
    ActiveSheet.Shapes("Object 606").IncrementLeft 42.8570866142
    ActiveSheet.Shapes("Object 606").IncrementTop 17.1428346457
    With Selection
        .Placement = xlMoveAndSize
        .PrintObject = True
    End With
End Sub
Изменено: Alex_p_123 - 20.07.2017 10:03:13
Как макросом получить имя выделенного объекта, Для иконки вставленного в Excel ole объекта
 
Цитата
Илья Демид написал:
Cells(5, 5) = Sheets(3).Shapes(1).Name
Не совсем то.
Попробовал для трех ячеек (в одной ничего, в двух других вставлены иконки с разными файлами).
Для всех трех случаев выдает значение "Button418"

Попробовал для одной из ячеек сделать ...Shapes(2)... - выдает "Button489"

Получается, что неважно какая ячейка стоит в Вашем примере (Cells(5,5) или что-то другое), он возвращает имя именно для Spapes(1), Shapes(2)....
А мне надо найти имя того Shape (или тех Shapes), который выделен в данный момент (ну или на худой конец прикреплен к выделенной ячейке).
Изменено: Alex_p_123 - 20.07.2017 09:54:50
Как макросом получить имя выделенного объекта, Для иконки вставленного в Excel ole объекта
 
Добрый день!

Вставляю в ячейку файл - oleobject (не важно чем - диалоговым окном Вставка/объект или макросом).
Теперь мне надо получить имя образованной иконки, чтобы ее форматировать (размещение ячейки, свойства и т.д.).
К примеру чтобы задать ему координаты требуется строки типа
Код
ActiveSheet.Shapes("Object 605").IncrementTop 27.8571653543

Но имя его я не знаю и потому не могу к нему обратиться программно.
Как макросом получить это имя?

Пробовал строки типа SelectedObject.Name, ActiveObject.Name и т.д. - не работает, выдает ошибку.

С уважением, Алексей
Изменено: Alex_p_123 - 20.07.2017 13:26:38
Выбор столбца форматированной таблицы в формуле
 
Немного дописал формулу (у меня например некорректно работала двссыл() из-за того, что сцепить() воспринимала дату как число и не могла сформировать правильный текст для задания диапазона):

=СЧЁТЕСЛИМН(ДВССЫЛ(СЦЕПИТЬ("СписокДітей[";ТЕКСТ($C$1;"ДД.ММ.ГГГГ");"]"));$A5;СписокДітей[Вік дитини];B$4)

С уважением,
Алексей
Борьба с повторами данных в выпадающих списках
 
Доброе утро!
А вообще бы - макрос сделать, который удалял дубликаты и сортировал по алфавиту, из него строить выпадающий список, было бы на порядок удобнее.
Судя по файлу там можно и код дописать и кнопку сделать.
Ну либо руками - выделить весь список товаров, скопировать на отдельный лист, удалить дубликаты, отсортировать. Далее - полученному диапазону присвоить имя и на это имя ссылаться при формировании выпадающего списка.

С уважением,
Алексей
Изменено: Alex_p_123 - 18.12.2015 09:34:54
Выбор столбца форматированной таблицы в формуле
 
Koriolan, на вскидку (убегаю):

=счетесли(смещ(индекс(первая строка в таблице с датами;поискпоз(дата;диапазон дат в таблице с датами;0):индекс());ячейка с номером группы)

Не дописал там окончание массива в смещ индекс:индекс, но принцип такой.
Изменено: Alex_p_123 - 17.12.2015 18:27:30
Макросом эксель взять word doc и сохранить как .pdf
 
Казанский, спасибо за наводку, покопаюсь завтра. Правда не очень понял, что есть значение константы, но попробую разобраться.

С уважением,
Алексей
Изменено: Alex_p_123 - 17.12.2015 18:16:04
Макросом эксель взять word doc и сохранить как .pdf
 
Доброго времени суток!

Нужно макросом в эксель взять файл word doc и сохранить его в формате pdf

Вымучил код, который позволяет макросом экселя открывать требуемый word файл, вставлять инфу из экселя в закладки и сохранять как файл/ файлы word.
Но хочется, чтобы это был не ворд, а pdf.
Это вообще возможно?

Вот сам код (упростил все что мог, чтобы не перегружать лишним): а вот такая кнопка для оформления кода - <...>
Код
Set wa = CreateObject("Word.Application") 
wa.Visible = True

Company = Cells(2, 1).Value
  
Set wd = wa.documents.Open("C:\Файл1.docx") 

'Вставляем название компании из экселя в место, на которое ссылается заранее сделанная закаладка "Название_компании"
 wd.Bookmarks("Название_компании").Range.Text = Company

'Это сохраняет файл как ворд под другим именем в ту же папку, это работает:
wd.SaveAs Filename:="C:\Файл2.docx"

'Это я взял из вордовского макроса, это в экселе не работает:
'wd.ChangeFileOpenDirectory "C:\"
    'wd.ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\Файл2.pdf", _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=False, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=False, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    
'Это я пробовал варианты кода, это в экселе тоже не работает:
    'wd.ExportAsFixedFormat OutputFileName:="C:\Файл2.pdf", _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=False, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=False, _
        BitmapMissingFonts:=True, UseISO19005_1:=False

'Это вариация, которую я тоже попробовал, и которая тоже не работает:   
wd.ExportAsFixedFormat OutputFileName:="C:\Файл2.pdf", ExportFormat:=wdExportFormatPDF

wd.Close True
wa.Quit
Set wa = Nothing
Изменено: Alex_p_123 - 17.12.2015 17:52:50
Страницы: 1
Наверх