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

Страницы: 1 2 След.
Генерация шифра (цифры и буквы)
 
ANGST, попробуйте генерацию guid-ключа.

Код
Public Function GetGUID() As String 
    GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) 
End Function 
DLL на C++ или C# для Excel
 
Денис, вот простейший пример
DLL на C++ или C# для Excel
 
Денис, видимо я неверно понял фразу - dll для excel. Что Вы имели ввиду? Если функции написанные на C++\C#, которые потом можно использовать в Excel как встроенные, по типу ВПР, ИНДЕКС и др., то Excel DNA это то что Вам нужно. Если нет - пожалуйста, разъясните.
DLL на C++ или C# для Excel
 
Если выберите C#, то советую посмотреть в сторону Excel DNA

Код
using ExcelDna.Integration;

public class MyFunctions
{
    [ExcelFunction(Description="Multiplies two numbers", Category="Useful functions")](ExcelFunction(Description=_Multiplies-two-numbers_,-Category=_Useful-functions_))
    public static double MultiplyThem(double x, double y)
    {
        return x * y;
    }
}
Изменено: Иван Манченко - 07.11.2022 21:50:10
DAX ВПР с несколькими условиями, DAX ВПР с несколькими условиями
 
Очень содержательная тема.
Турнирная таблица ЧГК, Как вытащит из таблицы тройку лучших
 
Аскар Сагиев, в VBA.
Изменено: Иван Манченко - 01.05.2022 02:46:34
Создание отчета с с помощью VBA, Отчет формируется по нажатию кнопки на листе отчет, с условиями.
 
Дмитрий Сычев, создайте тему в разделе "Работа"
odp.net и excel, как?
 
Здесь прочитайте, там всё подробно расписано.
odp.net и excel, как?
 
Установить драйвер от Oracle. У них на сайте ищите под свою разрядность.
вывод уникальных значений по признаку ( с Листа 1 на Лист 2), Перенос значений по признаку
 
Функция ВПР
ИНДЕКС и ПОИСКПОЗ
Изменено: Иван Манченко - 05.04.2022 19:21:21
Копирование данных из одного листа в другой (по критерию)
 
Код
Public Sub Baza()
    Dim lo As ListObject
    Dim ws As Worksheet
    Dim iRow As Long
    Dim value() As Variant
    Dim newrow As ListRow
    
    Const sh1 As String = "База"
    Const sh2 As String = "Закрытые"
    
    Set ws = ThisWorkbook.Worksheets(sh1)
    Set lo = ws.ListObjects("База")
    value = lo.DataBodyRange.Value2
          
    Set ws = ThisWorkbook.Worksheets(sh2)
    Set lo = ws.ListObjects("Закрытые")
    
    For iRow = LBound(value) To UBound(value)
        If value(iRow, 1) Like "Закрыт" Then
            Set newrow = lo.ListRows.Add
            newrow.Range.Cells(1, 3).Value2 = value(iRow, 2)
            newrow.Range.Cells(1, 5).Value2 = value(iRow, 4)
            newrow.Range.Cells(1, 7).Value2 = value(iRow, 3)
            newrow.Range.Cells(1, 9).Value2 = value(iRow, 5)
        End If
    Next iRow
End Sub
Макрос подставляющий номер строки ячейки из выбранного диапазона
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, Range("B11:H22")) Is Nothing Then
        Exit Sub
    End If
    Range("A2").Value2 = Selection.Row
End Sub
Копировать. Вниз. Вставить, Помогите заменить sendkeys
 
Код
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
'ActiveSheet.Paste Range("A1") сюда пишите куда вставлять
dax сумма при функции if
 
Код
=CALCULATE(DISTINCTCOUNT('ПРОДАЖИ_ВСЕ'[Признак конс/прод]))


А дальше через фильтр отсеивайте то, что вам нужно.
Изменено: Иван Манченко - 02.04.2022 18:53:07
Соотношение текста из столбцов, Автоматическая замена совпадающих вариаций профессий в одну
 
Код
=ВПР($B1;$H$5:$I$25;2;ЛОЖЬ)
Выборка необходимых значений соответствующие двум критериям, Выборка по двум критериям
 
Код
Sub test()
    Dim v() As Variant, v1() As Variant
    Dim ws As Worksheet
    Dim rg As Range
    Dim i As Long
    Dim ii As Long
    Const s As String = "Имя контрагента"
    Const s1 As String = "Количество покупок"
    Const s2 As String = "Общая сумма покупок"
    
    Set rg = Selection
    v = rg.Value2
    ii = 1
    ReDim v1(1 To 1000, 1 To 3)
    For i = LBound(v) To UBound(v)
        If v(i, 2) > 50 And v(i, 3) > 16000 Then
            v1(ii, 1) = v(i, 1)
            v1(ii, 2) = v(i, 2)
            v1(ii, 3) = v(i, 3)
            ii = ii + 1
        End If
    Next i
    
    Set ws = ThisWorkbook.Worksheets.Add
    With ws:
        .Activate
        .Range("A1").Value = s
        .Range("B1").Value = s1
        .Range("C1").Value = s2
        ii = 2
        For i = LBound(v1) To UBound(v1)
            .Range("A" & ii).Value = v1(i, 1)
            .Range("B" & ii).Value = v1(i, 2)
            .Range("C" & ii).Value = v1(i, 3)
            ii = ii + 1
        Next i
    End With
End Sub


Выделяете таблицу без заголовков и нажимаете кнопку.
P.S. Код не оптимален, потому как писал на скорую руку.
получить сумму значений за несколько дней в заданном промежутке времени
 
Попробуйте.
Код
=СУММЕСЛИМН($B$4:$FM$4;$B$2:$FM$2;$FP14)

В файле понятнее будет.
Изменено: Иван Манченко - 02.04.2022 18:13:44
VBA Model(Power Pivot)
 
Код
mdl_table_column.Application.Visible = False
Изменено: Иван Манченко - 23.03.2022 20:30:24 (корректировка)
Как по очереди обратиться к ячейкам диапазона
 
Переведите в умную таблицу, её в массив и его уже перебирайте.
Если при фильтрации данных нет, перейти к следующей переменной
 
Можно загнать столбец по которому происходит фильтрация в массив, поиск по массиву - если такое есть, фильтровать и выводить на лист, если нет дальше.
Применить макрос ко всем файлам папки
 
Вот код для надстройки VSTO.

Скрытый текст
Изменено: Иван Манченко - 15.01.2022 15:13:57
Применить макрос ко всем файлам папки
 
Вам нужно писать совершенно другую процедуру, а лучше сразу VSTO.
Умная таблица. Запретить заполнять столбец УТ при протягивании одного из столбцов.
 
У Вас процедура обновления в листе неверная. Когда используете ListObject, пользуйтесь его свойствами и методами, а не диапазонами.
Изменено: Иван Манченко - 12.01.2022 22:26:01
Как посчитать в табеле часы, когда в ячейках цифры и символы написаны вместе?
 
Если всегда используется "/", то сначала разделять
Код
Split("11/ддо", "/")
Split("6/3","/")

Дальше выходные данные прогонять в цикле через
Код
IsNumeric

и производить дальнейшие вычисления.
Как добавить в ячейку, только число текущей цены криптовалюты?
 
Вам в раздел работа.
Пропустить ошибку в цикле при отсутствии одной переменной
 
Перед тем как её использовать в цикле:
Код
kurs Is Nothing
макрос удаления лишних строк из таблицы по условию
 
Создаёте переменную для умной таблицы
Код
Dim lo As ListObject
Set lo=ThisWorkBook.ActiveSheet.ListObjects(1)

Удаляете все строки, кроме 10 ( и первой, второй, третьей)
Код
Dim i As Long
For i=1 To lo.ListRows.Count
  If i<>1 And i<>2 And i<>3 And i<>10 Then
     lo.ListRows.Item(i).Delete()
  End If
Next i


Удалены все строки, кроме тех, которые Вам нужны. По этому примеру разберётесь, что к чему - и встроите в файл. Удачи.
Изменено: Иван Манченко - 09.01.2022 14:34:49
макрос удаления лишних строк из таблицы по условию
 
Цитата
Дмитрий написал:
если последняя строка таблицы = 10, то exit sub

Код
Dim i as Long
i=lo.ListRows.Count
Dim ii as Long
For ii=1 To i
 If lo.ListRows.Item(ii).Index=i Then
   Exit Sub
 Else
   lo.ListRows.Item(ii).Delete()
 End If
Next ii
Изменено: Иван Манченко - 09.01.2022 14:09:07 (корректировка)
макрос удаления лишних строк из таблицы по условию
 
Так действуйте, направление мысли я Вам подсказал.
макрос удаления лишних строк из таблицы по условию
 
У Вас есть возможность переделать в умную таблицу? Тогда могло бы выглядеть так:

Код
   Dim lo as ListObject
   Set lo=ThisWorkBook.ActiveSheet.ListObjects(1)

   Dim value() as Variant 'загоняете в массив таблицу, проводите манипуляции с данными
   value=lo.DataBodyRange.Value
   
   'здесь ваши действия с данными, удаление, добавление, важно помнить массив будет двумерный
   ' (первое измерение количество строк, второе количество столбцов)
   'т.е. создаёте новый массив, загоняете туда первые три элемента из текущего и последний, потом
   
   lo.DataBodyRange.Clear
   lo.ListRow.Add

   'а после циклом заполняете данными добавленные строки.
Изменено: Иван Манченко - 09.01.2022 13:13:35 (корректировка)
Страницы: 1 2 След.
Наверх