Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6696-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 Microsoft Excel, Нужна помощь!!! Спасибо

k1nd3rr
Sep 11 2016, 15:04
  
Пост #1



Репутация:   2  
Дух


Группа: Пользователи
Сообщений: 23
С нами с: 4-July 08


Ребята нужно помощь в Excel( я не особо силен в этой сфере) , или с формулой или макросом, кто готов помощь напишите в личку, буду очень благодарен!
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов(1 - 14)
Dr.Sydorenko
Sep 11 2016, 16:19
  
Пост #2



Репутация:   163  
Старожил
****

Группа: Пользователи
Сообщений: 2 148
С нами с: 27-June 12


Хоть бы задание описал, а то такое...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
k1nd3rr
Sep 11 2016, 16:30
  
Пост #3



Репутация:   2  
Дух


Группа: Пользователи
Сообщений: 23
С нами с: 4-July 08


(Dr.Sydorenko @ Sep 11 2016, 17:19) Перейти к цитате

Хоть бы задание описал, а то такое...

нужна помощь в макросе, чтобы оно считало от определенной даты отнимаем 180 дней и оно показало к-во поездок которые попали в этот промежуток!

Сообщение отредактировал k1nd3rr - Sep 11 2016, 17:22
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
k1nd3rr
Sep 12 2016, 12:19
  
Пост #4



Репутация:   2  
Дух


Группа: Пользователи
Сообщений: 23
С нами с: 4-July 08


Sub ggg()
Dim TheDate As Date ' Declare variables.
Dim Date180 As Date
Dim ValueDate
Dim Sum As Integer
Dim Msg
Dim sheetWithKvit As Worksheet
Set sheetWithKvit = Worksheets("Лист1")
TheDate = Range("b9")
Date180 = TheDate - 180
If Date180 >= Range("a2") And Date180 <= Range("b2") Then
ValueDate = -DateDiff("d", Range("b2"), Date180)
Range("D3").FormulaLocal = "=СУММ(C3:C9)"
Msg = Range("D3")
Sum = Msg + ValueDate
Worksheets("Лист1").Range("D2").Value = Date180
Worksheets("Лист1").Range("D4").Value = Sum
End If
' Msg = "Days from today: " & Date180
' MsgBox Msg
End Sub

http://www.ex.ua/272316129447 - ссылка на файл

где что нужно добавить? нечего не получается, помогите!!!

Сообщение отредактировал k1nd3rr - Sep 12 2016, 13:34
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kurator
Sep 12 2016, 12:50
  
Пост #5



Репутация:   171  
Java Developer
**

Группа: Пользователи
Сообщений: 672
С нами с: 22-January 08


Вообще, формулой такое не решить, так как низзя цикл написать (насколько я знаю...).
А с VBA я не сильно дружу. Поэтому набросал другое решение, оно простое, но не слишком элегантное. В приложенном файле:
А16 - стартовая дата;
С1 - Стартовая дата - 180 дней.
А1 - А14 - Даты поездок.
В16 - сумма дат, которые попадают в диапазон.
В1 - В14 - Индикатор попадает ли поездка в заданный диапазон.
Скачать файл можно отсюда

Если такое решение подходит, то его можно сделать более элегантным (например в ячейках В1 - В14 цвет шрифта сделать белым biggrin.gif ), так как этот вариант набросан на коленке за 5 минут.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
k1nd3rr
Sep 12 2016, 13:31
  
Пост #6



Репутация:   2  
Дух


Группа: Пользователи
Сообщений: 23
С нами с: 4-July 08


(Kurator @ Sep 12 2016, 13:50) Перейти к цитате

Вообще, формулой такое не решить, так как низзя цикл написать (насколько я знаю...).
А с VBA я не сильно дружу. Поэтому набросал другое решение, оно простое, но не слишком элегантное. В приложенном файле:
А16 - стартовая дата;
С1 - Стартовая дата - 180 дней.
А1 - А14 - Даты поездок.
В16 - сумма дат, которые попадают в диапазон.
В1 - В14 - Индикатор попадает ли поездка в заданный диапазон.
Скачать файл можно отсюда

Если такое решение подходит, то его можно сделать более элегантным (например в ячейках В1 - В14 цвет шрифта сделать белым biggrin.gif ), так как этот вариант набросан на коленке за 5 минут.

у тебя тут слишком все банально) нужен цикл...нужны знания VB

Сообщение отредактировал k1nd3rr - Sep 12 2016, 13:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Kurator
Sep 12 2016, 13:39
  
Пост #7



Репутация:   171  
Java Developer
**

Группа: Пользователи
Сообщений: 672
С нами с: 22-January 08


