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

Страницы: 1 2 3 4 5 6 7 8 9 След.
Как включить опцию "Показывать все объекты"?
 
Если в Microsoft Office 64 bit запустить макрос, который работает с комментариями к ячейкам, то может вылезти сообщение:


Чтобы этого не происходило, надо включать эту настройку:


Как проверить и включить эту настройку?
Изменено: tchack - 20.02.2024 17:03:50
Запуск макроса из текущей книги
 
Спасибо, помогло!
Запуск макроса из текущей книги
 
В текущей книге есть процедура, которая открывает другую книгу (targetWorkbook) и добавляет в нее пункт в контекстное меню:

Код
.....
        With targetWorkbook.Application.CommandBars("cell").Controls.Add(1, , , 1)
            .Parent.Controls(2).BeginGroup = True
            .Caption = "Копировать адрес диапазона"
            .FaceId = 550
            .OnAction = "test123"
        End With
......


При нажатии пункта контекстного меню должна запускаться процедура из текущей книги test123, но процедура ищется не в текущей книге, а в targetWorkbook.
Как это исправить?
Сохранить документ в растровый PDF
 
Скажите, пожалуйста, можно ли с помощью VBA сохранить из Word документ в растровый PDF? (Чтобы текст нельзя было выделить).

На данный момент использую внешние приложения в VBA, но может это можно сделать без них.
Изменено: tchack - 11.02.2024 01:57:02
Присвоить переменной картинку из буфера обмена
 
Подскажите, пожалуйста, как присвоить переменной картинку из буфера обмена, а потом с помощью ActiveSheet.Shapes.AddPicture добавить ее на активный лист?
Интересен именно такой код!
Перейти в нужную ячейку в книге, которую надо открыть в отдельном окне
 
Если монитора два, то определить на каком мониторе открыто окно и открыть новое на другом мониторе.

Как определить количество мониторов через API я понял. Осталось понять как определить на каком мониторе открыто окно и как открыть новое на другом.
Перейти в нужную ячейку в книге, которую надо открыть в отдельном окне
 
А как открыть новое окно на противоположном мониторе??
Перейти в нужную ячейку в книге, которую надо открыть в отдельном окне
 
Код
        Dim NewExcel As Object
        Set NewExcel = CreateObject("Excel.Application")
        NewExcel.Workbooks.Open "C:\123.xlsx"
        NewExcel.Goto NewExcel.Sheets(ThisWorkbook.Sheets(1).Cells(1, "A").Value).Cells(ThisWorkbook.Sheets(1).Cells(3, "O").Value, 1)
        NewExcel.Visible = True
        NewExcel.WindowState = xlMaximized


Так работает!
Перейти в нужную ячейку в книге, которую надо открыть в отдельном окне
 
Вот так книга открывается в отдельном окне:
Код
Dim NewExcel As Object        
Set NewExcel = CreateObject("Excel.Application")
NewExcel.Workbooks.Open "C:\123.xlsx"
NewExcel.Visible = True


Вот так работает переход:
Код
Application.Goto Workbooks.Open("C:\123.xlsx").Sheets(ThisWorkbook.Sheets(1).Cells(1, "A").Value).Cells(ThisWorkbook.Sheets(1).Cells(3, "O").Value, 1)


Можно ли сделать, чтобы одновременно книга открывалась в новом окне и осуществлялся переход в нужную ячейку?
Как на VBA создать выпадающий список полей "умной таблицы"
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=Join(Application.Transpose(Sheet1.Range("Таблица1[Тест]").Value), ",")
    End With
End Sub
Как на VBA создать выпадающий список полей "умной таблицы"
 
Подскажите, пожалуйста, если есть Лист - Sheet1, Таблица - Таблица1, Столбец - Тест, то как правильно прописать в Formula1:=, чтобы в выпадающем списке были значения из столбца с заголовком Тест???
Google-таблицу в массив
 
Нет такой возможности?
Скрытное создание листа
 
Дмитрий(The_Prist) Щербаков,

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

МатросНаЗебре,

Интересно как у других)
Скрытное создание листа
 
Ігор Гончаренко, в указанном мною случае такой способ не помогает.

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

Хотелось найти другой вариант.
Скрытное создание листа
 
Подскажите, пожалуйста, как скрытно создать лист, чтобы он при создании не становился активным.

Код
    Dim qt As QueryTable    
    Set qt = ActiveWorkbook.Sheets("TEMP").QueryTables.Add(Connection:="URL;" & url, Destination:=Range("A1"))
Google-таблицу в массив
 
Вот образец макроса, который копирует Google-таблицу на лист.

Код
  Sub QueryGoogleSheets()
      Dim qt As QueryTable, url As String, key As String, gid As String
 
      If ActiveSheet.QueryTables.Count > 0 Then ActiveSheet.QueryTables(1).Delete
      ActiveSheet.Cells.Clear
 
      key = "1WopmB1ExWSNul9sw9n7I9FEyquS4AyEugt_fKQrHJSI"
      url = "https://spreadsheets.google.com/tq?tqx=out:html&key=" & key
 
      gid = "2009384141"
      url = url & "&gid=" & gid
 
      Set qt = ActiveSheet.QueryTables.Add(Connection:="URL;" & url, _
      Destination:=Range("$A$1"))
 
      With qt
          .WebSelectionType = xlAllTables
          .WebFormatting = xlWebFormattingNone
          .Refresh
      End With
  End Sub


Можно ли сделать, чтобы данные с Google-таблицы сразу попадали в массив, минуя заполнение массива с листа?
Вставка нового листа в файл XLAM
 
