Показать полную графическую версию : Условное форматирование дробной части
Exel 2003
Не нашёл как можно сделать такое:
Если дробная часть числа равна нулю, то отображать только скажем целое или 1 знак поле запятой. Т.е. получается условное форматирование, то там нет таких вариантов
Или я слишком многого хочу?
Спасибо
P.S. Может на визуал бейсике можно как-то реализовать?
А если не равна?
Option Explicit
Sub Sample()
Dim objRange As Range
For Each objRange In Selection
If Int(objRange.Value) = objRange.Value Then
objRange.Font.ColorIndex = 3
objRange.NumberFormat = "#,##0.0"
Else
objRange.Font.ColorIndex = 10
objRange.NumberFormat = "General"
End If
Next objRange
End Sub
А если не равна? »
тогда ничего не делать.
А как такой макрос применительно ко всей таблице сделать?
Если я правильно понимаю, это надо выделить необходимый диапазон ячеек и выполнить этот макрос для них, так? - вроде работает, только получается и если дробная часть не нулевая, то тоже отсекает до 1 знака, а надо чтобы не трогало
Если я правильно понимаю, это надо выделить необходимый диапазон ячеек и выполнить этот макрос для них, так? »
Совершенно верно.
тогда ничего не делать. »
Фокус не выйдет: тогда ранее заданные форматы не будут соответствовать новым значениям ячеек. Потому — было сделано так:
Else
objRange.Font.ColorIndex = 10
objRange.NumberFormat = "General"
вроде работает, только получается и если дробная часть не нулевая, то тоже отсекает до 1 знака, а надо чтобы не трогало »
Не отсекает. Если у Вас отсекает — выкладывайте Ваш файл, укажите ячейку, посмотрим.
Maestro, выделите диапазон, создайте правило для условного форматирования:
=(A1-ЦЕЛОЕ(A1))=0 и задавайте формат
Не отсекает. Если у Вас отсекает — выкладывайте Ваш файл, укажите ячейку, посмотрим. »
Вот http://clip2net.com/s/6yDA4d
файл: http://rghost.ru/51531181
Maestro, лучше воспользуйтесь советом (http://forum.oszone.net/post-2285648.html#post2285648) коллеги okshef. Это работает.
Вот http://clip2net.com/s/6yDA4d
файл: http://rghost.ru/51531181 »
Вот как выглядит у меня после исполнения макроса:
http://imageshack.com/a/img585/1521/1xoj.png
Если расширить столбцы, то виден ещё один знак:
http://imageshack.com/a/img5/4926/vub5.png
Формат ячейки — «General» («Общий»), как и указано тут:
If Int(objRange.Value) = objRange.Value Then
objRange.Font.ColorIndex = 3
objRange.NumberFormat = "#,##0.0"
Else
objRange.Font.ColorIndex = 10
objRange.NumberFormat = "General"
End If
Что не так?
Maestro, а что вам в моем способе не нравится? Замените A1 на D9, и все получится
okshef, всё нормально в предложенном Вами способе. Разве что сформулировано несколько отлично — «правило» вместо наличествующих «Условие» → «Формула». Меня, скажем, это и ввело поначалу в заблуждение, и я было решил (как можно судить по удалённому сообщению), что сие доступно только в более новых версиях Excel.
Iska, я, конечно же, имел в виду "правило условного форматирования" (в 2007 и выше есть пункт "Управление правилами", а то, что речь идет о 2000/XP/2003, забыл)
Ничего страшного, главное, что сие работает ;). Я вот, увы, не сообразил, что это можно использовать.
Всем спасибо огромное за помощь. Хорошо когда есть добрые и опытные люди, готовые помочь советом. Я очень признателен.
Я просто помогаю супруге по работе. Хочу что бы все отчёты можно было сделать одной или двумя кнопками и не париться тупо с калькулятором - Exel сильная штука.
Вот для полного счастья если бы ТАКОЕ можно было реализовать:
1. Отформатировать ячейки в нужном диапазоне с заданной точностью дробной части
2. Проанализировать все ячейки по столбцам в опр. диапазоне на предмет незначащих нулей в дробной части и отформатировать ячейки по последней значащей цифре в дробной части
3. Выявить ячейку(ячейки) с самым большим количеством значащих цифр в дробной части в обрабатываемом столбце
4. Отформатировать данный столбец по максимальной ширине найденной ячейки (ячеек), т.е. чтобы при печати на лист помещалось и руками каждый раз не надо было ширину столбцов подгонять
Если для этого надо переходить на более новую версию Офиса - нет проблем. 2007 не очень мне что-то, а вот 2010 запросто. Тогда надо будет переносить с другую ветку - перенесём. Если в 2003 получится - вообще здорово
Спасибо.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC