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

Страницы: 1 2 3 След.
Макрос скрытия листов при закрытии книги, ошибка при повторном действии макроса
 
Евгений Смирнов, Евгений Смирнов, Огромное спасибо за помощь. Все работает как и задумано

ps.
Цитата
Евгений Смирнов написал:
WS27  Здравствуйте. Этому кто вас научил. ЦитатаRange("ИТОГИ").Select
Цитата
Дмитрий(The_Prist) Щербаков написал:
Меня, например, очень интересует что за диапазон такой "ИТОГИ"? Это диапазон или лист? По описанию вроде лист, а по коду - диапазон. Если диапазон - на каком листе он расположен? Зачем его выделять перед закрытием? Какой лист должен остаться видимым? Без ответа на эти вопросы выдать правильный код будет сложно, а описание не "бьется" с кодом
на листе ИТОГИ имеется умная таблица у которой название диапазона  такое же - ИТОГИ
Изменено: WS27 - 02.02.2024 08:39:24
Макрос скрытия листов при закрытии книги, ошибка при повторном действии макроса
 
Добрый день!

Есть книга в которой содержится несколько листов, при закрытии книги использую макрос скрывающий необходимые мне листы, после этого необходимо из всех остальных листов (их тоже может быть несколько) остаться на активном листе с названием ИТОГИ.
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sheets("Лист1").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("Лист2").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("Лист3").Select
    ActiveWindow.SelectedSheets.Visible = False
    Range("ИТОГИ").Select
End Sub

При первом тесте все работает, но при повторном открытии и закрытии файла вылетает ошибка: run time error 1004, вероятно что макрос говорит скрыть листы которые  уже скрыты, как это можно учесть в коде?
Динамически закрепленная строка, Реализация динамически закрепленной строки заголовка
 
Добрый день, подскажите как реализовать код макроса (в макросе хотелось бы иметь возможность прописать порядковые номера строк которые должны быть закреплены , как только они попадают в поле зрения
Нужно сделать динамически закрепленную строку на 1 листе
Есть файл/лист на котором n-число таблиц, на при  перемещении по листу на 30 строке появляется таблица однострочную шапку которой необходимо закрепить как только она исчезнет из поля зрения (100строчка -конец таблицы), при дальнейшем перемещении по листу вниз на 250 строчке(начало  другой таблицы) появляется новая таблица с другой однострочной шапкой которую необходимо закрепить, (конец этой таблицы на 500 строчке) и тд… и при перемещении вверх по листу чтобы закрепленные строки корректно отображались,… сначала 250, а как только она скрывается снизу то в закрепленных строчках становилась 30, надеюсь понятно изложил)
Изменено: WS27 - 04.06.2023 18:10:54
параметрический подход к названиям листов книги PQ, Параметры названия необходимых листов для запросов PQ
 
Чтобы была возможность управлять запросом только первыми двумя параметрами f и n, подскажите пожалуйста как правильно нужно прописать элемент кода( в шаге источник заменить [LOCATION_ОБЩИЙ] на параметр f без ошибок...?

Код
let
    f="LOCATION_ОБЩИЙ", /* имя умной таблицы и название столбца откуда брать инфу(без кавычек)*/
    n=1,
    m = Text.From ( Excel.CurrentWorkbook(){[Name=f]}[Content]{n}[ЛИСТ]),
    Источник = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name=f]}[Content]{n}[LOCATION_ОБЩИЙ]), null, true),
    #"Лист" = Источник{[Item=m,Kind="Sheet"]}[Data]
in
    #"Лист"
Изменено: WS27 - 16.03.2023 12:47:12
Проверка числа знаков после запятой, запретить ввод числа с количеством знаков после запятой, больше чем указано
 
БМВ, Ігор Гончаренко, благодарю, именно то что нужно!!!
Проверка числа знаков после запятой, запретить ввод числа с количеством знаков после запятой, больше чем указано
 
Всем спасибо за помощь!
Ігор Гончаренко, макрос идеально работает, спасибо!!! есть пара вопросов:
1. Можно ли добавить возможность работы макроса только для поля где слева указано число допустимых знаков, а не на всю колонку? если стоит допустимое число знаков после запятой 0, то только тогда срабатывать, а если пустая ячейка? то туда можно записать что угодно, в каком либо формате...
2. Если изменится число допустимых знаков в этом же файле (станет меньше), то приходится проверять введенное значение и править, можно сделать чтобы при изменении числа допуст.знаков поле расход автоматически учитывало сколько знаков нужно показывать и отсекало лишнее если знаков стало меньше, а если стало больше, то без изменений?
Проверка числа знаков после запятой, запретить ввод числа с количеством знаков после запятой, больше чем указано
 
Добрый вечер, помогите пожалуйста решить следующую задачу:
Имеется файл, доступ к которому есть у многих человек, каждый заполняет свои  определенные данные, но при внесении данных в колонку "Расход"  нужно учитывать допустимое число знаков после запятой (в файле имеется соседняя колонка), т.е если человек превышает указанное допустимое число знаков после запятой, то надо чтобы лишние знаки отсекались (без округления самого числа), если не превышает то просто записывается число, как это можно реализовать формулой или макросом может быть

Файл меняется каждый месяц, меняется число знаков после запятой, таблица объемная

Пример как должно быть по вложении
PQ Обход ошибки DataSource.Error, Обновление данных запроса с игнорированием отсутствующих файлов
 
Alien Sphinx, Спасибо, то что нужно!)))
PQ Обход ошибки DataSource.Error, Обновление данных запроса с игнорированием отсутствующих файлов
 
StepanWolkoff, структура
Цитата
StepanWolkoff написал:
WS27, много слов, а толку мало...
Как вы получаете данные из файлов? Один запрос к папке, где вы их сохраняете или к каждому файлу отдельно? Файлы имеют одинаковую структуру или разную?
Дайте больше информации относящейся к сути вопроса, а не обстоятельствам.

Как получаю данные из файлов: только удаление ненужных столбцов ну и форматирование… приведение шапки к 1 виду
Во всех запросах запрос конкретно к файлу (через параметризацию путей к файлам)сохраняю в разных местах…
Структура 9 файлов разная, в самих 9 запросах я привожу их к 1 виду стобы схлопнуть в общем запросе
PQ Обход ошибки DataSource.Error, Обновление данных запроса с игнорированием отсутствующих файлов
 
Добрый день, помогите пожалуйста решить следующую задачу:
имеется ГЛАВНЫЙ ЗАПРОС (который выводится на лист, суть которого "ДОБАВИТЬ ЗАПРОСЫ"), куда загружаются данные из 9ти запросов (доступные только для подключения)
файлы для этих 9 запросов мне приходят в разные дни месяца, все файлы сохраняю в определенное место, путь к которым прописан в  запросах для подключения,
под конец месяца у меня имеются все  9 файлов и я наконец могу обновить ГЛАВНЫЙ ЗАПРОС,
Можно ли сделать так чтобы  не имея всех необходимых файлов можно было бы обновить ГЛАВНЫЙ ЗАПРОС без ошибки DataSource.Error.... (не удается найти файл)

В идеале как я вижу это должно работать:
например, в середине месяца у меня есть 5 файлов, соответственно по ним мне надо получить общие данные и надо чтобы в ГЛАВНЫЙ ЗАПРОС попали только файлы которые у меня имеются, а так файлы которые не получены еще но участвуют в ГЛАВНОМ ЗАПРОСЕ не попадали в список с обходом ошибки DataSource.Error
через несколько дней я получаю след файл , теперь у меня их 6 и теперь снова могу обновить ГЛАВНЫЙ ЗАПРОС и получить общие данные уже не из 5 а из 6 файлов и т.д.
Изменено: WS27 - 11.01.2023 14:42:09
параметрический подход к названиям листов книги PQ, Параметры названия необходимых листов для запросов PQ
 
Настя_Nastya, спасибо большое, именно то что нужно!
параметрический подход к названиям листов книги PQ, Параметры названия необходимых листов для запросов PQ
 
