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

Страницы: 1
Есть ли ограничения на заполнение "умных таблиц" макросами ?, на разных строках таблицы макрос ведет себя по разному ..
 
Добрый день.
Подскажите есть ли ограничения в работе VBA с умными таблицами ?
Субъект: файл в котором  две таблицы - первая источник данных загружаемая запросом из MS Query - ZID.ListObjects("ИД1")
вторая - ORP.ListObjects("TabORP") заполняется вручную и при определенных условиях "дозаполняется" значениями из первой.
заполнение происходит строками аналогичными :
.Rows(lRow).Columns(iIteraciya) = Application.VLookup(.Rows(lRow).Columns(iNzv), ZID.ListObjects("ИД1").DataBodyRange, 4, False)
.Rows(lRow).Columns(iIteraciya).Interior.Color = iZ
все работает прекрасно если количество строк меньше 50, если количество строк становится больше дуркует по черному , начинает пропускать строки, по непонятному алгоритму , причем после блока пропущенных строк 1-2 строки заполняются нормально. Если оставляю только незаполненные строки результат тот - же , то есть первые (примерно) 50 строк заполняются правильно , потом опять котовасия.
Что делал :
перегружал комп
убирал обновления экрана и автоматические вычисления пока работает макрос
отладчиком ловил строку - выполнялись все строки НО не записывались в ячейки !!!

Решение вроде есть - заполнить в массиве и вставить массив в столбец /таблицу, но хочется разобраться , и лениво повторно прописывать условия оформления ячеек , так же по причине того что за рамками заполняемой части таблицы хотел оставить пользователям возможность вносить доп данные которые не нужны при анализе данных, но нужны для идентификации/примечания ипр лицу заполняющему...

Заранее спасибо

ЗЫ ПО все лицензионное MSO 2016 стандартный
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
VBA для рядов данных диагарммы, Подмена значений value и xvalue для рядов диаграммы
 

Добрый день Гуру !

Помогите решить задачу (чур задачу не комментировать – не я её ставил).

Есть файлы с приложением к проекту по тело-технике. В каждом не менее 170 диаграмм, какие-то на рабочих листах, другие на листах диаграмм. Исходные данные для этих диаграмм находятся вне доступа (у начальных проектировщиков). Диаграммы содержат большое количество «вручную» скорректированных линий (рядов данных). На некоторых листах диаграмм несколько диаграмм. ЧАСТЬ диаграмм необходимо скорректировать – изменить значения одного или несколько рядов данных. Менять диаграммы (оформление и надписи) НЕЛЬЗЯ ! Формат 93 excell. Никогда не занимался диаграммами поэтому и прошу помощи.

Написал макрос для чтения данных из диагарммы

Код
Sub Receive_data_from_diag_to_new_sheet()Application.ScreenUpdating = FalseDim NumberOfRows As IntegerDim X As ObjectDim iCol As IntegerDim stRyad As StringDim stSheet As StringWith Worksheets("ChartData")    .Cells.ClearEnd WithiCol = 0With ActiveChartstSheet = .NameFor Each X In .SeriesCollection    stRyad = CStr(X.Name)    iCol = iCol + 1    NumberOfRows = UBound(X.Values)         With Worksheets("ChartData")            .Cells(1, iCol) = "X-" & stRyad            .Range(.Cells(2, iCol), .Cells(NumberOfRows + 1, iCol)) = Application.Transpose(X.XValues)            iCol = iCol + 1            .Cells(1, iCol) = "Y-" & stRyad            .Range(.Cells(2, iCol), .Cells(NumberOfRows + 1, iCol)) = Application.Transpose(X.Values)        End WithNext XEnd With…….End sub

Так как Excell старый и «свободных» листов на втором проекте меньше 5, а выносить данные в другой файл не хочу решил сделать следующее:

создать три листа. Первый исходные данные, второй корректировки рядов, третий итоговые значения  (ИД + Корректировки) для изменения рядов.

На первом листе данные заполняются «щёлканьем» подлежащих корректировке диаграмм из проекта. Фиксирую данные:

Индексы листов

Индексы диаграмм

Индексы рядов диаграмм (имена)

Координаты по Х для каждого ряда

Координаты для Y для каждого ряда.

Проверяя работу макроса руками менял формулы для каждого ряда (=РЯД([Имя];[Значения X];[Значения Y];[Номер графика]) ). Получается «то что доктор прописал».

Собственно вопросы :

Как эти же значения подставить используя VBA, а не «руки»? ссылаться просто на диапазон данных не подходит так как их крутили-вертели при начальном проектировании как угодно  и нужно менять именно value и Xvalue)

Как циклом обнаружить вторую диаграмму  на листе диаграмм  (пример во вложении)?

Заранее спасибо

PS Сына жалко – он до написания мною макроса заносил значения в таблицы вручную ))

Изменено: leseal - 14.11.2017 09:21:18
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
Проверка прав доступа пользователя к конкретной сетевой папке, Средствами VBA нужна проверка прав доступа к конкретной сетевой папке
 
