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

Вход

Регистрация

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

 

= Мир MS Excel/Выборка данных из базы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выборка данных из базы (Макросы/Sub)
Выборка данных из базы
uristman Дата: Понедельник, 26.05.2014, 16:20 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Господа !

Есть файлик,в нём 2 листа(база и заказ), подскажите неучу каким образом можно оптимизировать работу.
1. В базе есть код и название города(каждый город выделен определённым цветом).
2. Есть заказ, где тоже есть код и название города(без цветового заполнения).

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

Извиняюсь если что не так написал, в Exele работаю как пользователь.
К сообщению приложен файл: 9855994.xls (27.5 Kb)
 
Ответить
СообщениеГоспода !

Есть файлик,в нём 2 листа(база и заказ), подскажите неучу каким образом можно оптимизировать работу.
1. В базе есть код и название города(каждый город выделен определённым цветом).
2. Есть заказ, где тоже есть код и название города(без цветового заполнения).

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

Извиняюсь если что не так написал, в Exele работаю как пользователь.

Автор - uristman
Дата добавления - 26.05.2014 в 16:20
Hugo Дата: Понедельник, 26.05.2014, 16:52 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

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


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеОтвет на "как сделать" -
Можно закрашивать условным форматированием, используя пользовательскую функцию.
Но это неудобно в использовании, а если данных много - то тяжело.
Проще делать макросом (использовать массив и словарь) - вот только непонятно к чему привязан цвет - к коду или городу? Судя по файлу - к городу, судя по вопросу - к коду...
Но в любом случае - красить долго если данных много.

Автор - Hugo
Дата добавления - 26.05.2014 в 16:52
Dмитрий Дата: Понедельник, 26.05.2014, 18:52 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Если цвет привязан к коду (что, судя по записям нелогично), то можно так. По коду значит по коду. При вводе данных в ячейку, меняем цвет. Если надо изменить цвет разом в большом количестве ячеек, то допишите еще один цикл.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("B2:B100"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
r = Target.Row
lr = Sheets("база").Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To lr Step 1
If Sheets("база").Cells(i, 2) = Cells(r, 2) Then
Col = Sheets("база").Cells(i, 3).Interior.ColorIndex
Cells(r, 3).Interior.ColorIndex = Col
End If
Next i
End Sub
[/vba]
[p.s.]не проверял, но по идее должно работать


Сообщение отредактировал Dмитрий - Понедельник, 26.05.2014, 18:53
 
Ответить
СообщениеЕсли цвет привязан к коду (что, судя по записям нелогично), то можно так. По коду значит по коду. При вводе данных в ячейку, меняем цвет. Если надо изменить цвет разом в большом количестве ячеек, то допишите еще один цикл.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("B2:B100"), Target) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
r = Target.Row
lr = Sheets("база").Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To lr Step 1
If Sheets("база").Cells(i, 2) = Cells(r, 2) Then
Col = Sheets("база").Cells(i, 3).Interior.ColorIndex
Cells(r, 3).Interior.ColorIndex = Col
End If
Next i
End Sub
[/vba]
[p.s.]не проверял, но по идее должно работать

Автор - Dмитрий
Дата добавления - 26.05.2014 в 18:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выборка данных из базы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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