Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 80 След.
Изменить макросы VBA в большом количестве книг
 
http://cpearson.com/excel/vbe.aspx
Тут много полезного по редактированию кода макросами.
Макрос формирования коллекции только уникальных значений
 
Вариант через словарь.
Код
    Dim myDictionary As Object
    Set myDictionary = CreateObject("Scripting.Dictionary")
    On Error Resume Next
    For Each myCell In myRange
        If CStr(myCell) Like "*/*" Or CStr(myCell) Like "*-*" Then
            'myCollection.Add Replace(CStr(myCell), "/", "-")
            myDictionary.Item(Replace(CStr(myCell), "/", "-")) = 0
        End If
    Next myCell
    On Error GoTo 0
    
    Dim v As Variant
    For Each v In myDictionary
        myCollection.Add v
    Next
    Set myDictionary = Nothing
ячейки с зада :), и такое бывает
 
Цитата
Lari написал:
https://www.popmech.ru/gadgets/428282-habarovchanin-zapolnil-vse-yacheyki-excel/
Как тут не припомнить Станиславского.
Не верю!
Для этого нужно заполнять более 270 ячеек в секунду. И это если не спать, не есть.
Динамический именованный диапазон для данных с #НД или другими ошибками
 
Например, так.
В А1 внесена формула с динамическим именованным диапазоном.
Динамический именованный диапазон для данных с #НД или другими ошибками
 
Цитата
moneta написал:
А динамический именованный диапазон создается так же через смещ?
Через СМЕЩ.
Только формулу массива нужно будет вынести на лист.
Рандомная генерация записей
 
Цитата
Дмитрий Осипов написал:
А выборка из 50 записей будет обновляться, если обновить главную таблицу?
Будет обновляться, после каждого пересчёта.
Если вычисления включены, то будет обновляться, если в главной таблице отредактируете любую ячейку.
Динамический именованный диапазон для данных с #НД или другими ошибками
 
Код
=СУММ(СМЕЩ(A4;0;0;СУММ(1-ЕНД(A4:A325));1))
формула массива
Рандомная генерация записей
 
На новый лист
Код
В диапазон A2:A51 =СЛУЧМЕЖДУ(2;СЧЁТЗ(Лист1!A:A))
В B2:G51          =СМЕЩ(Лист1!A$1;$A2-1;0)

Вангую: а как бы сделать без повторений? )
Использование массива со справочником по нескольким условиям
 
Код
Sub Main()
    Dim aCurrent As Variant
    aCurrent = GetCurrent()
    
    Dim dic As Object
    Set dic = GetDicFromArray(aCurrent)
    
    Dim aNew As Variant
    aNew = GetNew()
    
    CompareCurrentAndNew dic, aNew
End Sub
'
Sub CompareCurrentAndNew(dic As Object, aNew As Variant)
    Dim r As Range
    Set r = Sheets("новые").Range("I1").Resize(UBound(aNew(0)))
    Dim a As Variant
    a = r
    Dim b As Variant
    ReDim b(0 To UBound(aNew))
    Dim y As Long
    Dim i As Long
    Dim s As String
    For y = 2 To UBound(aNew(0))
        For i = 0 To UBound(aNew)
            b(i) = aNew(i)(y, 1)
        Next
        s = Join(b, vbTab)
        If dic.Exists(s) Then
            a(y, 1) = "есть"
        Else
            a(y, 1) = 0
        End If
    Next
    
    r = a
End Sub
'
Function GetDicFromArray(a As Variant) As Object
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    Dim y As Long
    Dim i As Long
    Dim b As Variant
    ReDim b(0 To UBound(a))
    For y = 2 To UBound(a(0))
        For i = 0 To UBound(a)
            b(i) = a(i)(y, 1)
        Next
        dic.Item(Join(b, vbTab)) = y
    Next
     
    Set GetDicFromArray = dic
End Function
'
Function GetNew() As Variant
    Dim a As Variant
    Dim b As Variant
    a = Array("E", "J", "T", "W")
    ReDim b(0 To UBound(a))
    
    With Sheets("новые")
        Dim y As Long
        Dim i As Long
        y = .Cells(.Rows.Count, .Range(a(0) & "1").Column).End(xlUp).Row
        Dim v As Variant
        For Each v In a
            b(i) = .Range(a(i) & "1").Resize(y)
            i = i + 1
        Next
        
    End With


    GetNew = b
End Function
'
Function GetCurrent() As Variant
    Dim a As Variant
    Dim b As Variant
    a = Array("F", "J", "T", "W")
    ReDim b(0 To UBound(a))
    
    With Sheets("текущие")
        Dim y As Long
        Dim i As Long
        y = .Cells(.Rows.Count, .Range(a(0) & "1").Column).End(xlUp).Row
        Dim v As Variant
        For Each v In a
            b(i) = .Range(a(i) & "1").Resize(y)
            i = i + 1
        Next
        
    End With

    GetCurrent = b
End Function
Вывод части значения получаемого из списка в соседних ячейках, Необходимо вывести часть текстового значения получаемого из списка в соседних ячейках в зависимости от выбранного значения
 
Код
=ЕСЛИ(ЕЧИСЛО(ЗНАЧЕН(ПСТР($E5;8;1)));ЕСЛИ(СТОЛБЕЦ()-СТОЛБЕЦ($E:$E)<=2*ЗНАЧЕН(ПСТР($E5;8;1));ПСТР($E5;10;ДЛСТР($E5));"");"")
Конечный статус в зависимости от многих условий
 
