Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Создание "сложных" правил для выделения ячеек в excel 2016

Ответить
Настройки темы
2016 - Создание "сложных" правил для выделения ячеек в excel 2016

Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


у нас на работе поставили турникет и всем раздали карточки с чипами. Этот турникет через програму генерирует отчеты в excel файл. Шапку документа не бирём в счет, одна строка содержит точное время, направление (вход/выход), номер карточки и имя владелица. Мне надо сделать красный фон всех ячеек ряда (до владелица карточки) в тех случеях если сотрудник имеет вход поже 08:35:00 или выход ранише 17:25:00. Хочется автоматизировать процес ибо сотрудников 100+ и обрабатывать вручную всё выходит муторно. Прикрепляю документ для ваших опытов.14. Judecatori.xlsx

Отправлено: 00:53, 20-12-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Tolea3:
Iska, скриптик сделаете? »
Попробуем.

Отправлено: 08:46, 23-12-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Попробовал. За-ши-бись: The conditional formatting may be set incorrectly when you use VBA in Excel (Last Updated: 8/01/2017), четыре часа псу под хвост.

Теперь пробуйте Вы:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const xlDown        = &HFFFFEFE7
Const xlToRight     = &HFFFFEFBF

Const xlExpression  = 2


Dim strSourceFile
Dim objFSO


If WScript.Arguments.Count = 1 Then
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	
	strSourceFile = objFSO.GetAbsolutePathName(WScript.Arguments.Item(0))
	
	If objFSO.FileExists(strSourceFile) Then
		Select Case LCase(objFSO.GetExtensionName(strSourceFile))
			Case "xls", "xlsx"
				With WScript.CreateObject("Excel.Application")
					With .Workbooks.Open(strSourceFile)
						With .Worksheets.Item(1).Range("B7")
							If .Value = "Время" Then
								With .Parent.Range(.Offset(1, 0), .Offset(1, 0).End(xlDown))
									.Value = .Value
									
									With .Parent.Range(.Offset(0, -1), .End(xlToRight))
										.Select
										
										With .FormatConditions
											.Delete
											.Add(xlExpression, , "=ИЛИ(И($C9 = ""вход""; $B9 > " & CDbl(#08:35:00#) & "); И($C9 = ""выход""; $B9 < " & CDbl(#17:25:00#) & "))").Interior.ColorIndex = 40
										End With
									End With
								End With
								
								.Parent.Range("A1").Select
							Else
								WScript.Echo "Can't find value [Время] in [B7] cell."
								.Select
								.Application.Visible = True
								
								WScript.Quit 4
							End If
						End With
						
						.Save
						.Close
					End With
					
					.Quit
				End With
			Case Else
				WScript.Echo "Probably source file [" & strSourceFile & "] not an Excel Workbook."
				WScript.Quit 3
		End Select
	Else
		WScript.Echo "Can't find source file [" & strSourceFile & "]."
		WScript.Quit 2
	End If
	
	Set objFSO = Nothing
Else
	WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file>"
	WScript.Quit 1
End If

WScript.Quit 0

Я всё же внёс значимые на мой взгляд изменения:
  • время в исходном формате текстовых строк я по-прежнему считаю правильным преобразовывать в численные значения;
  • поэтому в формуле сравниваются не строки текста, а численные значения времени;
  • я заменил в формуле арифметическое сложение логических значений на функцию Рабочего листа «ИЛИ()»;
  • раздражающий красный цвет заменил на бледно-оранжевый.
и попутно обнаружил, что некоторые вместо выхода делают ещё один вход:
Скрытый текст
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:59, 23-12-2017 | #12


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, выдается ошибка при переносе файла .xlsx на .vbs
Видео с ошибкой

Отправлено: 23:14, 23-12-2017 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Tolea3:
Iska, выдается ошибка при переносе файла .xlsx на .vbs »
Старый добрый Notepad++, не умеющий толком работать с кодировками .

Tolea3, 00:45, перед вставкой текста кода. Обратите внимание, какая используется кодировка:
Скрытый текст

— UTF-8/65001 без BOM. А должна быть — ANSI/1251.

Посему, перед вставкой текста кода, выполните:
Скрытый текст

Дальше «по тексту».

P.S. Я пользую редактор Far Manager'а:
Скрытый текст


Это сообщение посчитали полезным следующие участники:

Отправлено: 04:06, 24-12-2017 | #14


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
UTF-8/65001 без BOM. А должна быть — ANSI/1251. »
Заработало, спс вам огромное

Отправлено: 03:56, 26-12-2017 | #15


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать



Iska, Здраствуйте. Вы мне сильно помогли с тем скриптом для выевления сотрудников когда приходят позно или уходят рано с работы. Но до того как применить ваш скрипт я еше делаю некие манипуляции с файлом потом применяю скрипт. Вожно ль автоматизировать и деиствия которые я делаю до приминения скрипта?

Я сам не начальник, а обычный сотрудник и есль я в отпуске или заболею или уиду с работы вопше то начальникам будет туго так как они не шарят в excell. Я хочу что бы из программы сгенерировал отчет, приминил скрипт и всё готова, осталось тока звать на ковер провинившийся.19. Judecatori — original.xlsx

Отправлено: 05:20, 26-12-2017 | #16


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Итак:
  1. Удалить или скрыть столбцы C, E, F (тип события Вам не важен?).
  2. Сделать автоподбор ширины столбцов.
  3. Убрать обрамление границ строк 3:5.
  4. Снять заливку с шапки таблицы (Зачем снимать? Можно просто сделать более бледный цвет).
  5. Отсортировать таблицу по Таб. №, Дата, Время (а не по одному ФИО).
  6. Оставить в списке строк таблицы только по первому и последнему появлению Таб. №.
?

Tolea3, чей туфля? В смысле — чем формируется отчёт? Дабы не выполнять лишнюю работу — поищите в настройках отчёта пункт наподобие «Формировать только первое и последнее появление ключа».

Цитата Tolea3:
приминил скрипт и всё готова, осталось тока звать на ковер провинившийся »
Э… может пусть сразу и выговор с занесением распечатывает — ну, чтоб два раза не вставать?

Отправлено: 07:58, 28-12-2017 | #17


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать



Iska, в настроиках покавырялса ничго путного не нашёл и даже специалистам которые устанавливали систему звонил и спрашивал, говорят нету тут нужных мне функции
Вот эта софтина выдаёт отчёт
Скрин

Отправлено: 18:11, 28-12-2017 | #18


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Tolea3:
в настроиках покавырялса ничго путного не нашёл и даже специалистам которые устанавливали систему звонил и спрашивал, говорят нету тут нужных мне функции »
Tolea3, странно. Во всех мною ранее виденных подобное наличествовало. Можете озвучить данную претензию тем специалистам.

А что по остальным вопросам (кроме последнего), которые выше?

Отправлено: 20:26, 28-12-2017 | #19


Аватара для Tolea3

Пользователь


Сообщения: 87
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:34, 28-12-2017 | #20



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Создание "сложных" правил для выделения ячеек в excel 2016

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
18.03.2016 IT'S MOBILE "DOS" TIME. 640KB of memory "ought to be enough for anybody." mrcnn Флейм 0 18-03-2016 06:31
[решено] При открытие "vk.com", "выкидывает" на страницу для "разморозки страницы" sovenok Лечение систем от вредоносных программ 17 21-11-2013 04:09
Создание "Прогресса" на время работы "InetGetSize" sashadeg AutoIt 24 30-09-2009 15:26
Обход "правил" в w2000 server Domine Защита компьютерных систем 2 09-11-2003 00:59




 
Переход