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

Страницы: 1
Универсальный путь к файлу и ячейке, без макросов
 
Круто! Ёк-Мок, спасибо )))
Как я мало понимаю еще в экселе )) Точнее логика понятна, а синтаксис и формулы надо ботанить
Универсальный путь к файлу и ячейке, без макросов
 
Появилась идея сделать универсальный путь к файлу - он записан текстом в ячейке и его можно поменять.
Один раз его прописать где-нить типа на листе config, типа как настройка.

В приложении все работает - через ДВССЫЛ у меня появляется значение ячейки на втором листе page2!A1 - все ок, но вот только название ячейки A1 было прописано тоже как текст и, соответственно, формула не протягивающаяся. Можно ли что-нить придумать?

Без макросов.
суммпроизв и массив, как избавиться от лишнего столбца и запихнуть все в одну формулу
 
Владимир, не знал что можно вот так {2002;2115} сделать, я пытался через ИЛИ и ,естессно, не получалось, спасибо! Такая формула вообще простая и удобная.
суммпроизв и массив, как избавиться от лишнего столбца и запихнуть все в одну формулу
 
Ё-маё, сколько времени убил, чтобы понять как ИЛИ впихнуть ))
LVL, спасибо!  8)
суммпроизв и массив, как избавиться от лишнего столбца и запихнуть все в одну формулу
 
Всем привет. Что-то я туплю и не могу сообразить.
В приложении все описано. 2 столбца - коды и числа, надо просуммировать числа, по определенным кодам. Можно ли это сделать одной формулой? Чтобы все работало, приходится добавлять новый столбец, либо использовать несколько формул в одной ячейке.
Спасибо
как можно оптимизировать код VBA(слишком длинный код)?
 
EducatedFool, спасибо за подсказку ))
как можно оптимизировать код VBA(слишком длинный код)?
 
Public Sub expenses_utilit(mon As Range, year As Range, per As Range, vvod As Range, data_sales As Range, utilit As Range)  
 
Dim x(12) As String  
Dim m As Integer  
Dim i As Integer  
Dim l As Integer  
Dim j As Integer  
Dim k As Integer  
Dim cnt As Integer  
Dim rost_sal As Integer  
Dim y As Integer  
Dim revenue(2) As Single  
 
revenue(0) = 0  
revenue(1) = 0  
 
 
y = year.Value  
 
x(0) = "Январь"  
x(1) = "Февраль"  
x(2) = "Март"  
x(3) = "Апрель"  
x(4) = "Май"  
x(5) = "Июнь"  
x(6) = "Июль"  
x(7) = "Август"  
x(8) = "Сентябрь"  
x(9) = "Октябрь"  
x(10) = "Ноябрь"  
x(11) = "Декабрь"  
 
n = UBound(x)  
   
 
For i = 0 To n - 1  
   If x(i) = mon.Value Then  
       m = i  
   End If  
Next  
 
k = n - m + n * (per.Value - 1)  
 
cnt = m  
index_infl = 0  
H = 4  
 
 
Do While k > 0  
 
   If (k <= n - m + n * (per.Value - 1) - data_sales.Value + 1) Then  
 
       utilit.FormulaR1C1 = "=R[1]C*R[2]C*Initial!R25C5"
       With utilit  
           .NumberFormat = "#,##0"  
           .Interior.ColorIndex = 15  
           .Font.Name = "Times New Roman"  
           .Font.Size = 10  
       End With  
 
    revenue(0) = revenue(0) + utilit  
 
       
   If (vvod.Value = "Год") Then  
       Columns(H).Hidden = True  
   Else  
       Columns(H).Hidden = False  
   End If  
 
Else  
       utilit.Formula = "0"  
       With utilit  
           .NumberFormat = "#,##0"  
           .Interior.ColorIndex = 15  
           .Font.Name = "Times New Roman"  
           .Font.Size = 10  
       End With  
       energy.Formula = "0"  
       With energy  
           .NumberFormat = "#,##0"  
           .Interior.ColorIndex = 2  
           .Font.Name = "Times New Roman"  
           .Font.Size = 10  
       End With  
 
   If (vvod.Value = "Год") Then  
       Columns(H).Hidden = True  
   Else  
       Columns(H).Hidden = False  
   End If  
 
End If  
 
       Set utilit = utilit.Offset(0, 1)  
 
   cnt = cnt + 1  
 
   If cnt >= n Then  
       H = H + 1  
       cnt = 0  
         
       utilit = revenue(0)  
       With utilit  
           .NumberFormat = "#,##0"  
           .Interior.ColorIndex = 15  
           .Font.Name = "Times New Roman"  
           .Font.Size = 10  
       End With  
 
       revenue(0) = 0  
         
       y = y + 1  
 
       Set utilit = utilit.Offset(0, 1)  
 
   End If  
 
       k = k - 1  
       H = H + 1  
 
Loop  
 
For l = k + 1 To 7 * 12  
 
   utilit.Clear  
   With utilit  
       .Interior.ColorIndex = 2  
   End With  
   Set utilit = utilit.Offset(0, 1)  
     
Next  
 
End Sub  
 
Вот код программы. В зависимости от заданных параметров выводит структуру по месяцам или по годам. Это издержки(затраты). В первой строчке у меня зарплаты - с января и 48 мес - выводятся зарплаты. Во второй строчке - оборудование тоже, самое, только там уже нужна формула(не ссылка на зп, как в первом случае).  
 
Получается, что для всех нужных строк будет одинаковый код, кроме самой формулы:  
utilit.FormulaR1C1 = "=R[1]C*R[2]C*Initial!R25C5"
 
В аргументе Sub формула не передается(либо я синтаксис плохо знаю), была идея рассчитать формулы и значения вписать в другие строки(скрытые), а потом просто передавать на формулу, а только значение ячейки - может можно проще все сделать?
как можно оптимизировать код VBA(слишком длинный код)?
 
Добрый день!  
Имеется несколько Sub, которые имеют одинаковые алгоритмы, но разные формулы:  
 
Public Sub sales(bill as Range)  
...  
...  
if ...  
...  
while ...  
 
bill.Value = "=Sales_source!F6"  
 
...  
...  
 
можно ли как-то передавать в Sub - формулы или названия ячеек?!  
 
чтобы было так  
 
call sales(bill, "=Sales_source!F6")  
call sales(bill, "=R[1]C*R[2]C*Initial!R25C5")
 
Т.е. чтобы Sub sales был один, а сейчас у меня их 30шт(каждый с разной формулой) и в каждом по 40строк кода?  
 
Могу выслать конкретный пример.  
Спасибо!
Как инкрементировать дату?!
 
А при использовании  
FormulaR1C1  
и  
r1 = r1.Offset()  
не должен ли инкрементироваться в дате #1/1/2012# первый символ?!  
Вообще у меня случайно как-то получилось(Наподобии AutoFill), но начал подчищать мусор и видимо что-то удалил ((((  
Терь не пойму как у меня так получилось  
 
 
а если увеличивать месяц, то что можно добавить ?! перевести дату в общей формат и добавить 30?! Тока дней где-то 30, где-то 31
Как инкрементировать дату?!
 
Всем привет!  
Подскажите, как можно инрементировать дату на VBA  
что было так:  
 
         янв.12    фев.12   мар.12  и до значения указанного в ячейке(допустим 1 год)  
 
Я делаю так  
 
Dim r1 As Range  
Dim dt As Date  
Dim i As Integer  
 
Set r1 = Range("A1")  
r1.NumberFormat = "mmm-yy"  
 
dt = #1/1/2012#  
 
for i = 1 to (сколько задано лет)  
r1.Select  
r1.FormulaR1C1 = dt  
Set r1 = r1.Offset(0, 1)  
next  
 
Получается так:  
создается именно столько сколько надо ячеек, но везде пишется янв.12  
почему не инкрементируется дата?!  
 
 
AutoFill не поможет, т.к. не понятно до какой ячейки автофилить.  
Если мой способ вообще не должен работать, то подскажите, как вообще можно решить мою задачу.  
 
Дано:  
Начал мес    март - значения меняются  
Начал год    2012 - значения меняются  
Срок проекта 2    - значения меняются  
 
Ннадо:  
 
Мар.12   Апр.12 .... Фев.14
Страницы: 1
Наверх