Добрый день Гуру.
Может кто сталкивался - помогите.
Есть файлы для менеджеров. Они содержат таблицы с внешними источниками данных (файл аксесс для конкретного филиала) часть из которых обновляется при открытии. При запуске книги отрабатывает макрос проверяющий принадлежность пользователя к группе избранных (отдельная группа в AD, к сожалению она одна так как администрировать её в полном объеме у меня нет прав , но добавляются туда пользователи только через мое согласие. Делать дубликат внутри книги с указанием пути  не подходит так как у ряда пользователей есть доступ к нескольким папкам).
По умолчанию после настройки все работает.
Проблема возникает при создании нового файла из файла "шаблона" или при попытке восстановить файл из "шаблона" (все процедуры написаны на VBA). Так как подключения имеют ссылки на конкретные пути , если файл открывает пользователь с другого филиала (нет доступа к данным другого филиала) сыплются ошибки.
Устал объяснять что на все нужно "говорить" "нет" и "отменить" а потом запускать макросы создания или восстановления . Можно ли узнать средствами VBA имеет ли пользователь доступ к конкретной папке. Путь к этой папке всегда есть внутри книги в отдельной ячейке.
Заранее Спасибо.  
Изменено: leseal - 02.12.2016 14:34:58
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
Формирование массива в памяти, после обработки вставка данных в таблицу, один и тот же макрос с одним и тем же объемом данных работает с разной скоростью
 
Добрый день Гуру.
Помогите чайнику.
Есть макрос который формирует массив в памяти (примерная размерность 23 поля 700 строк) и после обработки вставляет данные в таблицу.
Поставил отслеживание этапов работы. Обработка массива с вычислениями всегда проходит примерно одинаково по времени, а вот этап записи значений в ячейки отличается в ДЕСЯТКИ РАЗ.
Количество открытых файлов и их размер (как и объем занимаемой памяти не менялся). Кроме экселя ничего не запущено.
Вставляю данные кодом:
Код
    For a = 1 To UBound(WorkArray, 1)
    Application.StatusBar = "adding a line" & a & " of " & z
    DoEvents
    If WorkArray(a, 10) <> 0 Then
         CurrRow = CurrRow + 1
        For CurrCol = 1 To UBound(WorkArray, 2)
                ActiveCell.Offset(CurrRow - 1, CurrCol - 1).Value = WorkArray(a, CurrCol)
        Next
    End If
    Next

Если знаете как исправить - подскажите ПЛИЗЗЗ
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
StatusBar в цикле перестает отображать информацию
 
Добрый день Гуру !

Не могу понять почему перестает отображаться информация в Статусбаре.
Есть два вложенных цикла.
Код
For GP = 1 To z 
Application.StatusBar = "zapolnyaem " & GP & " iz " & z
    For ART = 1 To y
        If StockArray(ART, GP + 1) <> 0 Then
            b = b + 1
            WorkArray(b, 1) = WorkFil
            WorkArray(b, 2) = Application.VLookup(WorkFil & GpArray(GP, 2), Range("Ostatki"), 4, False)
' ...расчет 20 значений
        End If
    Next
Next.

На маленьких количествах Z все работает ОК.
Когда Z =30 и более в статусбаре отображается только до 6-8 (самое смешное что не больше и не меньше.) и потом отображаются только следующие за циклами значения. Время работы цикла ART примерно 1,5 сек (Y не менее 1000)
Если  в конце первого цикла ставлю паузу(или через msgbox ) показывает все корректно до 50 (проверял)))

Убрать проверку или что нибудьть подскажете ?
Заранее спасибо
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
восттановление связи "умной таблицы" с внешним источником
 
Добрый день Господа.

На листе изначально была "умная таблица " с внешним источником данных (access).
Связь разорвали.
Есть ли возможность восстановить связь в первоначальной таблице зная параметры строки подключения ?
Вариант создания новой с переименованиями не предлагать ))

Заранее спасибо
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
Выборка последних значений по дате, обработка подобно запросу в SQL или ACCESS
 
Добрый день Великие Гуру
Помогите старому торгашу в детстве программировавшему на см1810.))

Сделал форму для заполнения сотрудниками которая преобразовывается в таблицу (прилагается) , которая является источником  для построения кэша сводной таблицы.
Задача которую нужно решить:
1. из прилагаемой таблицы удалить все строки в которых значение в поле "ВидДанных" начинается на "_"
2. Аналогично запросам с last (в Access) сделать выборку из этой таблицы по следующему принципу : совпадают все значения кроме поля "количество" (игнорируются) используя максимальное значение по полю "Дата".
2. Результат обработки поместить в конец таблицы указав в полях "дата" сегодняшнее число, а в поле "ВидДанных" к имеющемуся значению добавить префикс "_"

Буду очень признателен.
Заранее спасибо
С Уважением Сергей
что бы взбодриться достаточно стукнуть голой ногой по ножке кровати
Страницы: 1
Наверх