Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание графика операционного в календаре - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Создание графика операционного в календаре
eldarmamratov Дата: Четверг, 18.07.2024, 10:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

2020
Коллеги и не коллеги, доброго времени суток!

Ситуация такая: пытаюсь создать в эксельке инструмент для планирования и отслеживания операционного процесса по работе нашей компании.

Краткое описание: Есть сводная таблица: в столбце находятся 4-5 клиентов. По каждому клиенту имеется набор одинаковых операций по перегрузке груза на терминале.
Всего для планирования в календаре имеется 15 операций которые идут друг за другом приблизительно. При этом некоторые из них не могут производиться в один день у нескольких клиентов.
Теперь, я решил идти по порядку. 1 - я пронумеровал операции от 1 до 15 в столбце I. Сделал код так, чтобы он находил в столбце I число 1. он его находит. дальше он должен проверять строку числа 1 от столбца J и далее вправо на наличие не пустых ячеек и красить их в желтый. далее был план после этого сделать так, чтобы он отрисовывал график как мне надо. Но он не находит мне не пустую ячейку справа от числа 1. Что делать я не знаю, потому что я не очень умен пока что в макросах. Есть кто может помочь по доброте своей душевной?

То что уже есть ниже.
Саму таблицу для визуального подкрепления вложил.

[vba]
Код
Sub HighlightNonEmptyCellsAfter1InColumnI()
Dim ws As Worksheet
Dim lastRow As Long, lastColumn As Long
Dim currentRow As Long, currentColumn As Long
Dim startColumn As Long
Dim cellValue As Variant
Dim foundCell As Range
Dim found As Boolean

Set ws = ThisWorkbook.Sheets("Grain Partners")

lastRow = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

Set foundCell = ws.Range("I1:I" & lastRow).Find(What:=1, LookIn:=xlValues, LookAt:=xlWhole)

If Not foundCell Is Nothing Then
MsgBox "Найдена ячейка с числом 1 в строке " & foundCell.Row

startColumn = foundCell.Column + 1

found = False

For currentColumn = startColumn To lastColumn
cellValue = ws.Cells(foundCell.Row, currentColumn).Value
If Not IsEmpty(cellValue) And Len(cellValue) > 0 Then
ws.Cells(foundCell.Row, currentColumn).Interior.Color = RGB(255, 255, 0)
found = True
End If
Next currentColumn

If Not found Then
MsgBox "Не найдено не пустых значений в строке " & foundCell.Row & " начиная от найденной ячейки вправо."
End If
Else
MsgBox "Не найдено число 1 в столбце I."
End If
End Sub
[/vba]
К сообщению приложен файл: skvoznoe_planirovanie_multimod.xlsm (63.0 Kb)
 
Ответить
СообщениеКоллеги и не коллеги, доброго времени суток!

Ситуация такая: пытаюсь создать в эксельке инструмент для планирования и отслеживания операционного процесса по работе нашей компании.

Краткое описание: Есть сводная таблица: в столбце находятся 4-5 клиентов. По каждому клиенту имеется набор одинаковых операций по перегрузке груза на терминале.
Всего для планирования в календаре имеется 15 операций которые идут друг за другом приблизительно. При этом некоторые из них не могут производиться в один день у нескольких клиентов.
Теперь, я решил идти по порядку. 1 - я пронумеровал операции от 1 до 15 в столбце I. Сделал код так, чтобы он находил в столбце I число 1. он его находит. дальше он должен проверять строку числа 1 от столбца J и далее вправо на наличие не пустых ячеек и красить их в желтый. далее был план после этого сделать так, чтобы он отрисовывал график как мне надо. Но он не находит мне не пустую ячейку справа от числа 1. Что делать я не знаю, потому что я не очень умен пока что в макросах. Есть кто может помочь по доброте своей душевной?

То что уже есть ниже.
Саму таблицу для визуального подкрепления вложил.

[vba]
Код
Sub HighlightNonEmptyCellsAfter1InColumnI()
Dim ws As Worksheet
Dim lastRow As Long, lastColumn As Long
Dim currentRow As Long, currentColumn As Long
Dim startColumn As Long
Dim cellValue As Variant
Dim foundCell As Range
Dim found As Boolean

Set ws = ThisWorkbook.Sheets("Grain Partners")

lastRow = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

Set foundCell = ws.Range("I1:I" & lastRow).Find(What:=1, LookIn:=xlValues, LookAt:=xlWhole)

If Not foundCell Is Nothing Then
MsgBox "Найдена ячейка с числом 1 в строке " & foundCell.Row

startColumn = foundCell.Column + 1

found = False

For currentColumn = startColumn To lastColumn
cellValue = ws.Cells(foundCell.Row, currentColumn).Value
If Not IsEmpty(cellValue) And Len(cellValue) > 0 Then
ws.Cells(foundCell.Row, currentColumn).Interior.Color = RGB(255, 255, 0)
found = True
End If
Next currentColumn

If Not found Then
MsgBox "Не найдено не пустых значений в строке " & foundCell.Row & " начиная от найденной ячейки вправо."
End If
Else
MsgBox "Не найдено число 1 в столбце I."
End If
End Sub
[/vba]

Автор - eldarmamratov
Дата добавления - 18.07.2024 в 10:47
NikitaDvorets Дата: Четверг, 18.07.2024, 11:44 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 610
Репутация: 142 ±
Замечаний: 0% ±

Excel 2019
eldarmamratov, добрый день.
Цитата

Что делать я не знаю


По-видимому, найти эту ячейку и покрасить нужный диапазон в желтый цвет.

Новые операторы в макросе выделены символами в комментариях '''
К сообщению приложен файл: ew_planirovanie_operacionnogo_.xlsm (63.9 Kb)
 
Ответить
Сообщениеeldarmamratov, добрый день.
Цитата

Что делать я не знаю


По-видимому, найти эту ячейку и покрасить нужный диапазон в желтый цвет.

Новые операторы в макросе выделены символами в комментариях '''

Автор - NikitaDvorets
Дата добавления - 18.07.2024 в 11:44
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!