powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание графика VBA Excel
14 сообщений из 39, страница 2 из 2
Создание графика VBA Excel
    #36375187
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что насчет проверки, когда интервал пересекает другую неделю, то тут получается неопределенность: с какой стороны недели (начало или конец) происходит такое пересечение? Например, интервал "пт-вт", пт - это пятница прошлой недели или текущей, а "вт" - это вторник текущей недели или следующей?
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36375219
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.функция не рабочая? укажите при каких входящих параметрах она [функция] "работает" неправильно?

Функция-то рабочая, но, видимо аффтар не понял, куда ее применить. :)

.Михаил.что насчет проверки, когда интервал пересекает другую неделю, то тут получается неопределенность: с какой стороны недели (начало или конец) происходит такое пересечение? Например, интервал "пт-вт", пт - это пятница прошлой недели или текущей, а "вт" - это вторник текущей недели или следующей?

Думаю, что эту проблему следует решать на уровне заполнения самой таблицы. То есть в случае "пт-вт" писать "пн-вт, пт-вс". И наглядней будет и дешевле.
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36377085
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: .Михаил.
> что насчет проверки, когда интервал пересекает другую неделю, то тут получается неопределенность: с какой стороны
> недели (начало или конец) происходит такое пересечение?

На мой взгляд, никакой неопределённости нет. У нас время всегда одной направленности из прошлого в будущее.

> Например, интервал "пт-вт", пт - это пятница прошлой недели или текущей, а "вт" - это вторник текущей недели или
> следующей?

А вот это зависит от точка отсчета. например сегодня понедельник, если у нас график уже начался, то сегодняшний
понедельник принадлежит этому интервалу и пятница - прошлой недели, а втроник текущей, но если график ещё не начался, то
пятница - текущей, а вторник - следующей

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36377821
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.lopuxiShocker.ProСобственно, первый вариант прописан в ответе Hugo - чем он вас не устраивает?

Вариант может и хороший, я его пытался его применить, но все четно. Я думал может имеется другой способ по проще

Но если нету буду биться с вариантом хуго.
Все же откладывать задачу в четвертый раз не хочется.
функция не рабочая? укажите при каких входящих параметрах она [функция] "работает" неправильно?
это заголовок моей функции
Код: plaintext
1.
Function MyFunc(ByVal mDays As String, ByVal mDay As String) As Boolean
, где
mDay - это день недели, для которого нужно определить, входит ли в интервал или нет (на Вашем рисунке это "значения" по горизонтали);
mDays - это интервал(ы) дней недели (на Вашем рисунке это "значения" по вертикали).
Эти входящие параметры путать местами нельзя. И обязательно они должны быть типа String .
Выше уже приводили конечную реализацию, приведу свою (с использованием своей функции) (на основании рисунка в 1-ом сообщении)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub MyCheck()
Const Vert =  0  ' смещение на листе по вертикали
Const Gor =  0  ' смещение на листе по горизонтали
Dim i As Long, j As Long, Count As Long, Interv As String, mDay As String
Count =  10  ' количество интервало, допустим 10
For i =  1  + (Vert +  2 ) To Count + (Vert +  2 ) 
     Interv = CStr(Cells(i, Gor +  1 ).Value)
     For j =  1  + (Gor +  1 ) To  31  + (Gor +  1 ) 
          mDay = CStr(Cells(Vert +  1 , j).Value)
          Cells(i, j).Interior.ColorIndex = IIf(MyFunc(Interv, mDay),  3 , xlNone)
     Next
Next
End Sub



Наверно она рабочая :)) но на тот момент я впервые встретился с функциями в целом. И пытаясь в нее в никнуть еще больше запутался... Сейчас я вернулся к этой задачи так как немножко подучился Тяжело воспринимать то чего еще даже в теории не знаешь. Но сейчас уже знаю, почитал ))))
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36377827
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: Shocker.Pro
> Игорь, ну ты балуешь человека.

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

> Так он совсем самостоятельно думать перестанет