Настя_Nastya, спасибо, но
Цитата
Настя_Nastya написал:
m= Text.From (Date.Month(DateTime.LocalNow())),
я так понимаю что этот параметр выдает текущий месяц всегда, но мне нужно чтобы у меня была возможность смотреть другие месяцы тоже,  поэтому и хотелось бы задавать необходимый месяц где нибудь в 1 месте, а не в в 15
параметрический подход к названиям листов книги PQ, Параметры названия необходимых листов для запросов PQ
 
Добрый вечер!
У меня такая задача: каждый месяц приходят 10-15 файлов и мне нужно их обработать и собрать определенные данные, чтобы ускорить этот процесс сделал параметризацию путей к данным в Power Query согласно данной теме, все работает с разными файлами, но проблема в том что во всех этих запросах приходится вручную переписывать номер листа (во всех файлах нужный лист это цифры... от 1 до 12(это текущий месяц), так вот если я в сентябре обрабатывал данных то во всех запросах ставил цифру 10, в след месяце(ноябре) надо ставить  11...
Имеется умная таблица с именем LOCATION_ОБЩИЙ из 1 столбца в которой прописаны пути к каждому файлу, на 4 строчке ставлю число 10(это текущий месяц) и хотелось бы менять только эту строчку на  другие месяца и чтобы подтягивались данные с соответствующего листа из каждого файла, подскажите как это реализовать?
Код
Источник = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="LOCATION_ОБЩИЙ"]}[Content]{0}[LOCATION_ОБЩИЙ]), null, true),
    #"Лист" = Источник{[Name="10"]}[Data],
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Лист",{"Column1", "Column2", "Column4", "Column5", "Column11"}),
Изменено: WS27 - 10.11.2022 17:29:59
Фильтр по выделенному диапазону, Фильтр по выделенному диапазону (критерии фильтров)
 
RAN, Благодарю, работает идеально))
Фильтр по выделенному диапазону, Фильтр по выделенному диапазону (критерии фильтров)
 
Цитата
RAN написал:
Sub qq()
         Dim ar, ar1
         Dim crit$
         Dim oDic As Object, oDic1 As Object
         Dim i&, ColNumber&
   crit = "yes"    ' "no" "yes"
         With ActiveSheet
             ColNumber = Selection.Column - .AutoFilter.Range.Column + 1
             ar = .AutoFilter.Range.Columns(ColNumber).Value
             ar1 = Selection.Value
             Set oDic = CreateObject("Scripting.Dictionary")
             Set oDic1 = CreateObject("Scripting.Dictionary")
             For i = 1 To UBound(ar1)
                 oDic1.Item(ar1(i, 1)) = oDic1.Count
             Next
       For i = 1 To UBound(ar)
           If crit = "yes" Then
               If oDic1.exists(ar(i, 1)) Then
                   oDic.Item(ar(i, 1)) = oDic.Count
               End If
           ElseIf crit = "no" Then
               If Not oDic1.exists(ar(i, 1)) Then
                   oDic.Item(ar(i, 1)) = oDic.Count
               End If
           End If
       Next
             Erase ar
             ar = oDic.Keys
             .AutoFilter.Range.AutoFilter Field:=ColNumber, Criteria1:=ar, Operator:=xlFilterValues
         End With
End Sub



Бывают случаи когда нужно из моего списка выбрать несколько значений, я это выбираю с помощью выделением нужных диапазонов, с зажатой клавишей CTRL, при таком действии возникает ошибка в выделенной строке кода, я так понял ругается именно на одиночные диапазоны (выделена только 1 ячейка), при 2 и более выделенных ячеек ошибки нет, как это можно оптимизировать?
Фильтр по выделенному диапазону, Фильтр по выделенному диапазону (критерии фильтров)
 
Jack Famous, RAN, Спасибо за помощь, это то что нужно!
Фильтр по выделенному диапазону, Фильтр по выделенному диапазону (критерии фильтров)
 
Цитата
Jack Famous написал:
WS27 , здравствуйтеФайл-пример

Добавил файл в шапке темы, на 1 вкладке то как сейчас работает макрос, а на 2й вкладке что нужно получить в итоге
Фильтр по выделенному диапазону, Фильтр по выделенному диапазону (критерии фильтров)
 
Добрый день!

Помогите пожалуйста решить следующую задачу:

У меня есть макрос который использую следующим образом: Список критериев для  фильтра ставлю чуть ниже основной таблицы (главное чтобы колонка совпадала), выделяю весь мой вставленный список, применяю макрос, в итоге в основной таблице все отфильтровано по тем критериям которые мне нужно.
Кол-во критериев для фильтра - большое список счетов от 1000 до 7000, поэтому вручную отмечать не вариант.
Код
Sub Filter_po_vudeleniy() ' фильтр по выделению
    Dim filterRange As Range, filterValues() As Variant, cl As Range, i As Integer, rng As Range
    Set filterRange = Range("A1")
    Set rng = Selection '
    If rng.Cells.Count > 1 Then Set rng = rng.SpecialCells(xlCellTypeVisible)
    ReDim filterValues(1 To rng.Count)
    i = 0
    For Each cl In rng
        i = i + 1
        filterValues(i) = cl.Text
    Next cl
    Dim ColNumber As Integer
    ColNumber = rng.Column - filterRange.Column + 1 ' Val(InputBox("COLUMN Number"))
    filterRange.autofilter Field:=ColNumber, Criteria1:=filterValues, Operator:=xlFilterValues
End Sub


Мне нужно создать похожий макрос но чтобы действовал наоборот... как я это вижу: Список критериев для  фильтра ставлю чуть ниже основной таблицы (главное чтобы колонка совпадала), применяю макрос, в итоге в основной таблице все отфильтровано и список который я вставлял ниже, не попали в отфильтрованную таблицу
Похожий интерфейс есть в стандартном фильтре (фильтр> НЕ РАВНО), но с его помощью можно отсечь ненужные значения 1-2, а не огромный список


По возможности сразу как можно применить другие критерии типа (фильтр> СОДЕРЖИТ, фильтр> НЕ СОДЕРЖИТ) но с возможностью фильтрации по большому списку/выделенному диапазону, такое нужно, но намного реже чем фильтр> НЕ РАВНО
Изменено: WS27 - 31.08.2022 12:09:59
Автофильтр по выделенному на другом листе диапазону ячеек
 
Добрый день, у меня задача похожая, но нужно чтобы выделенный диапазон не попадал в отфильтрованные строки, подскажите пжлста как это реализовать?
Макрос промежуточные.итоги, ПРОМЕЖУТОЧНЫЕ.ИТОГИ
 
МатросНаЗебре, Большое спасибо, именно то что нужно 8)
Макрос промежуточные.итоги, ПРОМЕЖУТОЧНЫЕ.ИТОГИ
 
Добрый день!

Имею большую таблицу содержащую и текст и цифры( в одной колонке либо тект, либо цифры), имеется однострочная шапка к этой таблице+автофильтры, хотелось бы иметь макрос действующий следующим образом: встав на любую ячейку в шапке и вызвав макрос хотелось бы иметь формулу(вместо наименования графы шапки активной ячейки) ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109; «диапазон по всей колонке, ниже активной ячейки).  Подскажите пожалуйста как это можно реализовать?
Выделение любого текста цветом в выделенном диапазоне, добавить возможность выбора цвета для выделения конкретного текста
 
Цитата
Msi2102 написал:
For Each c In Cells.SpecialCells(xlCellTypeConstants, xlTextValues)Немного не подойдет
а как это реализовать?
Выделение любого текста цветом в выделенном диапазоне, добавить возможность выбора цвета для выделения конкретного текста
 
Msi2102, спасибо за помощь, как можно сделать чтобы выделял абсолютно все?

Цитата
Александр Моторин написал:
ColBat = ThisWorkbook.Colors(40) 'получаем выбранный код цвета
у меня при его запуске всегда текст красится одним цветом(бледнооранжевый), независимо от того какой я выбрал, проблема в этой строке? как сделать чтобы цвет вставал именно какой я выбираю?
Изменено: vikttur - 22.09.2021 11:00:36
Выделение любого текста цветом в выделенном диапазоне, добавить возможность выбора цвета для выделения конкретного текста
 
