Дамы и Господа прежде задать вопрос хочу пожелать доброго утра и много удач в Ваших делах. 5 и более год назад из одного саксонского форума нашел макрос который фильтрует таблицу по двум фильтрам. Покопался в нем и что то +/- изменил, но по моей таблице не два параметра "не рыба не мясо" нужно еще в глубь копать. Подмогнете? Файл сейчас выложу. Спасибо
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Доброго дня Дамы и Господа ГУРУ. Возник вопрос про фильтр по времени это реально Например хочу задать от 10:00 до 13:00 то там показывается время такого рода 0,012554
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Дамы и Господа бухгалтера, кто с Excel ом на ВЫ совет(ы). - не загромождайте таблицы, т.е. не заполняйте в одну яйчейку много информаций, для этого есть Word - вместо 10-и и более листов используйте 1 лист со справочником 2-й с проводками(дата, дебет, контрагенткредит, контрагент, сумма, примечание), 3-ой лист со сводными данными НЕ НАСИЛУЙТЕ EXCEL ОТ СЕБЯ ПРОШУ Не создавайте “неправильных пчел” – таблиц.
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Как говорил один герой из одного фильма с переформулировкой от себя
И шо я в тебя (EXCEL) такой влюбленный?
Новички, мастера и ГУРУEXCEL
С новым наступающим годом БУДЬТЕ НА ВЫСОТЕ ВСЕГДА, - ЗДОРОВЬЯ по геометрической прогрессии - без MIN потерь - MAX удач - Финансы в AVERAGE колеблись в промежутке (столько хватит) - а MOD была постоянна - а в PIVOTTABLE только рефрешились рост, рост, рост
Я так хоюу и желаю. С уважением и наилучшими пожеланиями Артур
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Доброго здравия Дамы и Господа ЕКСЕЛИСТЫ У меня вопрос как художник художникам. Кто может рисовать 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-я Шутка шуткой, но хочется пожелать Всем Вам бесконечных удач во всем. Улыбайтесь Господа, улыбайтесь (нет это не я сказал, а тот самый Мюнхаузен) С уважением
Иногда 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 Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Доброго дня при Вашей помощи нашел вот этот макрос который входит во все книги проверяет наличие в названии листа открывающийся книги по яйчейкам В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)
Иногда 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 Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
При помощи сводной таблицы надо даты сгрупировать, но поскольку в В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
Иногда 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
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Доброго дня Вам. Давненько не заходил на мой лчбимый форум ЕКСЕЛИСТОВ. Как Вы Дамы и Господа сего дела, хобби? У меня вопросик маленький такой появился может подсобите? Буду благодарен. 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
Иногда 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
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Есть макрос который проверяет на равенство 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 Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Иногда 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 Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Но проблема в том что ввод данных из формы почему то не начинается с 4-ой строки почему? Кто обьяснит
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Не знаю правильно ли здесь выложил файлик-пример для создания справки для пользовательской функции решать модераторам. Хотелось бы помочь тем кто давно искал как создать справку для своей функции и в итоге не нашел. Сильно по голове не бить, потому что это мое больное место.
Почему названия по аргументам я выложил на листе, чтобы на всех языках возможно було бы сформулировать свои ХЕЛПЫ по аргументам Работает так там модуль с именем DescribeFunction надо запустить, только потом уже функцию использовать. Хотя я этот модуль вписал в Workbook_Open() чтоб при открытии сработал
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Если сумма n-го Поставщика равно сумме n2-го Поставщика и равно НАШЕЙ СУММЕ ЗАКАЗА
то вписать в колонке N слово ПЕРЕГОВОРЫ
Если сумма n-го Поставщика меньше НАШЕЙ СУММЕ ЗАКАЗА
то вписать в колонке N слово OK
В противном случае вписать НЕСОСТОЯЛОСЬ
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.
Добрый день дамы и господа . Может кто сталкивался. Есть данные про госзакупки Продавцы которые будут учавствовать в тендере предлагают свои цены по товарам Задача в том чтобы в колонках K, L, M (1-е место 2-е место 3-е место соответственно) должны отображаться те продавцы которые предложат наименьшие цены по сравнению с фиксированной ценой товара и были записанны по колонкам K, L, M от наименьшей цены до цены не выше цены тендера СМ ФАЙЛ
При чем предложенные продавцами цены должны быть меньше или равны цене, обьявленное тендером. А если два продавца предложат наименьшую цену по сравнению обьявленное тендероми и в то же время их предложенные цены будут одинаковы, то первое место должен занять продавец который работает с НДС, а второе место тот который без НДС
Зараннее спасибо
Иногда 1+1 не равно двум, она равна нулю и каждая задача имеет красивое и неверное... решение Next n Бухгалтер - человек, который решает ваши проблемы, о которых вы и не знали, путём, который вы не понимаете.