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

Страницы: 1 2 3 4 След.
Плавующее количество знаков после запятой
 
Дмитрий(The_Prist) Щербаков, спасибо большое. Кажется ваша формула подходит идеально. Чутка подправил ее, чтобы тысячи запятой еще выделял. В английской версии так вышло, если кому понадобиться =TEXT(E2,"0,0"&IF(LEN(E2)-LEN(INT(E2))>0,MID(1/2,2,1)&REPT("0",LEN(E2)-LEN(INT(E2))-1),""))

Спасибо.
Плавующее количество знаков после запятой
 
А как можно сделать такой общий вариант для всех ячеек, который будет и 2 символа отражать корректно (.35) и одни символ корректно (.5 а не .50) и целом число без десятичной доли совсем? Очень даже вариант, если подскажите как. Я в данный момент такой использую в формуле: TEXT(ROUND(A1,2),"0,0.00"). Но, в таком варианте он целые и десятичные отражает неверно: 351.00 и 351.50 вместо 351 и 351.5
Изменено: Paul Zealand - 09.11.2023 13:03:59
Плавующее количество знаков после запятой
 
Здравствуйте форумчане. Нужен Ваш совет.

Задача простая. Есть столбец А со значениями (цифры). Там всегда содержатся цифры либо целые числа, либо с десятичными знаками, либо с сотыми. То есть максимум 2 символа после запятой. Нужно, чтобы в столбце B отображалось число с нужным количеством символов после запятой. То есть чтобы формула сама определяла сколько символов, и в зависимости от этого отображала либо 1 символ после делителя, либо 2 символа, либо ни одного.

З.Ы. на форуме куча тем с похожим вопросом, однако всегда есть какое-то отличие, в общем поиски успехом не увенчались. Пример во вложении. Заранее спасибо.
Включаем прокрутку колёсиком мышки для ListBox и ComboBox на x86 и x64
 
Alemox, подскажите, а что за "user32" в модуле в коде? Вставил, все работает, прокрутка. Но, пару раз эксель самопроизвольно закрывался, вылетал.
Поместить продажи из таблицы листа 1 в таблицу листа 2 на основании текущей даты через ВБА
 
New, спасибо большое за предложенный вариант! Все работает! Вообще как дальше поменять макрос я разберусь, для меня было важно сам способ определения ячеек и записи инфы туда определить. И Ваш вариант открыл мне новые горизонты для изучения, например: ListObjects, HeaderRowRange.Find, DataBodyRange. Буду теперь изучать. Спасибо! )

З.Ы. По поводу таблицы, есть причина почему она горизонтальная, а не вертикальная. Это лишь кусок всего файла, там дальше по ходу дела это имеет значение, хотя вертикальный вариант я тоже рассматривал. А по-поводу переменной, это да, я когда файл под пример менял, пропустил ))
Поместить продажи из таблицы листа 1 в таблицу листа 2 на основании текущей даты через ВБА
 
Здравствуйте, друзья!

Нужнен совет. Задача тривиальна. На листе "Sales" есть таблица, туда каждый день вносятся продажи, себестоимость и прибыл за текущий день. Есть другая таблица на листе "Sales Data". В нее хотелось бы по клику кнопки с листа "Sales" переносить суммарные продажи, себестоимость и прибыль за каждый конкретный день.
На данном конкретном примере, хотелось бы содержимое ячеек E3, F3, G3 с листа "Sales" перенести в ячейки C5, C6, C7 листа "Sales Data" по клику мышки. Завтра, когда снова открою файл, дата в ячейке B1 уже будет 03/08/22, значит и продажи надо перенести в D5, D6, D7 соответственно. Пример во вложение. Заранее спасибо!
Использовать значение в комбобоксе в качестве переменной для формулы
 