Я давно согласился с выводом, что сложная реализация сложна в понимании, тем более если человек учится.



Спасибо Игорь за понимание :))
Сейчас сижу разбираюсь с предложенной твоей функции ))))
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36379873
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Игорь, спасибо Михаил )))
Разобрался, работает :)
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36380451
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сейчас перенес закрашиваемый график, на другой лист. Везде в коде прописал путь на другой лист, где график - worksheets(3) указал нужный лист.
И столкнулся с вот такой ошибкой: Метод Select из класа Range завершен не верно

формулировка кода
Код: plaintext
1.
2.
Worksheets( 3 ).Cells( 4 ,  5 ).Select 'на этой строчке пишет ошибку.
Selection.Interior.ColorIndex =  5 

Может есть какая то иная формулировка кода, которую я пока не знаю, но она бы закрашивала ячейки на других листах книги excel? :)
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36380481
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: lopuxi
> И столкнулся с вот такой ошибкой: Метод Select из класа Range завершен не верно

Это возможно из-за того, что Worksheets(3) в данный момент не выбран. Т.е. ты пытаешся выделить ячейку на неотображаемом
листе. Переделать нужно так:
Код: plaintext
Worksheets( 3 ).Cells( 4 ,  5 ).Interior.ColorIndex =  5 


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36380504
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: lopuxi
> И столкнулся с вот такой ошибкой: Метод Select из класа Range завершен не верно

Это возможно из-за того, что Worksheets(3) в данный момент не выбран. Т.е. ты пытаешся выделить ячейку на неотображаемом
листе. Переделать нужно так:
Код: plaintext
Worksheets( 3 ).Cells( 4 ,  5 ).Interior.ColorIndex =  5 




Верно, теперь все работает.
Спасибо! :)
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36382251
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
столкнулся с еще одной странной, странной проблемой. )

Эти значения берутся с листа где расположена сама кнопка.
Но график в данном случае расположен у меня на двух листах.
Код: plaintext
1.
2.
nColInterval =  2  ' Номер столбца с интервалом
RowPoint =  4    ' Номер строки с днем недели

И что интересно я специально сделал закраску разным цветом.
И в первом графике поставил одно пустое место, и оно на втором графике пропускается, н закрашивается.
А значит значения nColInterval и RowPoint берутся всегда с первого листа.

Как сделать что бы эти данный брались с каждого листа отдельно?
Задачку вложил :)) Почти закончил ее, хотя еще и бетка версия.
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36382343
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: lopuxi
> Эти значения берутся с листа где расположена сама кнопка.
> Но график в данном случае расположен у меня на двух листах.

для этого продумываешь структуру данных которая будет брать исходные данные в зависимости от заполняемого сейчас листа
Все просто, выдели данные которые будут менятся в зависимости от заполняемого листа и придумай, как их использовать в
нужный момент

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36382410
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос
> Автор: lopuxi
> Эти значения берутся с листа где расположена сама кнопка.
> Но график в данном случае расположен у меня на двух листах.

для этого продумываешь структуру данных которая будет брать исходные данные в зависимости от заполняемого сейчас листа
Все просто, выдели данные которые будут менятся в зависимости от заполняемого листа и придумай, как их использовать в
нужный момент



хахаа )))) короче я привязал, nColInterval и RowPoint к дню недели :) Главное работает :)
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36382786
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lopuxiИгорь Горбонос
> Автор: lopuxi
> Эти значения берутся с листа где расположена сама кнопка.
> Но график в данном случае расположен у меня на двух листах.

для этого продумываешь структуру данных которая будет брать исходные данные в зависимости от заполняемого сейчас листа
Все просто, выдели данные которые будут менятся в зависимости от заполняемого листа и придумай, как их использовать в
нужный момент



хахаа )))) короче я привязал, nColInterval и RowPoint к дню недели :) Главное работает :)

рано радовался, нихрина не работает так (
...
Рейтинг: 0 / 0
Создание графика VBA Excel
    #36384883
Фотография lopuxi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все сделал вчерась :))
Всем спасибо!
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание графика VBA Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]