Добрый день!
Помогите пожалуйста решить следующую задачу:
Часто приходится  разгребать документы где очень много текта/цифр и тд...из всего это текста мне нужно определенные значения, сейчас я нахожу их с помощью след макроса:
Скрытый текст
выделяю необходимый мне диапазон, будь то строка, столбец или лист и запускаю этот макрос, ввожу ключевую фразу, которую мне необходимо выделить и он быстренько мне все делает. Но есть потребность выделять эти фразы разными цветами.. и хотелось бы иметь возможность выбора цвета(без переписки макроса ручной замены кода)

Как я это вижу:
1. выделяю нужный мне диапазон
2. вызываю макрос
3. в поле ввожу свою ключевую фразу (и вот здесь бы хотелось иметь возможность выбора цвета,по примеру как это реализовано в самом Excel, например вызов формы (во вложении))
Автоматическое закрытие книги, закрывать ненужные отчеты
 
в
Цитата
Hugo написал:
Можно подключить как надстройку.
в надстройку предпочтительней, в свойства книги или в модуль нужно вставить?
Автоматическое закрытие книги, закрывать ненужные отчеты
 
действительно все работает, большое СПАСИБО!!!
Еще вопрос...файл всегда должен быть открыт? или его можно как нибудь спрятать в модуль книги по умолчанию?

P.S.
попробовал , ругается на строчку If InStr(Wb.ActiveSheet.Range("A1"), "ИТОГ") Then
Автоматическое закрытие книги, закрывать ненужные отчеты
 
Цитата
Hugo написал:
1. Лист или книга?
получается новая книга, не так выразился, закрывать приходится каждый файл. (1 - ненужный отчет = 1 файл)

Цитата
Hugo написал:
2. Для всех листов или книг, которые должны НЕ остаться открытыми в этой ячейке могут быть разные значения?
все книги должны быть закрыты , и у этих всех книг содержание ячейки "А1" всегда одно "1. ИТОГ", хоть для 1 отчета, хоть для 101


если возможно, то сделать чтобы если текст ячейки "А1" содержит "ИТОГ", то все эти книги должны быть закрыты, в противном случае другие окна/книги не должны быть закрыты
Изменено: WS27 - 21.09.2020 10:03:02
Автоматическое закрытие книги, закрывать ненужные отчеты
 
Hugo,
Цитата
Hugo написал:
Реально. Если все файлы открываются в одном приложении.
пока работает программа она по готовности выгружает один лист EXCEL, и дальше продолжает работать, по окончании снова открывает новый лист....если подождать достаточно долго (час/полтора) то в итоге получается открыто много окон, которые приходится все закрывать из-за их ненадобности

Цитата
Hugo написал:
Но не понял критерии отбора - что должно быть в A1 в той книге, которая должна остаться открытой?
для всех листов которые должны остаться открытыми в этой ячейке могут быть разные значения: может быть пусто, может быть текст "2. Ошибки", может быть текст "3. Характеристики"
Изменено: WS27 - 21.09.2020 09:51:04
Автоматическое закрытие книги, закрывать ненужные отчеты
 
Добрый день!

При работе в сторонней программе, периодически открываются окна с так называемыми "ненужными отчетами", которые хотелось чтобы сразу закрывались автоматически, при условии если в ячейке "А1" будет содержаться определенный текст, например "1. ИТОГ"
Если появится другое лист "нужный отчет", то имя в той же ячейке "А1" будет всегда другим.

Подскажите как можно это автоматизировать? желательно чтобы "ненужные отчеты" закрывались сразу, без всплывающего окна (сохранить изменения в файле)
Изменено: WS27 - 21.09.2020 08:55:04
При вставке из буфера (MyData.PutInClipboard) появляется абракадабра.
 
У меня сейчас стоит  2010 офис, проблема есть и жутко надоедает :cry:

sokol92,  дело в том что весь тот текст который был изначально(в БО) превращается в эти 2 квадратика, а не дополнительно появляются 2 квадрата...
Страницы: 1 2 3 След.
Наверх