Ребята, всем спасибо. Разобрался сам. Решил таким образом если кому интересно - Range(adr).Formula = "=VLOOKUP(""" & ComboBox1 & """,'Product List'!C:F,4,0) * " & TextBox1 & ""
Использовать значение в комбобоксе в качестве переменной для формулы
 
Здравствуйте, друзья!
Нужен Ваш совет. Ситуация следующая.
Есть файл с 2 листами. В одном (Product List) находится таблица с наименованием продуктов, их ценой и ценой за мл./гр. и т.д.
На втором листе (Auto-Add) тоже есть таблица, там находится наименование товара, его цена, себестоимость и выручка.
Идея была в том, чтобы с помощью юзерформы можно было вносить новые позиции в таблицу на листе "Auto-Add". Наименование новой позиции вносим вручную, с этим проблем нет, Sale Price тоже вносим вручную, а вот Net price надо бы чтобы рассчиталась автоматически. И здесь есть проблемка. Расчитываться Net должна следующим образом: в Комбобокс от 1 до 20 вносим (Ing.1 - Ing.20) наименование продукта, который берется из умной таблицы на листе "Product List". Затем указывается количество этого товара в бокс Qty1 - Qty20. И в ячейку Net должна записаться сумма произведения Qty и цены за единицу из таблицы "Product List". Логика моя была простая значение из Qty1 - Qty20 умножаем на результат формулы vlookup (впр), где по имени из Ing.1 - Ing.20 подтягиваем цену за единицу из листа "Product List". И теперь собственно сам вопрос. Можно ли как-то объявить значение из комбобокса переменной, а потом использовать эту переменную в формуле ВПР в качестве искомого? Можно же по идее... И если можно, то тогда другой вопрос, а когда я открою Юзерформ и внесу значение в комбобокс, переменная тоже обновится с новым значением комбобокса, или переменная так и останется пустым комбобоксом?

З.Ы. Проблема в макросе на кнопке "add" листа "Auto-Add". Там пытаюсь в ячейку внести результат умножения Qty и ВПР с переменной из комбобокса.
Предвосхищая встречные вопросы - на данный момент достаточно сделать чтобы считалась сумма по одному заполненному комбобоксу из 20, остальное сам допил.
SUMIFS формула, в которой в 1 из критериев 2-ое условие, по типу или-или.
 
Спасибо всем откликнувшимся! Спасибо buchlotnik, спасибо Дмитрий(The_Prist) Щербаков, спасибо Сергей.
Несколько альтернативных вариантов получено, задача решена!
SUMIFS формула, в которой в 1 из критериев 2-ое условие, по типу или-или.
 
V, а какое бы Вы предложили решение для этой задачи, без использования SUMIFS? Если оно сработает, я откорректирую вопрос и попрошу модераторов поменять тему.
SUMIFS формула, в которой в 1 из критериев 2-ое условие, по типу или-или.
 
Здравствуйте, друзья!

Нужен Ваш совет. Искал на форуме, есть схожие темы, но ответа не нашел.

Задача простая. Нужно подтянуть данные формулой SUMIFS. Но, в одном из критериев формулы, должно быть 2-ое условие, то есть как бы 2 критерия в 1 критерии.
Более детальное описание задачи во вложении-примере. Все расписано подробно. Надеюсь на Вашу помощь.

Заранее спасибо!
Формула ВПР с выделением диапазона, ВПР
 
NOVAK, вставляйте Вашу ВПР формулу в рядом стоящий столбец и все. А потом копируйте в нужный только те, которых нет в нем уже.
Сохранения листа в сетевую папку, только значения
 
vendigo, вот есть кучочек кода под Ваши нужды. Надеюсь, разберетесь как его адаптироваь.
Код
Source.Copy
    With Dest.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial Paste:=xlPasteValues
        .Cells(1).PasteSpecial Paste:=xlPasteFormats
        .Cells(1).Select
        Application.CutCopyMode = False
    End With
Изменено: Paul Zealand - 26.03.2019 13:26:45
Копирование столбцов выбранных пользователем в ListBox в новую книгу
 
Kentavrik7, в общем я все равно не понимаю зачем Вам этот Бокс нужен. Если у Вас столбцы будут фиксирвоанными во всех 100 листах, то зачем их вообще выделять, когда можно их сразу определенить как переменные по имени шапки. То, что я Вам ранее предлагал. Вам лишь, остается это внутрь цикла закинуть, который будет помимо прочего перебирать файлы в папке и проделывать это с ними, вот собственно и все. Ну, в общем, сами смотрите )
Копирование столбцов выбранных пользователем в ListBox в новую книгу
 
Kentavrik7, ну смотрите, представим, что у Вас в папке 100 разных файлов. Вы запускаете макрос, который перебирает все эти 100 файлов и копирует из каждого какие-то столбцы в новый файл и сохраняет его в отдельную папку. Однако, Вы хотите, чтобы столбцы были не фиксированными, а была возможность выбрать в ЮзерФорме какие столбцы копировать. Получается, что ЮзерФорма у Вас выскочит ровно 100 раз, по количеству файлов и 100 раз спросит Вас какие столбцы в каждом из файлов копировать, и Вам надо будет 100 раз вручную указывать для каждого файла какие именно столбцы копировать. Разве нет? или как Вы видите весь процесс?
Изменено: Paul Zealand - 16.03.2019 07:57:47
Как с помощью VBA скопировать данные из списка поочередно в определенную ячейку
 
Юрий М, стараюсь ))
Копирование столбцов выбранных пользователем в ListBox в новую книгу
 
Kentavrik7, не думаю, что смогу помочь Вам в Вашем вопрос, ибо сам нуб. Но, просто мысли вслух. В предыдущих темах, Вы изъявляли желание, чтобы макрос сам открывал из определенной папки Н-ное количество файлов, потом копировал из каждого определенные столбцы, создавал новый файл с этими столбцами и сохранял в отдельный файл под отдельным именем в отдельную папку. А теперь, Вы зачем-то вводите ЮзерФорм, где планируете вручную указывать нужные Вам столбцы/диапозоны. В итоге, если Вы сделаете цикл под этот код, Вам в каждом файле придется вручную вписывать эти самые столбцы/диапозоны. Если файлов будет, скажем 100, а я так понял из Ваших прошлых постов их немало, то Ваша автоматизированная работа превратиться в ручной ввод 100 диапозонов, прежде, чем код закончит свою работу. Вопрос, это зачем вообще все? Или я где-то ошибся в суждении?  
Если значение подходит копируем весь столбец, МАКРОС
 
Kentavrik7, готово. Файл во вложении. В коде адрес сохранения новой книги поменяйте. Ну, и, соответственно, там диапозоны нужные Вам, имена страниц и так далее. Также, количество и имя копируемых столбцов по этой же логике можете менять как угодно. Все работает.
Изменено: Paul Zealand - 14.03.2019 13:20:05
Если значение подходит копируем весь столбец, МАКРОС
 
Kentavrik7, не могу открыть архив, файлов не видел. Но, могу предложить такую альтернативу.

Можете таким образом выделить по имени в шапке хоть 100 разных столбцов и скопировать их по очереди. Ну, а как через ВБА создать новый файл и вставить скопированное уже не сложно найти.
Код
A = WorksheetFunction.Match("TypeDoma", [SHEET1!a1:z1], 0)
B = WorksheetFunction.Match("TypUL", [SHEET1!a1:z1], 0)
C = WorksheetFunction.Match("LS", [SHEET1!a1:z1], 0)

Sheets("SHEET1").Columns(A).Copy
Sheets("SHEET1").Columns(B).Copy
Sheets("SHEET1").Columns(C).Copy
Изменено: Paul Zealand - 14.03.2019 12:20:22
Дублирование строк с изменением значения в отдельных ачейках
 
kostyaaa1976, вообще не понятно по примеру, что Вы хотите? У Вас как есть и как надо ничем не отличаются друг от друга. Идеентичные таблицы. Просто на 1 столбец меньше. Так удалите его и все. Задача не ясна.
Найти стоимость доставки для определенных моделей товаров
 
excel_lover, сделайте себе User Defined Function - VLOOKUP2, которая работает аналогично ВПР, но по 2 критериям.

Код функции внизу. Вставляете в модуль, потом в функциях UDF ищете ее. Единственный нюанс, что в отличии от ВПР диапозоны выделять надо по ячейкам, а не целиком столбец. То есть не F:F, а F1:F1000 например. В остальном все тоже самое.
Код
Function VLOOKUP2(Table1 As Range, SearchValue1 As Variant, Table2 As Range, SearchValue2 As Variant, ResultColumn As Range)
        Dim i As Integer
                                    
        For i = 1 To Table1.Rows.Count
                If Table1.Cells(i, 1) = SearchValue1 Then
                If Table2.Cells(i, 1) = SearchValue2 Then
                VLOOKUP2 = ResultColumn.Cells(i, 1)
                    Exit For
                    End If
                End If
                Next i
                  
End Function
Изменено: Paul Zealand - 06.03.2019 12:23:07
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
vikttur, название уже автор за меня придумал. Не успел )) Видимо, не подошло ничего. Нужен нормальный пример, как есть и как надо, тогда уж и гадать не нужно будет...
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
Sys, я, конечно, сам дилетант тот еще. Не совсем понимаю как Вы совместили скан штрихкода с Макросом на листе. Но, вот просто по модулю если код писать, то можно такой попробовать, может Вам это поможет догадаться как это реализовать в Вашем случае.
Код
Sub test()

x1 = 2
x2 = 3
x3 = 4
x4 = 5
x5 = 6
x6 = 7

Set y1 = Range("A" & x1)
Set y2 = Range("A" & x2)
Set y3 = Range("A" & x3)
Set y4 = Range("A" & x4)
Set y5 = Range("A" & x5)
Set y6 = Range("A" & x6)

y1.Offset(0, 6).Formula = "=NOW()"
y2.Offset(0, 6).Formula = "=NOW()"
y3.Offset(0, 6).Formula = "=NOW()"
y4.Offset(0, 6).Formula = "=NOW()"
y5.Offset(0, 6).Formula = "=NOW()"
y6.Offset(0, 6).Formula = "=NOW()"

End Sub
Изменено: Paul Zealand - 06.03.2019 08:49:43
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
В пердложенном Выше варианте, всегда в последнюю строку будет вписываться время. Я так понимаю у Вас же ограниченный и фиксированный штат сотрудников, можно объявить каждого по коду в качестве переменной. И в зависимости от штрихкода при сканированнии, чтобы он оффсетил от нужной переменной. А в целом логика та же.
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
Sys, ну вот так примерно. Только это я уже в модуль впихнул.
Код
Sub test()

Dim x As Range
Set x = Range("A" & Rows.Count).End(xlUp)
x.Offset(0, 6).Formula = "=NOW()"

End Sub
Изменено: Paul Zealand - 06.03.2019 08:09:11
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
Sys, тогда объявите последнюю ячейку в столбце А в качестве переменной, и при сканировании оффсеттьте от переменной на 6 столбцов и вставляейся текущее время - now.  
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
Sys, вот таким образом. Понятно, что сейчас он тоже время указывает, ну это Вы уже у себя дородите как Вы дату ухода там по штрихкодам извлекаете.
Код
1  Private Sub Worksheet_Change(ByVal Target As Range)
2    
3    For Each cell In Target
4       If Not Intersect(cell, Range("A:A")) Is Nothing Then
5            With cell.Offset(0, 5)
6               .Value = Now
7               .EntireColumn.AutoFit
8            With cell.Offset(0, 6)
9               .Value = Now
10               .EntireColumn.AutoFit
11            End With
12            End With
13       End If
14    Next cell
15 End Sub
Изменено: Paul Zealand - 06.03.2019 07:20:18
Журнал учета рабочего времени, Сканер, комп, эксель, и много желания
 
Sys, почему Вы просто не поместите даты Прихода и Ухода в разные столбцы? F1 - приход, G1 - уход. А в коде добавьте цикл на уход, ровно такой же как и на приход, только оффсет на 1 столбец подальше и все.
Выделение только видимых ячеек VBA
 
andronus, в Вашем файле такой код работает.
Код
1 Dim x, y As Range
2 Set x = Range("A1").End(xlDown)
3 Set y = x.Offset(-1, 2)
4 Set Z = y.Offset(1, 0)
5 Z.Select
6
7 Range(y, Z).Select
Изменено: Paul Zealand - 28.02.2019 09:43:21
Выделение только видимых ячеек VBA
 
andronus, не понимаю чего Вы мучаетесь, найти первую видимую ячейку после фильтра не составляет большого труда. Дальше если Вам нужно использовать формулу в этих ячейках, то просто объявите переменную. У меня идеентичная необходимость была на днях. Решил подобным примитивным способом.
Код
1 Dim x As Range
2 Set x = Range("A5").End(xlDown) 'в 5 строке у меня автофильтр. x в итоге всегда будет первой ячейкой когда активен фильтр
3
4 Range("A5").End(xlDown).Select 'встаешь на любой столбец, где есть автофильтр. Опускаешься на первую ячейку после фильтра
5 ActiveCell.Offset(0, 5).Select 'дальше оффсетишь куда тебе надо  
6 ActiveCell.Formula = "=VLOOKUP(" & x.Address & ",'SHEET2'!$A:$BM,19,0)" 'если в формуле надо использовать просто сделай ее переменной
7 End If
Изменено: Paul Zealand - 28.02.2019 09:31:27
Страницы: 1 2 3 4 След.
Наверх