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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2009, 17:39   #11
Govard
Пользователь
 
Аватар для Govard
 
Регистрация: 02.07.2009
Сообщений: 12
По умолчанию

Попробую по-порядку все так и ответить.
Обрабатываем 6000 ячеек В которых в среднем тысячи четыре могут нести в себе какое то число то есть наши точки. В ячейках во всех для удобства везде 1 число то есть например 7, вот в 4 тысячах ячеек у нас стоит число 7, ну какое это число в принципе это не важно. Или если для макроса поиска нужна нумерация можно все точки пронумеровать в столбик вниз если так нужно., но удобнее если это просто одно число что бы не путаться, а макрос если я правильно понял ищет именно позиционирование, то есть не пустую ячейку
Если на 1 линии лежат точки 1-2-3 и между ними одинаковое расстояние лучше конечно если линия ляжет одна и от 1 до 3, а не 1-2 и 2-3.
Точки заносятся согласно рисунка а именно вручную, но тут как бы сложности в этом нет.
На листе нет закрашенных ячеек, нет заголовка запись идет с первой строки первого столбика вправо вниз. Что бы не путаться можно задать диапазон для поиска например ширина 100 столбиков вправо, вниз 60 строк.
В примере 6 я выложил фрагмент для наглядности как все выглядит, ну естественно он больше и шире и исходная точка у нас не в строке 20 а например 60. Посмотрите пожалуйста пример.
Мы к примеру возле исходной точки в этом месте или в каком нибудь другом поставим потом кнопку которая будет выполнять эти все команды, ну хотелось бы во всяком случае что б так было.
Вложения
Тип файла: rar primer6.rar (12.5 Кб, 8 просмотров)
Govard вне форума Ответить с цитированием
Старый 04.07.2009, 09:10   #12
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте такой вариант:



Сначала нажимаете желтую кнопочку, потом - зелёную.
Стартовую точку можете перетащить мышкой в любую ячейку.
EducatedFool вне форума Ответить с цитированием
Старый 04.07.2009, 12:44   #13
Govard
Пользователь
 
Аватар для Govard
 
Регистрация: 02.07.2009
Сообщений: 12
Хорошо Круто

Ого, ничего себе. Нет слов, круто. Единственное, ф-ция поиска как мне кажется немного ошибается то есть есть и верные линии то есть точки на одинаковом расстоянии а есть линия проводится там где точки лежат на 1 прямой но от исходной на разных расстояниях друг от друга, что есть ошибка.
В верхней строке константа число строк и столбцов можно менять в большую сторону? например 100 и 60, и количество точек, как я понял k = 3 можно поставить например 10 будет оно искать?
Можно я уберу ф-цию случайного выбора точек? это не повлияет на другие ф-ции? А вообще задумка решения задачи просто восхитительна. Вы гений.
Govard вне форума Ответить с цитированием
Старый 04.07.2009, 12:58   #14
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
ф-ция поиска как мне кажется немного ошибается то есть есть и верные линии то есть точки на одинаковом расстоянии а есть линия проводится там где точки лежат на 1 прямой но от исходной на разных расстояниях друг от друга, что есть ошибка.
Я совсем забыл, что точки должны находиться на равных расстояниях...
Поэтому просто ищутся точки, лежащие на одной прямой.

Цитата:
В верхней строке константа число строк и столбцов можно менять в большую сторону?
Да, конечно.

Цитата:
k = 3 можно поставить например 10 будет оно искать?
Это коэффициент заполнения поля случайными точками. Чем больше число, тем меньше точек создаётся.

Цитата:
Можно я уберу ф-цию случайного выбора точек? это не повлияет на другие ф-ции?
Убирайте. Никак не повлияет.
Но помните, что в данной версии макроса ячейки с жирным шрифтом не обрабатываются.
Поэтому надо производить очистку форматирования ячеек перед рисованием линий.

Вообще, это была лишь тестовая версия макроса. Вряд ли Вам удастся применить её к реальным данным без существенной переделки.
EducatedFool вне форума Ответить с цитированием
Старый 04.07.2009, 13:16   #15
Govard
Пользователь
 
Аватар для Govard
 
Регистрация: 02.07.2009
Сообщений: 12
По умолчанию

Я понял спасибо большое, а можно как то дополнить что бы они были на равных расстояниях и добавить еще одно условие такое как *Линия должна проводится если точки лежат на одной прямой и расстояние от исходной точки одинаковое со всеми точками и задача выполнена если на линии лежит минимум четыре точки, включая исходную.
Это наверно будет полное решение задачи.

Последний раз редактировалось Govard; 04.07.2009 в 13:21.
Govard вне форума Ответить с цитированием
Старый 04.07.2009, 14:32   #16
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
если точки лежат на одной прямой и расстояние от исходной точки одинаковое со всеми точками и задача выполнена если на линии лежит минимум четыре точки, включая исходную.
Извините, такого сделать не могу.
В рамках Евклидовой геометрии такое невозможно - на одной прямой могут находиться не более 2 несовпадающих точек, равноудалённых от исходной.
EducatedFool вне форума Ответить с цитированием
Старый 04.07.2009, 15:26   #17
Govard
Пользователь
 
Аватар для Govard
 
Регистрация: 02.07.2009
Сообщений: 12
По умолчанию

То есть невозможно в коде макроса как задачу написать? Хм. Надо подумать. В примере7 я выложил по условиям наглядный пример того что имел в виду.
Вложения
Тип файла: rar primer7.rar (8.2 Кб, 9 просмотров)
Govard вне форума Ответить с цитированием
Старый 04.07.2009, 20:35   #18
Govard
Пользователь
 
Аватар для Govard
 
Регистрация: 02.07.2009
Сообщений: 12
По умолчанию

Ув. EducatedFool
С количеством точек, не ясно, но в принципе возможно задать макросу параметр что бы линии рисовались только где между точками одинаковое расстояние? А дальше может можно будет просто перетаскивать Исходную точку....
Govard вне форума Ответить с цитированием
Старый 05.07.2009, 11:38   #19
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
в принципе возможно задать макросу параметр что бы линии рисовались только где между точками одинаковое расстояние?
Возможно всё.
Но делать ничего не буду, пока не будет подробного тех.задания с примерами для различных вариантов расположения точек.

Рисунок в Примере7 не соответствует заданию из поста #15:
Цитата:
расстояние от исходной точки одинаковое со всеми точками
Или такой вариант: (И - исходная точка, * - обычная точка, _ - пустота)
И___*_*_*_*___*___*_*_*_*
Сколько в данном случае рисовать линий? Откуда, и куда?

Выяснять все эти нюансы через форум не имею ни малейшего желания.
Если есть Скайп - звоните.
Было бы чётко сформулированное задание - уже получили бы готовое решение.
EducatedFool вне форума Ответить с цитированием
Старый 05.07.2009, 21:07   #20
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот что получилось: (см. вложение)
  1. Нажимаем на красную кнопку
  2. Перемещаем стартовую точку в нужную позицию
  3. Нажимаем зелёную кнопку

Добавлена желтая кнопочка - она позволяет нарисовать линии, начинающиеся со всех желтых ячеек (стартовая точка перемещается с первой до последней ячейки желтой строки, и для каждого из положений рисуются линии)

Вложения
Тип файла: rar Пример9.rar (25.9 Кб, 10 просмотров)

Последний раз редактировалось EducatedFool; 05.07.2009 в 21:14.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуста написать макрос Kuchum-83 Microsoft Office Excel 8 22.04.2009 14:51
Помогите написать макрос!!! zmax123 Microsoft Office Excel 4 16.03.2009 14:02
Помогите написать макрос Urban Microsoft Office Excel 3 03.03.2009 22:28
Помогите написать макрос для... КотФиларет Microsoft Office Word 15 24.01.2009 23:00
Помогите написать макрос Neo007 Microsoft Office Excel 4 24.10.2008 07:25