Скажите, можно ли в надстройку добавить чистый лист и работать с ним?
Или можно добавить только скрытый лист с данными?
Добавить пункт в контекстное меню
 
Евгений Смирнов, нашел на форуме:

Код
   With Application.CommandBars("List Range Popup").Controls.Add(1, , , 1)
    .Parent.Controls(2).BeginGroup = True
    .OnAction = "Test"
    .Caption = "Тест2"
   End With


т.е. можно так прописать:
Код
Sub CreateItemsInCellContextMenu()
   With Application.CommandBars("cell").Controls.Add(1, , , 1)
    .Parent.Controls(2).BeginGroup = True
    .OnAction = "Test"
    .Caption = "Тест2"
   End With
   
   With Application.CommandBars("List Range Popup").Controls.Add(1, , , 1)
    .Parent.Controls(2).BeginGroup = True
    .OnAction = "Test"
    .Caption = "Тест2"
   End With
End Sub

и будет пункт и в умной таблице, и просто в таблице.
Изменено: tchack - 16.10.2023 09:43:39
Добавить пункт в контекстное меню
 
Евгений Смирнов, спасибо, частично работает.

Но почему-то пункт не появляется в форматированной (умной) таблице. Как это исправить?
Добавить пункт в контекстное меню
 
Дмитрий(The_Prist) Щербаков, .OnAction вообще можно из кода удалить. Без него все работает.
Хочу понять почему в надстройке код не работает.
Добавить пункт в контекстное меню
 
Прикладываю 2 файла.

РАБОТАЕТ.xlsm - книга с поддержкой макросов. В ней пункт появляется.
НЕ РАБОТАЕТ.xlam - надстройка. В ней пункт не появляется. Код аналогичный.

PS: Изменил первое сообщение.
Изменено: tchack - 13.10.2023 16:14:47
Добавить пункт в контекстное меню
 
Сам пункт контекстного меню не добавляется! А .OnAction - это следующий шаг.
Добавить пункт в контекстное меню
 
testuser, добавил:

.OnAction ="'I:\Тест\!Тест тест.xlam'!Module2.MySub"

но все равно не работает.
Добавить Item в dropDown из кода
 
doober, а можно ли менять label="Листы" на название выбранного листа??
Добавить пункт в контекстное меню
 
Вот пример как добавить кнопку в контекстное меню. Данный код работает в книге с поддержкой макросов:
Добавление кнопки (код размещается в модуле книги):
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.CommandBars("cell").Reset
    
End Sub

Private Sub Workbook_Deactivate()

    Application.CommandBars("cell").Reset
    
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    CreateItemsInCellContextMenu
    
End Sub


Вызываемая процедура (код размещается в стандартном модуле):
Код
Sub CreateItemsInCellContextMenu()

   On Error Resume Next

   Application.CommandBars("cell").Reset
   Application.CommandBars("cell").Controls(1).BeginGroup = True

   With Application.CommandBars("cell").Controls.Add(1, , , 1)
      .OnAction = "Test"
      .Caption = "Тест2"
   End With
   
End Sub

Sub Test()

    MsgBox "Работает"

End Sub


Как добавить пункт в контекстное меню, размещая код в пользовательской надстройке?
Вышеуказанный код не работает.
Изменено: tchack - 13.10.2023 16:15:24
Добавить Item в dropDown из кода
 
doober, спасибо. То что надо!!!
Добавить Item в dropDown из кода
 
Подскажите, пожалуйста, как добавить Item в dropDown из кода?

Код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
   <ribbon startFromScratch="false">
      <tabs>   
          <tab id="tab" label="Подборщик кодов ТНВЭД">
             <group id="Группа_1" label="Наименования">
            <dropDown id="MyDropDown" 
                          sizeString="AAAAAAAAAAAAAAAAAAAAA" 
                          onAction="DropDown_OnAction"> 
              <item id="One" label="Наименование 1"/> 
              <item id="Two" label="Наименование 2"/> 
              <item id="Three" label="Наименование 3"/> 
              <button id="button" label="Прочее" onAction="Button_OnAction" /> 
            </dropDown> 
            </group>   
      </tab>
      </tabs>
   </ribbon>
</customUI>


PS: Формируется массив и из него я хочу вставить наименования в dropDown.
Изменено: tchack - 13.10.2023 11:35:48
Выпадающий список из неотсортированного диапазона
 
tutochkin, идеальный вариант.

Всем спасибо.
Выпадающий список из неотсортированного диапазона
 
МатросНаЗебре,

Вставил в F1 - Проверка данных - Список:
Код
=СМЕЩ($E$2;0;0;ЧСТРОК(E2:E7)-СЧИТАТЬПУСТОТЫ(E2:E7);1)

но вылезает ошибка в формуле.

А это куда?:
Код
D2:D7    =D1--(Таблица1[@Класс]="Фрукты")
E2:E7    =ЕСЛИОШИБКА(ИНДЕКС(Таблица1[Наименование];ПОИСКПОЗ(СТРОКА(1:1);D:D;0)-1);"")
Выпадающий список из неотсортированного диапазона
 
В таблице Excel есть два столбца:

Яблоко Фрукты
Груша Фрукты
Укроп Зелень
Помидор Овощи
Петрушка Зелень
Огурец Овощи

Как в ячейке F1 сделать выпадающий список только с фруктами?
Такое возможно без сортировки?
Страницы: 1 2 3 4 5 6 7 8 9 След.
Наверх