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

Страницы: 1
Фильтр по макросам макросом, фильтр до 7-и критерий
 
Дамы и Господа прежде задать вопрос хочу пожелать доброго утра и много удач в Ваших делах.
5 и более год назад из одного саксонского форума нашел макрос который фильтрует таблицу по двум фильтрам. Покопался в нем и что то +/- изменил, но по моей таблице не два параметра "не рыба не мясо" нужно еще в глубь копать. Подмогнете?
Файл сейчас выложу.
Спасибо  
Изменено: Arturion - 11.12.2024 09:20:11
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Вопрос про фильтр времени
 
Доброго дня Дамы и Господа ГУРУ.
Возник вопрос про фильтр по времени это реально
Например хочу задать от 10:00 до 13:00 то там показывается время такого рода 0,012554  
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Бухгалтерам на заметку по Excel
 
Дамы и Господа бухгалтера, кто с Excel ом на ВЫ совет(ы).
- не загромождайте таблицы, т.е. не заполняйте в одну яйчейку много информаций, для этого есть Word
- вместо 10-и и более листов используйте
1 лист со справочником
2-й с проводками(дата, дебет, контрагенткредит, контрагент, сумма, примечание),
3-ой лист со сводными данными
НЕ НАСИЛУЙТЕ EXCEL
ОТ СЕБЯ ПРОШУ
Не создавайте “неправильных пчел” – таблиц.
Изменено: SerArtur - 08.12.2024 23:29:33
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Насколько еффективна Power Query
 
Просто интересны Ваши мысли, насколько еффективна Power Query . По моему она нужна для одноразового использования как XML map? Я прав или не очень?
Изменено: SerArtur - 08.12.2024 22:33:09
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Без вопроса, только ПОЖЕЛАНИЯ
 
Как говорил один герой из одного фильма с переформулировкой от себя

И шо я в тебя (EXCEL) такой влюбленный?

Новички, мастера и ГУРУ  EXCEL

С новым наступающим годом
БУДЬТЕ НА ВЫСОТЕ ВСЕГДА,
- ЗДОРОВЬЯ по геометрической прогрессии
- без MIN потерь
- MAX удач
- Финансы в AVERAGE колеблись в промежутке (столько хватит)
- а MOD была постоянна
- а в PIVOTTABLE только рефрешились рост, рост, рост

Я так хоюу и желаю. С уважением и наилучшими пожеланиями Артур
Изменено: SerArtur - 07.12.2024 11:56:05
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Вопрос про Application.VLookup
 
Доброго здравия Дамы и Господа ЕКСЕЛИСТЫ
У меня вопрос как художник художникам. Кто может рисовать vlookup? см ниже

Поманипулировал ловкостью рук и это хорошо работает на одном листе, но как здесь .............. Application.VLookup(Cells......................... указать влокопирование данных из листа справочника ???

Это реально
Код
Sub VlokopiroVanie()
Dim i As Long, f As Long, s As String, n As Long
    
    For i = 3 To 1000
        n = 1
        For f = 7 To 8
            Cells(i, f) = Application.VLookup(Cells(i, 2).Value, Range("X:Y"), n + 1, False)
            n = n + 1
        Next f
    Next i
    MsgBox "Complete!"
End Sub
Буду благодарен всем.
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Мастер Excel-я - человек, который видел конец того же самого Excel-я
Шутка шуткой, но хочется пожелать Всем Вам бесконечных удач во всем.
Улыбайтесь Господа, улыбайтесь (нет это не я сказал, а тот самый Мюнхаузен)
С уважением
Изменено: SerArtur - 07.12.2024 11:33:53
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Сбор данных макросом из одного листа в сводный лист
 
Доброго дня Вам.
Есть вопрос по сбору данных из выгруженной базы
На лист А выгружаются данные, а на листе Pivot данные собираются формулой MID MOD
Вопрос в том что макрос виснет после заполнения данных

Вот собственно код
Код
Sub montero()

For n = 3 To ActiveSheet.UsedRange.Rows.Count

    Range("B" & n).Value = Worksheets("A").Range("A" & n).Value
    Range("D" & n).FormulaR1C1 = "=+MID('A'!R[-2]C[-1],5,2)&""/""&MID('A'!R[-2]C[-1],8,3)&""/""&R1C4"
    Range("E" & n).FormulaR1C1 = "=+MOD('A'!R[-2]C[-3],1)"
    Range("F" & n).Value = Worksheets("A").Range("D" & n).Value
    Range("G" & n).FormulaR1C1 = "=+VLOOKUP(RC[-6],base!R2C4:R200C6,3,0)"
    Range("H" & n).FormulaR1C1 = "=+VLOOKUP(RC[-7],base!R2C4:R200C5,2,0)"
    Range("I" & n).Value = Worksheets("A").Range("F" & n).Value
    Range("J" & n).Value = Worksheets("A").Range("H" & n).Value
    Range("K" & n).Value = Worksheets("A").Range("J" & n).Value
    Range("L" & n).Value = Worksheets("A").Range("K" & n).Value

Next n

End Sub

Что я неправильно сделал?
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Переименование листа на 1
 
Доброго дня при Вашей помощи нашел вот этот макрос который входит во все книги проверяет наличие в названии листа открывающийся книги по яйчейкам В5 В6 - В50 и переименовывает лист на 1
Код
 Option Explicit

Sub SHEET_RENAME()
Dim s As String, fldr As String, j As Long, f As Long
Dim rc As Range
Dim wb As Workbook
Dim sh As Worksheet

fldr = "C:\Users\User\Desktop\777\"
s = Dir(fldr & "*.xlsx*")
j = 0
f = 0
Application.ScreenUpdating = False

' проверка существования файлов
Do While s <> ""
    s = Dir
    f = f + 1
Loop

' обработка
s = Dir(fldr & "*.xlsx*")
Do While s <> ""
    Set wb = Workbooks.Open(fldr & s)


    Set sh = GetSh(wb, Range("B5").Text, Range("B6").Text, Range("B7").Text, Range("B8").Text)


If Not sh Is Nothing Then
        ' изменение листов
        If sh.Visible = xlSheetVisible Then sh.Select
        sh.Name = "1"
        wb.RefreshAll
        wb.Save
        j = j + 1
    End If
    wb.Close False
    
    s = Dir
    Application.StatusBar = "Переименован(ы): " & j & " iz " & f & " failov" & " -> " & s: DoEvents
Loop

    Application.ScreenUpdating = True
    ActiveWorkbook.RefreshAll
    Application.StatusBar = "Переименован(ы): " & j & " из " & f & " failov"

End Sub

Private Function GetSh(wb As Workbook, ParamArray sheetNames() As Variant) As Worksheet
    Dim sh As Worksheet
    Dim vName As Variant
    On Error Resume Next
    For Each vName In sheetNames
        Set sh = wb.Sheets(vName)
        If Not sh Is Nothing Then
            Set GetSh = sh
            Exit For
        End If
    Next
    On Error GoTo 0
End Function

У меня возник вопрос по диапазону от В5 до В50
Код
    Set sh = GetSh(wb, Range("B5").Text, Range("B6").Text, Range("B7").Text, Range("B8").Text)

как задать диапазон
Изменено: SerArtur - 02.12.2024 14:06:26
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Присвоение константы яйчейки
 
Давно забыл как писать макросы
Что то делаю не так, но что
1 как цикл исправить до последней заполненной строки
2 как создать временную константу для вычислений которая после чего заполнит столбец В
Код
Dim rng1 As Range

rng1.FormulaR1C1 = "=MID(RC[-1],1,2)&""/""&MID(RC[-1],4,2)&""/""&MID(RC[-1],7,4)"

for n = 2 to 1000

Rnge("B" & n)=rng1

next n
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Разделение даты и времени
 
Снова здравствуйте. Вопрос с форматом даты и времени интересует. Кто подскажет
Есть такой формат
26.11.2024 00:05:32
Я функцией MID и  RIGHT выдернул дату и время в отделные столбцы

B1 = MID(A1,1,2)&"/"&MID(A1,4,2)&"/"&MID(A1,7,4)
C1 = RIGHT(A1, 8 )

При помощи сводной таблицы надо даты сгрупировать, но поскольку в В1 дата не в нужном формате сводная не групируется по дате
Попробовал так, но как то некрасиво получается . Использую лишний столбец D для временного вычисления значений для столбца B.
Плчс ко всему время не могу привести к формату времени что тоже по моим ссображением тоже не верно

=HOUR(C2)&":"&MINUTE(C2) и время тоже не группируется от ... до часов


Код
Sub Formating_Column()
Dim n As Variant
    Columns("B:D").Select
    Selection.Insert Shift:=xlToRight
    
For n = 2 To 10000
If Range("A" & n) = "" Then
    Range("B" & n) = ""
    Range("C" & n) = ""
    Range("D" & n) = ""
Else
    Range("B" & n).FormulaR1C1 = "=MID(RC[-1],1,2)&""/""&MID(RC[-1],4,2)&""/""&MID(RC[-1],7,4)"
    Range("C" & n).FormulaR1C1 = "=RIGHT(RC[-2],8"
    Range("D" & n).FormulaR1C1 = "=INT(RC[-2])"
    Range("B" & n) = Range("D" & n)
    Range("B" & n).NumberFormat = "m/d/yyyy"

End If
Next n
End Sub
Изменено: SerArtur - 29.11.2024 13:32:49
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Сбор данных из книг в одну через макрос
 
Доброго дня Вам и всех благ.
Попробовал макрос CrazzyRabbit а очень классный, но при сборе информации книги откуда собирачтся данные остаются открытими и поскольку давно не тренировал мозги по макросам не могу понять с какого куска  задать workbook...close
https://www.planetaexcel.ru/forum/?PAGE_NAME=message&FID=1&TID=131073&TITLE_...
Код
Sub CombineWorkbooks()
    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim ws As Worksheet: Set ws = wb.Sheets(1) 'вместо 1, можно указать "Лист1" например
    Dim wb1 As Workbook
    Dim ws1 As Worksheet
    Dim FilesToOpen
    Dim x As Integer
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
    FilesToOpen = Application.GetOpenFilename _
                  (FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", _
                   MultiSelect:=True, Title:="Files to Merge")
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Не выбрано ни одного файла!"
        GoTo ExitHandler
    End If
    x = 1
    While x <= UBound(FilesToOpen)
        Set wb1 = Workbooks.Open(Filename:=FilesToOpen(x)) 'присвоение на переменную объекта открываемой книги
        For Each ws1 In wb1.Worksheets 'перебор листов в открываемой книге
            i = ws.Cells(Rows.Count, 1).End(xlUp).Row 'последняя строка по 1 столбцу в этой книге
            i1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row 'последняя строка по 1 столбцу в открываемой книге книге
            If i1 > 1 Then 'если на листе есть чтото кроме шапки
                ws1.Rows("2:" & i1).Copy ws.Cells(i + 1, 1) 'вставить вместе с формулами
            End If
        Next ws1
        x = x + 1
    Wend
ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub
Изменено: SerArtur - 29.11.2024 10:57:20
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Переименование листов в папке через VBA
 
Доброго дня Вам. Давненько не заходил на мой лчбимый форум ЕКСЕЛИСТОВ. Как Вы Дамы и Господа сего дела, хобби?
У меня вопросик маленький такой появился может подсобите? Буду благодарен.
1 В папке D:\чек\ есть 100 файлов xlsx с одним листом с названием или Sheet0 или 00022156059 или 00022170082 и тд
2 надо макрос так написать, чтоб в папке D:\чек\ циклом, excel-ие книги открывались, листы переименовались на 1 и закрывались
2 создал макрос, конечно не без помощи друзей но макрос начал материться после окончания процесса на error 9
Вот собственно макрос

Как проверить на названия листов, чтоб не матерился
Спасибо за ответы и с уважением
Код
Sub SHEET_RENAME()
Dim s As String, fldr As String, j As Integer, f As Integer
Dim rc As Range
fldr = Range("B3") ' путь
s = Dir(fldr & "*.xlsx*")
j = 0
f = 0
Application.ScreenUpdating = False

' проверка существования файлов 
Do While s <> ""
    s = Dir
    f = f + 1
Loop

' обработка
s = Dir(fldr & "*.xlsx*")
Do While s <> ""
    With Workbooks.Open(fldr & s)
        ' изменение листов
         Sheets("Sheet0").Select         ' МАТЕРИТСЯ ВОТ ЗДЕСЬ
         Sheets("Sheet0").Name = "1"
        .RefreshAll
        .Save
        .Close (True)
    End With
    s = Dir
    j = j + 1
    Application.StatusBar = "Переименован(ы): " & j & " iz " & f & " failov" & " -> " & s: DoEvents
Loop

    Application.ScreenUpdating = True
    ActiveWorkbook.RefreshAll
    Application.StatusBar = "Переименован(ы): " & j & " из " & f & " failov"

End Sub 
Изменено: SerArtur - 27.11.2024 12:05:11
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Заполнение из формы в ячейки
 
Доброго дня Вам господа. Есть такой код
Код
Private Sub CommandButton1_Click()
'Application.Worksheets("A").Activate
            NextRow = Application.WorksheetFunction.CountA(Range("A!A:A")) + 2
            
            Cells(NextRow, 1) = TextBox1.Text
End Sub
С этим кодом все окей он работает, т.е. заполняет все яйчейки начинайя с А2 и до Аn-ое. Но вот в чем проблема, если случайно пользователь очистит скажем яйчейку А10, а потом через форму начнет заполнять А10, А11 и ... Аn, то код все время пепрезаполняет айчейку А11 а А12...Аnникак не заполняются как быть?
Спасибо1
Изменено: SerArtur - 26.08.2015 13:40:27
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Проверка Cells на равенство
 
Есть макрос который проверяет на равенство Cells и при равенстве красит яйчейку
Код
Sub mmm()
For n = 5 To 25
    For m = 5 To 15
If Worksheets("Report calculate").Cells(1, n) = Worksheets("Report calculate").Cells(n, m) Then
 Worksheets("Report calculate").Cells(n, m).Interior.Color = 4967
End If
Next m
Next n
End Sub
Но почему то он не работает и окрашивает пустые яйчейки. Почему кто обьяснит?
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Цикл по столбцам
 
Как реализовывается цикл по столбцам? Никогда не использовал.
For ... To ...
...
Next ...
Изменено: SerArtur - 04.02.2015 21:43:57
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Функция МИН: если два числа одинаковы и меньше минимума
 
Посмотрите яйчейки К5 и К7
В обеих яйчейках должно быть выведенно слово  ПЕРЕГОВОРЫ. С условиями
1 для К5 - потому что из 7 продавцов только 1-й и 3-й продавец предложили товар В за одну и ту же сумму 1250р, которая больше чем наша сумма (яйчейка В5). И для этого товара мы должны вести ПЕРЕГОВОРЫ с 1-ым и 3-им продавцами,
2 для К7 - потому что потому что из 7 продавцов только 1-й, 4-й и 6-й продавец предложили товар D за одну и ту же сумму, которая равна нашей сумме

П.С. больно не бейте. Когда решаешь одну и ту же задачу много раз то рефлексно совершаешь одну и ту же ошибку
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Ввод данных из формы, свойство NextRow = Application.WorksheetFunction.CountA
 
На форме кнопка на событие Click вводит данные из ТextBox-а, вот код
Код
Application.Worksheets("A".Activate
            NextRow = Application.WorksheetFunction.CountA(Range("A:A") + 4
            Cells(NextRow, 1) = TextBox1.Text
Но проблема в том что ввод данных из формы почему то не начинается с 4-ой строки почему? Кто обьяснит
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Справка для пользовательской функции
 
Не знаю правильно ли здесь выложил файлик-пример для создания справки для пользовательской функции решать модераторам.
Хотелось бы помочь тем кто давно искал как создать справку для своей функции и в итоге не нашел. Сильно по голове не бить, потому что это мое больное место.

Почему названия по аргументам я выложил на листе, чтобы на всех языках возможно було бы сформулировать свои ХЕЛПЫ по аргументам
Работает так там модуль с именем DescribeFunction надо запустить, только потом уже функцию использовать. Хотя я этот модуль вписал в Workbook_Open() чтоб при открытии сработал
Изменено: SerArtur - 09.01.2015 23:39:36
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Коментарий в колонке с условиями
 
Если сумма n-го Поставщика равно сумме n2-го Поставщика и равно НАШЕЙ СУММЕ ЗАКАЗА
то вписать в колонке N  слово ПЕРЕГОВОРЫ
Если сумма n-го Поставщика меньше  НАШЕЙ СУММЕ ЗАКАЗА
то вписать в колонке N  слово OK
В противном случае вписать НЕСОСТОЯЛОСЬ
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Задача про госзакупки с изпользованием MIN, Рейтинг продавцов
 
Добрый день дамы и господа . Может кто сталкивался.
Есть данные про госзакупки
Продавцы которые будут учавствовать в тендере предлагают свои цены по товарам
Задача в том чтобы в колонках K, L, M (1-е место 2-е место 3-е место соответственно) должны отображаться те продавцы которые предложат наименьшие цены по сравнению с фиксированной ценой товара и были записанны по колонкам K, L, M от наименьшей цены до цены не выше цены тендера СМ ФАЙЛ

При чем предложенные продавцами цены должны быть меньше или равны цене, обьявленное тендером. А если два продавца предложат наименьшую цену по сравнению обьявленное тендероми и в то же время их предложенные цены будут одинаковы, то первое место должен занять продавец который работает с НДС, а второе место тот который без НДС

Зараннее спасибо
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение
Next n
Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Страницы: 1
Наверх