(k1nd3rr @ Sep 12 2016, 14:31) Перейти к цитате

у тебя тут слишком все банально) нужен цикл...нужны знания VB


В стартовом сообщении фигурировало "или с формулой", вот я ее и накидал... А вспоминать, как там оно в VB - лень. Может вечером гляну... d.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
k1nd3rr
Sep 12 2016, 13:41
  
Пост #8



Репутация:   2  
Дух


Группа: Пользователи
Сообщений: 23
С нами с: 4-July 08


(Kurator @ Sep 12 2016, 14:39) Перейти к цитате

В стартовом сообщении фигурировало "или с формулой", вот я ее и накидал... А вспоминать, как там оно в VB - лень. Может вечером гляну... d.gif

на тот момент я думал возможно формула мне поможет))) ошибался))))
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mega K.
Sep 12 2016, 17:11
  
Пост #9



Репутация:   29  
Активист
*

Группа: Пользователи
Сообщений: 228
С нами с: 1-July 07


=SUMIFS(C2:C9,A2:A9,"<="&D2,B2:B9,">="&D2)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Sep 13 2016, 13:15
  
Пост #10



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


где что нужно добавить? нечего не получается, помогите!!!

Что значит "не получается", блин? Ошибка какая? Начнем с того что у Вас закоментарен вывод Мессэдж бокса - он Вам нужен или как? Dim Msg не имеет типа а должен быть String. И вообще, включите Option Explicit чуть выше по коду. Это у Вас экзешник или расширение для Экселя?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Sep 13 2016, 13:27
  
Пост #11



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


Пока просто ровный код:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Сообщение отредактировал Carnifex - Sep 13 2016, 13:47
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Sep 13 2016, 13:48
  
Пост #12



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


Так. У меня код прошел без ошибок. Кстати, в ВБЕ Экселевском есть отладка если точку останова поставить и запустить код на выполнение. Щас че-то оформимс...

Сообщение отредактировал Carnifex - Sep 13 2016, 13:52
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Sep 13 2016, 14:28
  
Пост #13



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


Вот код:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Первая колонка твоего документа была принята за начало поездки, вторая - за конец. Дату, вплоть до которой нужно посчитать количество поездок вбиваешь в ячейку E2. Если не нужно всплывающее окошко - дай знать или убери сам.
Там захардкожено пару мест - мне леньки было писать фильтр значений. Если че - можно немного причесать это дело.

Сообщение отредактировал Carnifex - Sep 13 2016, 14:31
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
k1nd3rr
Sep 13 2016, 17:00
  
Пост #14



Репутация:   2  
Дух


Группа: Пользователи
Сообщений: 23
С нами с: 4-July 08


(Carnifex @ Sep 13 2016, 15:28) Перейти к цитате

Вот код:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Первая колонка твоего документа была принята за начало поездки, вторая - за конец. Дату, вплоть до которой нужно посчитать количество поездок вбиваешь в ячейку E2. Если не нужно всплывающее окошко - дай знать или убери сам.
Там захардкожено пару мест - мне леньки было писать фильтр значений. Если че - можно немного причесать это дело.

Sub ggg()
Dim TheDate As Date
Dim Date180 As Date
Dim ValueDate
Dim Sum As Integer
Dim i As Integer, w As Integer, a As Integer
Dim Msg
Dim sheetWithKvit As Worksheet

ILustRow = Cells(Rows.Count, "B").End(xlUp).Row

TheDate = Cells(ILustRow, "B")
Date180 = TheDate - 180
i = 1
w = ILustRow
Do While w > 2
w = w - 1

If Date180 >= Cells(w, "A") And Date180 <= Cells(w, "B") Then

ValueDate = -DateDiff("d", Cells(w, "B"), Date180)
a = Application.Sum(Range(Cells(w + 1, "C"), Cells(ILustRow, "C")))
'Msg = Range("D3")
Sum = a + ValueDate
Exit Do
Else

Do While w > 2

If Date180 < Cells(w, "A") Then
a = Application.Sum(Range(Cells(w, "C"), Cells(ILustRow, "C")))
Sum = a

End If
Exit Do
Loop

End If
Loop
Cells(ILustRow, "D").Value = Date180
Cells(ILustRow, "E").Value = Sum

End Sub
вот полностью рабочий код) уже разобрался, СПАСИБО!
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Carnifex
Sep 13 2016, 17:31
  
Пост #15



Репутация:   16  
Дух


Группа: Пользователи
Сообщений: 179
С нами с: 5-July 09


Ok) Пиши если че)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 14th July 2024 - 16:24
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.