Форум программистов, компьютерный форум, киберфорум
Bati4eli
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

VBA - Редактор исходных данных + использование class_module

Запись от Bati4eli размещена 07.11.2012 в 12:35
Показов 4796 Комментарии 0

Во вложении лежит весьма интересный файл!
В нем вы найдете модули с кодами для:
  • Сбора фильтров текущего положения курсора на сводной таблице
  • Работы с класс модулями или обработка событий массива элементов на форме
  • Выбора даты из всплывающего окна
Данный файл в несколько раз увеличивает скорость обращения к исходным данным пользователем прямо из сводной таблицы! Достаточно дважды кликнуть по области значений на сводной, и макрос автоматом проанализирует текущие поля и отберет на форму отфильтрованные данные из источника! Если взглянете на вложенные картинки, то увидите, что макрос максимально упрощает ввод новых данных :
Кликните здесь для просмотра всего текста
  • Для полей с типом данных "Дата" есть специальная кнопка ввода даты
  • Для полей с типом данных "Текст" если источник имеет выпадающий список, то этот список автоматом копируется на форму ввода! (для полей без списка кнопка выпадающего списка скрывается!)
  • Для полей с типом данных "Значение" числа специально форматируются

Файл будет полезным практически всем пользователям сводных таблиц в Excell!


Далее подробнее (для тех кто программирует) опишу свойства класса "MYTabl" :
Кликните здесь для просмотра всего текста

• AllEditItems - возвращает массив элементов класса MYItems, которые были исправлены пользователем.
• Cell - возвращает элемент по заданной строке и колонке класса MYItems.
• Changed - возвращает переменную типа Boolean, указывающую был ли исправлен вручную какой-нибудь элемент.
Cancellation - отменяет все сделанные пользователем действия и возвращает в таблицу те данные, которые были программно заполнены.
• CountColumns - возвращает кол-во столбцов в таблице типа Long
• CountRows - возвращает кол-во строк в таблице типа Long
• Field - возвращает элемент заголовка класса MYField.
• Get_HELP - выводит данное сообщение.
• GetTagOfColumn - получает свойство Tag для заголовка по номеру колонки.
• LetTagOfColumn - Задает свойство Tag по номеру колонки.
• LetValue - важный модуль для программного заполнения ячеек таблицы.
• NameColumn - возвращает название колонки по её номеру
• NewColumn - модуль для создания колонки, все колонки должны быть созданы до создания строк!
• NewRow - модуль для создания строки
• RegForm - САМЫЙ основной модуль! без него таблица не будет создана!
• Redo - модуль для отмены последнего возврата действия в таблице
• RedoEnabled - возвращает доступность модуля Redo
• Set_to_saved - переводит переменную Changed (исправлен) для всех элементов класса MYItems в положение False
• TablSize - модуль для регулирования размера таблицы
• Undo - модуль для отмены последнего действия в таблице
• UndoEnabled - возвращает доступность модуля Undo
======================================== =====================================
Свойства и методы класса MYfield :
• column - возвращает номер колонки заголовка
• Parent - возвращает родителя (MYtabl) *(используется для внутренних операций классов)
• Tag - Тэг заголовка можно использовать для прикрепления любой пользовательской информации
• Имя_поля - возвращает имя самого заголовка
• ПолеЗаголовок - возвращает объект MSForms.Label *(используется для внутренних операций классов)
• Тип_данных - заложенный тип данных для этого заголовка при создании модулем NewColumn
======================================== =====================================
Свойства и методы класса MYitems :
• Changed - возвращает значение True или False в зависимости от того был ли этот элемент исправлен непрограммно
• column - возвращает номер столбца занимаемый этим элементом
• control - возвращает основной control этого поля (ComboBox)
• NoChange - модуль устанавливающий Changed в положение False *(используется для внутренних операций классов)
• Parent - возвращает родителя (MYtabl) *(используется для внутренних операций классов)
• row - возвращает номер строки занимаемый этим элементом
• Адрес - источник типа string, заданный с помощью модуля LetValue
• Внутр_значение - скрытое значение полученное сначало модулем LetValue, а затем в случае правки пользователя
• Имя_поля - возвращает название поля (столбца)
• Тип_данных - заложенный тип данных для этого элемента при создании модулем NewColumn


Данный макрос не работает с базами данных!
Так же из-за недочетов MS Excel, невозможно определить "искусственные поля" (созданные например из поля "Дата" поля "Годы" и "Месяцы" не будут определены в фильтре!), и невозможно определить в фильтре сводной отобрана та или иная дата если она не имеет в источнике международный формат "*ДД.ММ.ГГГГ", а в самой сводной "ДД-ММ-ГГГГ".
И пока возникают проблемы с открытием внешних источников содержащих в пути или имени файла следующие знаки : "[]!" -так как они используются в экселевских формулах..
Большая просьба оценить сие творение!
Миниатюры
Нажмите на изображение для увеличения
Название: prscreen2.png
Просмотров: 1200
Размер:	8.4 Кб
ID:	1473   Нажмите на изображение для увеличения
Название: =PS.png
Просмотров: 825
Размер:	27.5 Кб
ID:	1495   Нажмите на изображение для увеличения
Название: Prs2.png
Просмотров: 1120
Размер:	28.8 Кб
ID:	1521  

Нажмите на изображение для увеличения
Название: PS-Load.png
Просмотров: 1024
Размер:	13.0 Кб
ID:	1533   Нажмите на изображение для увеличения
Название: 17_33_57.png
Просмотров: 1315
Размер:	293.5 Кб
ID:	1611  
Изображения
 
Вложения
Тип файла: zip Новые надстройки Class&PivotTable_24.12.2012.zip (282.7 Кб, 549 просмотров)
Тип файла: zip Class&PivotTable_27.01.2014.zip (185.6 Кб, 317 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru