Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2013, 00:17   #1
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию Заливка ячеек по данным таблицы из другого листа

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

На одном листе есть табличка содержащяя данные по месту нахождения и геометрическим размерам деффектного участка. (Количество строк може меняться)

На другом листе из ячеек сформированно поле (карта дефектов), каждая ячейка имеет масштаб 10х10 мм

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

Пожалуйста помогите, заранее спасибо.
Вложения
Тип файла: rar дефектограмма.rar (6.4 Кб, 10 просмотров)
Nicolas_46 вне форума Ответить с цитированием
Старый 25.07.2013, 01:27   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Проблема в чем заключается?
Ничего сложного нет.
Я понимаю,что положение деффекта задано в полярной системе координат.
Определяете X,Y,единицы переводите в сантиметры.
номер строки=Y+ строк вниз =ширина в сантиметрах-1,номер столбца=X+количество столбцов вправо =(Длина в сантиметрах-1)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.07.2013, 01:38   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

формулы... но медленно...
метры и милиметры перевел в сантиметры. масштаб 1 см - одна ячейка.
Вложения
Тип файла: rar дефектограмма.rar (4.6 Кб, 15 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.07.2013, 01:39   #4
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

проблемма в том что не так свободно ориентируюсь в VBA, уровень не тот, могу только пример подправить под собственные нужды, но такового не нашел(
Nicolas_46 вне форума Ответить с цитированием
Старый 25.07.2013, 02:11   #5
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

IgorGO, спасибо за оперативную помошь!
в примере, который ты выслал не нашел ни одного макроса, расскажи пожалуйста каким образом реализованна задача?
То что в примере строиться не совсем то, ориентация поля нужна горизонтальная.

Наверно при сохранении количество столбцов ограничелось, я не заметил вовремя, в первом примере.

таким же образом можно будет наложить дефектные участки другого цвета из второй подобной таблицы?

Последний раз редактировалось Nicolas_46; 25.07.2013 в 02:22.
Nicolas_46 вне форума Ответить с цитированием
Старый 25.07.2013, 02:33   #6
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

я работаю в Excel 2010. Там вроде нет ограничений по количеству столбцов. Пример в виде картинки, почему-то сам файл не заливается, выделенная зеленая область размером 314х1180 ячеек.
Изображения
Тип файла: jpg Диаграмма.jpg (16.4 Кб, 130 просмотров)

Последний раз редактировалось Nicolas_46; 25.07.2013 в 02:36.
Nicolas_46 вне форума Ответить с цитированием
Старый 25.07.2013, 02:38   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а теперь с макросом. работает моментально.
Вложения
Тип файла: rar дефектограмма.rar (13.6 Кб, 23 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.07.2013, 03:26   #8
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

не понимаю как ориентировать диаграмму горизонтально.
пробовал заменить в коде vertical на horizontal но не помогло (

Так понял, что строки отвечают за построение линий границ.
Код:
'.Columns(1).Borders(xlEdgeRight).Weight = xlThin
'.Columns(c / 10 + 1).Borders(xlEdgeLeft).Weight = xlThin
Nicolas_46 вне форума Ответить с цитированием
Старый 25.07.2013, 10:32   #9
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
не понимаю как ориентировать диаграмму горизонтально.
Я бы не рекомендовал: количество столбцов заметно меньше количества строк. Ваш пример, например, занимает порядка 800 ячеек, что не позволит повернуть изображение в старых версиях Офиса.
Но вот вам вариант для версий от 2007 и выше:
Вложения
Тип файла: zip дефектограмма.zip (30.4 Кб, 10 просмотров)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 08.08.2013, 17:10   #10
Nicolas_46
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 53
По умолчанию

Господа, появилась неообходимость добавить примечение к выделенному диапозону. Чтобы текст в примечании добавлялся из ячеки (R, 2) то есть ячейки B анализируемой строки.
делал вот таким образом:
Код:
Sub закраска_красный()
 On Error Resume Next
  Dim c As Long
  
  With Worksheets(2)
    For R = 4 To Cells(Rows.Count, 3).End(xlUp).Row
      .Cells(Cells(R, 4) / 10 + 1, Cells(R, 3) * 100 + 1).Resize(Cells(R, 6) / 10, Cells(R, 5) / 10).Interior.Color = RGB(255, 0, 0)
      .Cells(Cells(R, 4) / 10 + 1, Cells(R, 3) * 100 + 1).Resize(Cells(R, 6) / 10, Cells(R, 5) / 10).Borders(xlEdgeBottom).Weight = xlThin
      .Cells(Cells(R, 4) / 10 + 1, Cells(R, 3) * 100 + 1).Resize(Cells(R, 6) / 10, Cells(R, 5) / 10).Borders(xlEdgeRight).Weight = xlThin
      .Cells(Cells(R, 4) / 10 + 1, Cells(R, 3) * 100 + 1).Resize(Cells(R, 6) / 10, Cells(R, 5) / 10).Borders(xlEdgeTop).Weight = xlThin
      .Cells(Cells(R, 4) / 10 + 1, Cells(R, 3) * 100 + 1).Resize(Cells(R, 6) / 10, Cells(R, 5) / 10).Borders(xlEdgeLeft).Weight = xlThin
      
      .Cells(Cells(R, 4) / 10 + 1, Cells(R, 3) * 100 + 1).AddComment(Cells(R, 2).Value).Size = 100
 
    Next
  End With
End Sub
Примечание вставляется, а вот текст и его размер нет(
подскажите что я делаю неправильно, пожалуйста.
Nicolas_46 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывающее окно, показывающее списком содержание ячеек другого листа Spring_me Microsoft Office Excel 14 13.11.2013 12:16
Удаление с другого листа выбранных ячеек (VBA) terredis Помощь студентам 4 25.03.2013 01:22
Ссылка ячеек одного листа на ячейки другого листа n0str0m0 Microsoft Office Excel 10 31.12.2011 12:11
Формирование таблицы на основе данных с другого листа Машуля Microsoft Office Excel 15 10.03.2010 20:38
Проверить наличие листа с данным названием Sega Microsoft Office Excel 2 05.08.2008 17:18