Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Копирование Сводной таблицы Excel в Word со связью
 
У меня к сожалению это не проходит. Скопированная таким образом сводная таблица (а точнее диапазон ячеек) ограничен первоначальными размерами. То есть, если в источнике - Ехсеl раскрыть структуру таблицы, то после обновления в Word будет видна только ее часть, размером с первоначально скопированный диапазон.
Копирование Сводной таблицы Excel в Word со связью
 
При подготовке отчета, при копировании Сводной таблицы в Word со связью столкнулся с проблемой. При обычном выделении диапазона охватывающего всю таблицу копируется и вставляется не Сводная таблица, а выделенный диапазон. При изменении Сводной таблицы - диапазон полностью не переносится. Для динамических (умных) таблиц задача легко решается созданием именованного  диапазона из умной таблицы и указании этого имени в  связи в файле Word .  Тоже со сводной не проходит?. Попробовал функцию ДВССЫЛ() для замены имени Сводной таблицы  на ссылку -  тоже не получается. Попробовал создать именованный динамический диапазон с использованием подсчета заполненных ячеек в том числе с учетом пустых
Код
=Отчет!$A$1:ИНДЕКС(Отчет!$A$1:$A$100;ПОИСКПОЗ(ПОВТОР("z";255);Отчет!$A$1:$A$100))

 В WORD указал  {LINK Excel.sheet.12 C:\\User\\Fulidi\\OneDrive\\Desktop\\данные.xlsx Отчет!Свод \a \f 5\h \* MERGEFORMAT}
Также пробовал функцию СМЕЩ() . В какой-то момент что-то получилось и тут же потерялось.... Опять неудача. Вообщем получается надо с помощью формулы научиться определять высоту и ширину сводной таблицы и создать  именованный диапазон с помощью этой  формулы. Поэтому у меня вопрос!
Как скопировать Сводную таблицу Excel в Word со связью. Чтобы при изменении  сводной таблицы, в  таблицу в Word передавались данные и ее структура не нарушалась? Форматирование не обязательно.
Изменено: fvi1967 - 28.02.2022 22:03:58
фильтрация с использованием дерева
 
Код
 CommandButton1_Click()
Dim k As Integer
Dim el As Node
Dim strNod As String
Dim nds() As String
For Each el In TreeView1.Nodes
 If el.Checked = True Then
k = k + 1
 strNod = el.Text
 strNod = Left(strNod, InStr(1, el.Text, " - ", 1))
  ReDim Preserve nds(k)
 nds(k) = "'" & strNod
 End If
Next

Worksheets("выгрузка 1С").Activate

ActiveSheet.Range("a1:E1").AutoFilter
ActiveSheet.Range("a1:E1").AutoFilter Field:=4, Criteria1:=Array(nds), Operator:=xlFilterValues

End Sub
Согласен, всю критику принимаю, все поправил как смог понять. Добавка " ' "  из того чтобы решить проблему с форматами. Всякие счета типа 20.01 или 10.05 лист Excel быстренько преобразует  в даты типа - 20 января и тп
Я  с событием запускающим процедуру явно перемудрил ... это надо же было додуматься взять для фильтрации событие TreeView1_NodeCheck... . Конечно надо было сделать кнопку,  выбрать все что нужно ,  и  уже тогда сформировать фильтр. Вообщем  Вам спасибо!
Изменено: fvi1967 - 18.09.2018 21:28:44
фильтрация с использованием дерева
 
Уважаемые Форумчане! Суть вопроса такая. Имеется план счетов - таблица со счетами с которой строится дерево. Имеется журнал проводок (записей) по счетам. Нужно чтобы по выбранным на дереве счетам фильтровались строки в журнале. Счета могут быть в двух столбцах по Д (дебету) и К (кредиту). Или хотя бы  по одному из них. Но выбрать надо несколько (выбранное число может изменятся в зависимости от необходимости). Счет я взял в цифровом буквенном виде

вот код который должен бы это делать
Код
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Static s As String
Static k As Integer
'On Error Resume Next
Dim el As Node, ile%: ile = 0
For Each el In TreeView1.Nodes
 If el.Checked = True Then ile = ile + 1
Next

Dim strNod As String

strNod = Node.Text
'выделяю номер счета
strNod = Left(strNod, InStr(1, Node.Text, " - ", 1))
s = s + strNod
k = k + 1
'strNod = Right(Node.Text, 1, Len(Node.Text) - 1)
Dim nds() As String
 ReDim Preserve nds(k)
 If k = 1 Then

Worksheets("выгрузка 1С").Activate
ActiveSheet.Range("a1:E1").AutoFilter Field:=4

' s = Left(s, Len(s) - 1)
'в выгрузке свой формат '01 - с кавычкой
s = "'" & s
nds = Split(s)

End If
ActiveSheet.Range("a1:h1").AutoFilter Field:=4, Criteria1:=Array(nds), Operator:=xlFilterValues

'ActiveSheet.Range("a1:h1").AutoFilter Field:=4, Criteria1:=.Keys
End Sub

Не могу разобраться с функцией Array - как я понял массив который она заполняет должен быть объявлен как Variant. А чтобы из строки получить массив - то массив - должен быть строковым. Может ли  функция Array применяться к массиву переменного размера.  
Изменено: fvi1967 - 18.09.2018 21:34:47
Добавление библиотеки MSCOMCT2
 
Актуализирую вопрос. Перенес из другой темы. Никак не могу установить  Microsoft Windows Common Controls (SP6) может кто нибудь подскажет?. Очень нужно дерево для одного из проектов. Ни как не устанавливается ни на 10-ку ни на 7 -ку 64. Уже все перепробовал. Библиотеки благополучно регистрируются а вот самих элементов управления нет
VBA Excel : Использование файла MSCOMCTL.OCX на разных компьютерах
 
Никак не могу установить  Microsoft Windows Common Controls (SP6) может кто нибудь подскажет?. Очень нужно дерево для одного из проектов. Ни как не устанавливается ни на 10-ку ни на 7 -ку 64. Уже все перепробовал. Библиотеки благополучно регистрируются а вот самих элементов управления нет
Добавление библиотеки MSCOMCT2
 
Обращаюсь за советом. Как зарегистрировать  библиотеку MSCOMCT2 на windows10 - 64 и начать ее использовать  в Eхсеl 2013  или Eхсеl  2016.
Я поместил  MSCOMCT2.OCX в папки C:\Windows\SysWOW64 и в C:\Windows\System32 (непонятно зачем - на всякий случай  :) ) и с правами администратора зарегистрировал. В реестре появилась какое-то упоминание о MSCOMCT2. Но этим все и ограничилось. Никакого доступа ни в tools ,  ни в Additional controls к выбору содержимого библиотеки нет. а нужно дерево да и остальное не помешает. Попытался установить VisualStudio 2003 и 2015  разных версий -может появится общая библиотека- но это ничего не дало.Хотя в VisualStudio конечно все есть . Может есть  аналогичные библиотеки...???
Изменено: fvi1967 - 03.09.2018 21:39:55
Страницы: 1
Наверх