Заливка ячеек по клику в excel

Обновлено: 07.07.2024

Сам код, где делаю заливку

Есть еще параллельно вопрос. Как вы убиваете процесс Excel? Нашел такое, что то типа чистилки мусорки
Но один процесс остается висеть все равно, до того, пока не закрою полностью свое приложение. Оно как бы не страшно, но все равно интересно, как можно это закрыть, чтобы пользователю дополнительные кнопки не нужно было нажимать. __________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Форматирование ячеек Excel
Добрый день! Подскажите, как программно форматировать данные в ячейках Excel? Интересует заливка.

Использование get_Range для выбора диапазона ячеек в Excel
Добрый день всем! Использую get_Range("a" + 7, "i" + 95); тут понятно все, выбирается диапазон.

Можно ли получить формат ячеек листа Excel через ADO
Собственно, возможно ли получить формат ячеек листа Excel через ADO - с данными все понятно, а.

Может ссылка есть у кого по этой теме, буду очень благодарен, если поделитесь)
З. Ы. Вообще по возможности лучше использовать генератор отчетов вместо Excel. Если это в finally все написать, то приложение будет сразу закрываться, пробовал такой вариант, но после него все равно процесс остаётся висеть, не могу понять саму логику, как работает это. Мое приложение создаёт процесс excel, он уничтожается только при неаварийном закрытии моего приложения. Если убивать сам процесс, то слетят все документы, это тоже не выход и заставлять пользователя отдельной кнопкой закрывать excel, как то не очень гуманно) Возможно как то подловить процесс закрытия именно созданного моим приложением процесса excel, и на событие типа closing, повешать уничтожение этого процесса. В excel какая то своя логика, прям 1с напоминает. Вообще я просто после выгрузки открывал файл для просмотра:

А дальше если пользователь его закрывал, то процесс исчезал из списка автоматом.

Спасибо за подсказку по решению задачи с процессом. По мастеру отчетов, вы имеете в виду report viewer, раньше как то работал с ним, в принципе неплохое решение. Но хочу excel этот добить до конца, логику не понимаю именно этого приложения, хочу залить ее зеброй))) может у вас есть наброски какие?

Добавлено через 1 минуту
Буду очень благодарен.

Решение

Вообще я имел ввиду скорее Stimulsoft/crystal/fast reports.
хочу залить ее зеброй))) может у вас есть наброски какие? Честно говоря не совсем понимаю, что вы имеете ввиду под зеброй, точнее как эта зебра должна выглядеть. При открытии в excel таблиц XML есть своеобразная зебра правда она построчная, т. е. четные строки темно-синие, а нечетные просто синие (цвет можно поменять при желании). Как вариант можете в Excel попробовать запустить в вкладка разработчика -> запись макроса затем реализуем, то что хотим в Excel останавливаем запись и смотрим получившиеся строки, может это даст вам наводку. Если не хотим делать программно можно просто создать шаблон и тупо его копировать, а затем заполнять. Спасибо большое за наводку, думаю перейду на шаблон, ну и попробую с crystal reports, вроде самые простые на сколько помню с ними работал последний раз. ЕвгенийКор, выбросите Interop на помойку, это полная хрень.
Работайте с OpenXML или проще с надстройкой ClosedXML. Спасибо. У вас случаем нет хорошей ссылочки, как с этим работать, желательно на русском языке, буду очень благодарен.

Interop ни разу не подводил.

Вообще по возможности лучше использовать генератор отчетов вместо Excel.

Ну, это спорное утверждение.

В экселе создавать шаблоны отчетов удобнее, чем в любом конструкторе любого генератора.
В экселе можно и очень удобно писать макросы
Для экселя не нужно никаких дополнительных установок на ПК клиентов - как, правило, там стоит уже офис.
Шаблоны экселя прекрасно хранятся в БД и отчеты формируеются через COM-технологию, в т.ч. на стороне клиента
В экселе есть гибкая и универсальная возможность напрямую обмениваться данными с SQL-сервером.

Минус экселя - отсутствие кроссплатформенности. Но это - единственный минус, пожалуй

Добавлено через 8 минут
Еще из бесспорных преимуществ.

Ни с одним "генераторным" отчетом нельзя работать, не имея на ПК этого самого генератора, а если он и имеется, то юзер самостоятельно этого не сделает.
Эксель же дает обычный, удобный и привычный инструмент для любых правок, добавлений. Например, легко можно вставить электронную подпись, печать и вообще любые картинки и рюшечки, поменять шрифты, цветовое оформление.
Кроме того, данные из такого отчета можно скопировать в расчетные таблицы, получить графики и т.д. Все это может сделать практически любой опытный пользователь офисного ПК.
Из Экселя легко экспортировать данные - хоть в текст, хоть в xml, хоть в БД.

Добавлено через 34 минуты
Вот, еще вспомнил

В шаблоне можно предусмотреть и формочку для ввода исходных данных для отчета (параметров).

