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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2019, 16:52   #1
s.p.il
Пользователь
 
Регистрация: 18.10.2013
Сообщений: 13
По умолчанию Управление контейнером динамической таблицы

Здравствуйте!
Возможно-ли средствами VBA временно убирать (отключать) и восстанавливать (подключать) динамический контейнер умной таблицы в котором заключены данные?
s.p.il вне форума Ответить с цитированием
Старый 22.04.2019, 11:22   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

myTable.Unlist - превратить таблицу в обычный диапазон
myWorksheet.ListObjects.Add xlSrcRange, ... - создать таблицу из диапазона
Это нужно?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 22.04.2019, 16:36   #3
s.p.il
Пользователь
 
Регистрация: 18.10.2013
Сообщений: 13
По умолчанию

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

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

Последний раз редактировалось s.p.il; 23.04.2019 в 01:30.
s.p.il вне форума Ответить с цитированием
Старый 23.04.2019, 09:57   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от s.p.il Посмотреть сообщение
Возможно ли как-то средствами VBA отсортировать столбец динамической таблицы дабы данная сортировка не сортировала соседние столбцы
Варианты на выбор:
1. Считать столбец в массив, отсортировать его средствами VBA, записать обратно.
Про сортировку можно найти массу материала, например
https://www.planetaexcel.ru/forum/in...FID=8&TID=6998
http://www.cyberforum.ru/visual-basic/thread69829.html ;
2. Скопировать столбец в незанятую область, отсортировать, скопировать обратно;
3. Превратить таблицу в обычный диапазон, отсортировать на месте, создать таблицу заново с помощью операторов из #2.

Но зачем так делать? По идее, умная таблица это набор записей-строк. Если отсортировать один столбец отдельно от остальных, связи в строках будут нарушены. Если в этом столбце данные не связаны с остальной таблицей, то зачем помещать его в таблицу?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 23.04.2019, 20:02   #5
s.p.il
Пользователь
 
Регистрация: 18.10.2013
Сообщений: 13
По умолчанию

Казанский, Такой расклад это для зависимых выпадающих списков, то есть заголовки это типа разделы, а содержимое раздела подразделы, поэтому они и независимы. Разделы с данными (колонки) могут добавлять и удаляться, в самих же подразделах идет только удаление (очистка от данных) вот этот пробел (промежуток пустой строки) после очистки и нужно как-то устранить, или сортировкой, или сдвигом нижних данных после пустой строки на одну строку выше, а также если этот столбец превышает по количеству заполнения соседние, то после сдвига или сортировки необходимо подтянуть и нижнюю границу контейнера умной таблицы на одну строку выше.
Вот, где-то так…

Последний раз редактировалось s.p.il; 23.04.2019 в 20:05.
s.p.il вне форума Ответить с цитированием
Старый 24.04.2019, 10:17   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

s.p.il, если столбцы независимы, зачем объединять их в умную таблицу?
Если хочется обращаться к столбцу по заголовку, можно задать столбцам имена (поле Имя слева от строки формул или Ctrl+F3).
Также можно "на лету" находить номер столбца по заголовку, который находится в 1 строке, с помощью ПОИСКПОЗ, в VBA
Код:
n = worksheetfunction.Match("Значение",rows(1),0)
А удалить пустые ячейки в столбце можно так
Код:
on error resume next 'на случай если пустых нет
columns(n).SpecialCells(xlCellTypeBlanks).Delete xlshiftup
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 24.04.2019, 22:47   #7
s.p.il
Пользователь
 
Регистрация: 18.10.2013
Сообщений: 13
По умолчанию

Казанский, объединение в умную таблицу дает возможность создать зависимые выпадающие списки, также данный метод дает с легкостью добавлять новые данные по строкам, добавлять и удалять столбцы при этом изменяя автоматом данные в списках без дополнительных кодов vba и диспетчер имен. Так как я не знаю альтернативных методов по отношению к этому, то в моем понимании данный метод намного мобилен по отношению к тем которые мне известны, за исключением того что сортировка по отдельно взятому столбцу для данного метода проблематична...
В тестовом примере показан метод зависимых выпадающих списков.
Вложения
Тип файла: zip sortirovka.zip (19.9 Кб, 10 просмотров)

Последний раз редактировалось s.p.il; 24.04.2019 в 22:56.
s.p.il вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание динамической таблицы в Php Tim4 Помощь студентам 11 30.05.2014 11:48
Создание динамической таблицы в Php Tim4 PHP 2 11.04.2014 12:10
Управление динамической памятью при вложенных структурах opencloser Общие вопросы Delphi 4 04.03.2014 13:22
Печать динамической таблицы Ekstra Microsoft Office Excel 7 12.09.2013 11:26
Организация динамической таблицы Kerguru Microsoft Office Access 2 02.12.2009 11:35