Код
=ЕСЛИ((A3="Да")*(B3+C3)+(A3="Нет");"";"Не заполнено кол-во "&$A$1&" ")&ЕСЛИ((D3="Да")*(E3+F3)+(D3="Нет");"";"Не заполнено кол-во "&$D$1&" ")&ЕСЛИ((G3="Да")*(H3+I3)+(G3="Нет");"";"Не заполнено кол-во "&$G$1&" ")
Запрет заполнения ячейки, если две других не заполнены
 
Предположу, что
Код
=И(RC>=СУММ(RC3:RC4);СЧЁТ(RC3:RC4)=2;ОСТАТ(RC;1)=0)

Цитата
poiuyt написал:
можно было бы ввести только целое число
Запрет заполнения ячейки, если две других не заполнены
 
(На ленте) Данные
Проверка данных
Проверка данных
Параметры
Тип данных: - Другой
Формула:
Код
=И(C1>=(A1+B1);ОСТАТ(C1;1)=0)
Подтянуть данные из другой таблице
 
Какова драматургия! Два слова, а сколько скрыто! И завязка сюжета, и конфликт, и противостояние характеров. :)
Повернуть текст в горизонтальное положение
 
Код
Sub ПовернутьИпокрасить()
    Dim c As Range
    For Each c In ActiveSheet.UsedRange.Cells
        If c.Orientation <> -4128 Then
            c.Orientation = -4128
            c.Interior.Color = 255
        End If
    Next
End Sub
Массовая замена значений, согласно окончанию
 
Код
Sub ДваМинусСто()
    Dim c As Range
    For Each c In Selection.Cells
        c.Cells(1, 2).Value = "2-100-0" & Right(c.Value, 1)
    Next
End Sub

Массовая замена значений, согласно окончанию
 
Код
="2-100-0"&ПРАВСИМВ(A2;1)
Подскажите сортировку из 2 столбцов в 2 других, Сортировка
 
Код
в А2 и протянуть вниз                    =A1--((B2+C2)>0)
в Е1 и протянуть вниз и вправо           =ВПР(СТРОКА();$A:$C;СТОЛБЕЦ(B:B);0)
Перенос данных из производственного календаря в график работы персонала
 
Код
=ИНДЕКС('производственный календарь'!C$2:C$13;ПОИСКПОЗ($HY$17;'производственный календарь'!$E$2:$E$13;0))
Сумма цифр из даты
 
Код
=ПСТР(ПРАВСИМВ("0"&ДЕНЬ(A1);2);1;1)+ПСТР(ПРАВСИМВ("0"&ДЕНЬ(A1);2);2;1)+ПСТР(ПРАВСИМВ("0"&МЕСЯЦ(A1);2);1;1)+ПСТР(ПРАВСИМВ("0"&МЕСЯЦ(A1);2);2;1)+ПСТР(ГОД(A1);1;1)+ПСТР(ГОД(A1);2;1)+ПСТР(ГОД(A1);3;1)+ПСТР(ГОД(A1);4;1)
Событие програмного изменения ячейки
 
Цитата
Artmasterpro написал:
а событие Worksheet_Change(ByVal Target As range) работает только при изменении пользователем
Это не так.
Заполнение диапазона макросом из другого листа
 
Может так?
Код
Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E2:E10000")) Is Nothing Then
        Dim c As Range
        For Each c In Target.Cells
            If Range("E" & c.Row) <> "" Then   '???
               i = Cells(Split(c.Address, "$")(2), 2)
               With Sheets("Лист1")
                    For s = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
                        If .Cells(s, 2) = i Then
                           .Cells(s, 5) = "Гараж"
                           .Cells(s, 3) = ""
                           .Cells(s, 4) = ""
                        End If
                    Next
              End With
            End If
        Next
    End If
End Sub

Отчет проходок, Подсчет и поиск по нескольким значениям
 
Пишу в личку.
В работе.
Выполнил.
Оплату получил.
Изменено: МатросНаЗебре - 25 апр 2020 18:31:49
Определить, какому диапазону принадлежит число
 
Если #14 ещё актуально, то в красной ячейке должна быть формула.
Код
=ОСТАТ((СУММ($D15:G15)+1);30)

В сообщении #12 есть формула. Вставьте её и копируйте в остальные диапазоны.
Макрос (формула?) сбора данных в т.ч. с ещё не существующих листов.
 
Код
sub aaa()
Range("F4").FormulaR1C1 = "=SUM('*'!R4C5)"
end sub
Определить, какому диапазону принадлежит число
 
В ячейку F6  и можно протянуть в E6.
Код
=ЦЕЛОЕ((СУММ($D6:E6)+1)/30)+1
Расчет уровня жидкости в горизонтальном цилиндре по заданному объёму, расчет для изготовления мерной шкалы
 
Вот такой вариант.
Находим аналитически зависимость площади сечения заполненной части от уровня.
Создаём таблицу зависимости. Таким образом получаем значения обратной функции, а именно зависимость уровня от площади заполненной части.
Из полученной таблицы ВПР-им с неточным соответствием.
Уровень найден.
Заполнение листов файла данными из таблицы по условию, Сформировать файлы из сформированной таблицы
 
Цитата
БМВ написал:
и кто ж это?
Это я.
Определить, какому диапазону принадлежит число
 
Код
=ЦЕЛОЕ((СУММ(A1:A2)+1)/30) - Это номер страницы
=ОСТАТ((СУММ(A1:A2)+1);30) - Это номер строки
Вместо А1:А2 - поставьте сумму предыдущих распределённых номеров.
Заполнение листов файла данными из таблицы по условию, Сформировать файлы из сформированной таблицы
 
Пишу в личку.

Поправьте меня, если я не прав,
в этой ветке исполнитель пока не найден.

В работе.
Выполнил.
Оплату получил.
Изменено: МатросНаЗебре - 23 апр 2020 07:48:29
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 80 След.
Наверх