Тогда в приложении вообще ничего не нужно - просто открывается эксель - а он уже сам все делает: получает параметры от юзера, выбирает данные из SQL-сервера (обычно - ХП), и строит отчет - красота !

Вдруг потребуется некоторая универсальность

Вариант от тезки buchlotnik , но переработанный чуток.

Вдруг потребуется некоторая универсальность

Вариант от тезки buchlotnik , но переработанный чуток. bmv98rus

Замечательный Временно просто медведь , процентов на 20.

Вариант от тезки buchlotnik , но переработанный чуток. Автор - bmv98rus
Дата добавления - 05.12.2017 в 21:21

для кого написан? Автор - buchlotnik
Дата добавления - 05.12.2017 в 21:22 Уважаемый buchlotnik, все работает так, как просил для конкретно примера.. но уже все перепробовал с заменами в коде, чтобы другой диапазон назначить.. допустим другие столбце и не со второй строки, а допустим с 10-ой..
Думал, если $A сменю на $D, то и макрос будет работать на столбце D
Надо "перекурить".. а то вывих мозга от такого напряга получу Уважаемый buchlotnik, все работает так, как просил для конкретно примера.. но уже все перепробовал с заменами в коде, чтобы другой диапазон назначить.. допустим другие столбце и не со второй строки, а допустим с 10-ой..
Думал, если $A сменю на $D, то и макрос будет работать на столбце D
Надо "перекурить".. а то вывих мозга от такого напряга получу ovechkin1973
Думал, если $A сменю на $D, то и макрос будет работать на столбце D
Надо "перекурить".. а то вывих мозга от такого напряга получу Автор - ovechkin1973
Дата добавления - 05.12.2017 в 21:34 если $A сменю на $D, то и макрос будет работать на столбце D так и должно быть, показывайте в файле как что меняли если $A сменю на $D, то и макрос будет работать на столбце D так и должно быть, показывайте в файле как что меняли если $A сменю на $D, то и макрос будет работать на столбце D так и должно быть, показывайте в файле как что меняли Автор - buchlotnik
Дата добавления - 05.12.2017 в 21:44 это уже похоже клиника полуночника.. Попробовал еще раз.. я оказывается хочу слишком в правом столбце AC заставить работать макрос.. а оказывается он дальше столбца Z не хочет работать У меня в рабочем файле надо это макрос заставить работать в столбцах, которые именованы двумя буквами..

это я понял ограничение, чтобы макрос работал ниже 9ой строки. А в самом первом варианте (опять же не умом, а практическими экспериментами) выявил, что в столбцах A и B со второй строки меняются значения, а если назначить допустим на столбец C, на котором нет заголовка в первой строке, то даже в С1 ставятся значения.. Или если заголовок в столбце будет в двух строках, то изменения от макроса будут только с 3-й строки работать.

И прошу прощения.. ответы буду завтра читать.. силы VBA все вымотал.. да и на работу через несколько часов вставать уже.

это уже похоже клиника полуночника.. Попробовал еще раз.. я оказывается хочу слишком в правом столбце AC заставить работать макрос.. а оказывается он дальше столбца Z не хочет работать У меня в рабочем файле надо это макрос заставить работать в столбцах, которые именованы двумя буквами..

это я понял ограничение, чтобы макрос работал ниже 9ой строки. А в самом первом варианте (опять же не умом, а практическими экспериментами) выявил, что в столбцах A и B со второй строки меняются значения, а если назначить допустим на столбец C, на котором нет заголовка в первой строке, то даже в С1 ставятся значения.. Или если заголовок в столбце будет в двух строках, то изменения от макроса будут только с 3-й строки работать.

И прошу прощения.. ответы буду завтра читать.. силы VBA все вымотал.. да и на работу через несколько часов вставать уже. ovechkin1973

это уже похоже клиника полуночника.. Попробовал еще раз.. я оказывается хочу слишком в правом столбце AC заставить работать макрос.. а оказывается он дальше столбца Z не хочет работать У меня в рабочем файле надо это макрос заставить работать в столбцах, которые именованы двумя буквами..

это я понял ограничение, чтобы макрос работал ниже 9ой строки. А в самом первом варианте (опять же не умом, а практическими экспериментами) выявил, что в столбцах A и B со второй строки меняются значения, а если назначить допустим на столбец C, на котором нет заголовка в первой строке, то даже в С1 ставятся значения.. Или если заголовок в столбце будет в двух строках, то изменения от макроса будут только с 3-й строки работать.

И прошу прощения.. ответы буду завтра читать.. силы VBA все вымотал.. да и на работу через несколько часов вставать уже. Автор - ovechkin1973
Дата добавления - 05.12.2017 в 22:05

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

Изменить цвет ячейки при нажатии на ячейку с кодом VBA

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

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


2. в Microsoft Visual Basic для приложений окна, скопируйте и вставьте приведенный ниже код VBA в Код: окно.

VBA: изменить цвет ячейки при нажатии на нее

3. Нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

Затем, когда вы дважды щелкните ячейку, она будет окрашена в красный цвет. И когда вы щелкаете правой кнопкой мыши по ячейке, она будет окрашена в зеленый цвет. Смотрите скриншот:


Один щелчок, чтобы выделить строку и столбец выбранной ячейки в Excel:

Kutools for Excel's Макет для чтения Утилита помогает быстро выделить строку и столбец выбранной ячейки в Excel, как показано в демонстрации ниже.
Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная трасса)

Измените выделенный цвет, когда ячейки выбраны с помощью кода VBA

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

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


2. в Microsoft Visual Basic для приложений окна, скопируйте и вставьте приведенный ниже код VBA в Код: окно.

Код VBA: изменить выделенный цвет выбранного диапазона

3. Нажмите другой + Q ключи одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

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


Выделите всю строку и столбец активной ячейки с помощью Kutools for Excel

Если вы имеете дело с большим листом, необходимо выделить всю строку и столбец активной ячейки, чтобы облегчить чтение. Здесь Макет для чтения полезности Kutools for Excel могу помочь тебе.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Нажмите Kutools > Макет для чтения. Смотрите скриншот:


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


Внимание: Вы можете изменить настройки макета чтения в зависимости от ваших потребностей, как показано на скриншоте ниже.


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

Предположим, вы хотите заштриховать / раскрасить все пустые ячейки (или непустые ячейки) в указанном диапазоне в Excel. Как в Excel можно заполнить или заштриховать все пустые ячейки за раз?

  • Заполните все пустые / непустые ячейки с помощью функции Перейти к специальной
  • Затенение всех пустых / непустых ячеек с помощью условного форматирования
  • Цвет непустых ячеек с помощью Kutools for Excel (всего 2 ступени)

Заполните все пустые / непустые ячейки с помощью функции Перейти к специальной

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

1. Выберите указанный диапазон, в котором вы закрасите все пустые ячейки (или непустые ячейки).


2. Нажмите Главная > Найти и выбрать > Перейти к специальному… Чтобы открыть Перейти к специальному диалоговое окно. А затем проверьте Пробелы в этом диалоговом окне, см. снимок экрана:
Внимание: Для выбора всех непустых ячеек проверьте Константы опцию.

3. Нажмите OK. И все пустые ячейки (или непустые ячейки) были выбраны в указанном диапазоне.


4, Затем нажмите Главная > Цвет заливки и выберите цвет, который хотите заполнить. Смотрите скриншот:

И все пустые ячейки (или непустые ячейки) заштрихованы.

Затенение всех пустых / непустых ячеек с помощью условного форматирования

Вы также можете применить условное форматирование для затенения пустых (или непустых) ячеек. С помощью этого метода, когда вы вводите данные в пустую ячейку (или удаляете данные из непустой ячейки), цвет затенения в этой ячейке будет восстановлен до цвета по умолчанию. Вы можете сделать следующее:

1. Выберите диапазон, в котором вы закрасите все пустые (или непустые) ячейки. Смотрите скриншот:

2. Затем нажмите Главная > Условное форматирование > Новое правило для открытия Новое правило форматирования диалоговое окно.


3. В открывшемся диалоговом окне нажмите Используйте формулу, чтобы определить, какие ячейки следует форматировать. в Выберите тип правила поле и введите формулу = A1 = "" (A1 - первая ячейка в указанном диапазоне) в Формат значений, где эта формула истинна и нажмите Формат кнопку.
Внимание: Чтобы закрасить все непустые ячейки в указанном диапазоне, введите эту формулу = A1 <> "" в Формат значений, где эта формула истинна пунктом.


4. Тогда в Формат ячейки диалоговом окне выберите цвет заливки на Заполнять и нажмите OK кнопку.

5. И он вернется в Новое правило форматирования диалоговом окне вы можете предварительно просмотреть цвет в предварительный просмотр поле и нажмите OK кнопку, чтобы применить это условное форматирование.
Все пустые ячейки (или непустые ячейки) в указанном диапазоне были затенены. Когда вы вводите данные в цветные пустые ячейки (или удаляете данные из непустых ячеек), ячейка возвращается к цвету фона по умолчанию.

Цвет непустых ячеек с помощью Kutools for Excel

Этот метод поможет вам применить Kutools for Excel's Выбрать непустые ячейки утилита для выбора всех непустых ячеек в указанном диапазоне, а затем легко их раскрашивать в Excel.

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия сейчас!


1. Выберите диапазон, в котором вы закрасите все непустые ячейки вместе, и нажмите Kutools > Выберите > Выбрать непустые ячейки. Смотрите скриншот:

Затем появится диалоговое окно, в котором будет указано, сколько непустых ячеек было выбрано. Щелкните значок OK кнопку, чтобы закрыть его. Смотрите скриншот выше.


2. Добавьте цвет заливки для выбранных ячеек, нажав Главная > Цвет заливки и выберите цвет заливки из раскрывающегося списка. Смотрите скриншот:

док цвет непустых ячеек 4

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

Читайте также: