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

Страницы: 1
Диспетчер имен меняет ссылку на файл, в котором лежит набор картинок
 
Цитата
Sanja, спасибо БОЛЬШОЕ, теперь все идеально работает!
Интересно Вы используете Me (я смог лишь загуглить, что в VBA это ключевое слово).
Но с чем его едят и под каким соусом - это осталось загадкой.
Диспетчер имен меняет ссылку на файл, в котором лежит набор картинок
 
Цитата
написал:
     
Sanja, к сожалению код не работает, как надо.
1. Удаление имен при закрытии работает на ура, но он удаляет все имена, а мне нужно оставить то, что касается диапазона печати. Другими словами, мне нужно удалить только именованный диапазон ФИО.
2. При запуске не создает ничего. Я даже подправил код (сделал переносы с нижними подчеркиваниями), но это не дало результатов
Private Sub Workbook_Open()
On Error Resume Next
Application.DisplayAlerts = False
'добавить имя
Me.Names.Add _
   Name:="ФИО", _
   RefersTo:="=ИНДЕКС('[Образец для барабанов.xlsm]Данные'!$F$21:$F$30;'Паспорт качества'!$E$31)"
Application.DisplayAlerts = True
End Sub
Диспетчер имен меняет ссылку на файл, в котором лежит набор картинок
 
Sanja, ОГРОМНЕЙШЕЕ СПАСИБО! Внедрю - отчитаюсь.  
Диспетчер имен меняет ссылку на файл, в котором лежит набор картинок
 
Цитата
написал:
Sanja
Тут обсуждалось . Возможно станет понятнее
Спасибо за отсылку. Только там остановились на самом интересном - как макросом исправить ссылку в Диспетчер задач. Не поможете ли с этим?
Изменено: lyolyk_p - 31.07.2024 19:35:05
Диспетчер имен меняет ссылку на файл, в котором лежит набор картинок
 
Цитата
написал:
BodkhiSatva
А если макросом на открытие?
Добрый день. Кое-что уже пишу на VBA. Но ещё слабоват. А макрорекордер при попытке записи процесса очистки или изменения ссылки в "Диспетчере имён" упорно молчит. Не поможете с макросом, переписывающим ссылку?  
Изменено: lyolyk_p - 31.07.2024 19:37:38
Диспетчер имен меняет ссылку на файл, в котором лежит набор картинок
 
Уважаемые форумчане! Прошу помощи. Имеется один "файл-источник", в котором на одном листе в ячейках лежат картинки (там подписи исполнителей и их штампы). "Файлы-потребители" этих картинок находятся в близлежащих папках. Картинка через диспетчер задач заполняется на листы "файла-потребителя" в зависимости от выбранных Фамилии И.О. исполнителей. Почему я реализовал такую систему: если вставлять картинки на отдельные листы каждого файла - требуется подгонка по размеру, т.к штампы и подписи немного по разному смещены. Плюс такие файлы будут весить в разы больше.

Теперь к сути: связь между файлами работает только в случае, если "файл-источник" открыт (в отличие скажем от функции ВПР, которая может найти связанное значение в другом файле даже когда тот закрыт). Но это полбеды.
Самое противное, что в диспетчере имен без конца перебивается ссылка на "файл-источник" сразу, как только файл закрывается, и открывается вновь. Excel переписывает ссылку, указывая полный путь. И при этом ссылки перестают работать. Приходится копировать короткую ссылку и тогда все начинает работать.
Короткая ссылка из Диспетчера имен: =ИНДЕКС('[Образец для барабанов.xlsm]Данные'!$F$21:$F$30;'Паспорт качества'!$E$31)
Длинная ссылка из Диспетчера имен: =ИНДЕКС('K:\ОТК\СМК\Протоколы испытаний +сертификаты+бирки\БЛАНКИ протокол+паспорт+бирка\[Образец для барабанов.xlsm]Данные'!$F$21:$F$30;'Паспорт качества'!$E$31)
Скрин диспетчера имен, а также формирование второго значения для функции ИНДЕКС также прикладываю.

Если требуется еще какая-то информация - прошу написать об этом.
Организация работы макросов в группе однотипных файлов
 
Цитата
МатросНаЗебре


Вставить макрос в файлы можно макросом. Тут хороший источник по макросам, которые пишут макросы: Programming In The VBA Editor (cpearson.com)
Спасибо, поизучаю. Он правда на инглише, но думаю разберусь.
Организация работы макросов в группе однотипных файлов
 
Всем спасибо за ответы! Нашел нужную ветку на https://www.planetaexcel.ru/techniques/3/6154/.
Буду стряпать свою надстройку.
Организация работы макросов в группе однотипных файлов
 
Добрый день, уважаемые форумчане.
Прошу на основании опыта ответить на полагаю несложный вопрос, ответ на который для меня очень важен.
Я только делаю первые шаги в VBA (то бишь чайник).

Итак, на сервере в одной корневой папке с несколькими вложенными папками хранятся однотипные книги, имеющие одинаковое название листов.
Для упрощения работы я написал простенький макрос, который распечатывает 1 экз. с третьего листа, 1 экз. с первого листа и 2 экз. со второго листа.
Для запуска макроса на первый лист я добавил кнопку.
Такой макрос мне нужно вставить во все однотипные книги.
Варианты решения (о которых я знаю):
1) в каждой книге копипастить макрос и привязывать его к кнопке
2) в одной книге создать макрос, а к кнопкам в других книгах привязать этот макрос. По факту такой вариант работает (т.к. используется объект "ActiveWorkbook" и он запускает макрос в разрезе книги, в которой нажата кнопка, но не чревато ли это подводными камнями?..
3) Вариант с макросом в Личной папке макросов для меня не подходит, т.к. с книгами будет работать 2-3 пользователя.

Суть вопроса:
Как лучше реальзовать работу? по п.1), по п.2) или есть другой вариант?
Макрос - ниже.


Sub ПечатьБарабан()
'
' Печать Макрос

' Объявляем переменные для листов
   Dim sh01 As Worksheet
   Dim sh02 As Worksheet
   Dim sh03 As Worksheet

' Присваиваем листам имена
Set sh01 = ActiveWorkbook.Worksheets("Протокол испытаний")
Set sh02 = ActiveWorkbook.Worksheets("Паспорт качества")
Set sh03 = ActiveWorkbook.Worksheets("Бирка на барабан")

' Распечатываем
sh03.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
sh01.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
sh02.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False

' Курсор возвращаем в левый верхний угол листа "Протокол испытаний"
   Sheets("Протокол испытаний").Select
   Range("A1").Select
End Sub
Изменено: lyolyk_p - 29.05.2024 13:14:03
Прошу помочь написать макрос, выделяющий диапазон заполненных ячеек
 
Цитата
МатросНаЗебре написал:

27.05.2024 09:36:57

КодSub Выделение2()
   Dim lastRow As Long
   lastRow = Cells(Rows.Count, 4).End(xlUp).Row
   If lastRow < 4 Then Exit Sub
   ...
Теперь все отлично работает. Огромное спасибо, МатросНаЗебре!
Изменено: lyolyk_p - 28.05.2024 09:27:35
Прошу помочь написать макрос, выделяющий диапазон заполненных ячеек
 
Цитата
написал:
МатросНаЗебре
 
23.05.2024 14:28:04

КодSub Выделение()
   Dim rng As Range
   Dim lastRow As Long
   
   lastRow = [COUNTA(D:D)+3]
   
   Range("D4", "M" & lastRow).Select
End Sub
Добрый день, МатросНаЗебре. Прошу прощения за долгую обратную связь. Спасибо за вариант. Протестировал только сейчас. Функция COUNTA считает и ячейки с формулами, даже если они выдают "". Такой вариант тоже не работает, к сожалению.
Прошу помочь написать макрос, выделяющий диапазон заполненных ячеек
 
Цитата
написал:
21.05.2024 15:52:24

Sub Выделение()
   Dim rng As Range
   Dim lastRow As Long
   
   lastRow = [COUNT(D:D)+3]
   
   Range("D4", "M" & lastRow).Select
End Sub
Спасибо, testuser. Потестил этот код. Он отлично работает при условии, что в ячейках графы D указаны только числовые значения. Но в моем случае там марка продукции (например "Литол-24", "АК-47"). Такие ячейки макрос игнорирует. Понимаю, что сам не уточнил этот момент. Можно ли сделать, чтобы содержимое с символами макрос учитывал, а игнорировал только ячейки, в которых формула выдает "" ?
Изменено: lyolyk_p - 23.05.2024 13:44:51
Прошу помочь написать макрос, выделяющий диапазон заполненных ячеек
 
Цитата
написал:
Если правильно понял то так.

Прикрепленные файлы
Выделение заполненного диапазона в колонках D-M.xlsm  (41.89 КБ)
Добрый день, Артем. В любом случае спасибо за потраченное время. Не совсем понимаю, как работает предложенный Вами макрос. Для чистоты эксперимента я "протянул" формулу "=ЕСЛИ(1=2;1;"")" до двухсотой строки, перекрыв ей свою абракадабру. Макрос выделяет какой-то смешанный диапазон - от D4 до M52, и от E53 до M200. Тем самым 1) в выбранном диапазоне невозможно выполнить сортировку, эксель с ума сходит, 2) В диапазон продолжают включаться "пустые исходя из формулы" ячейки столбца D.
Если Вам  будет удобнее, прошу мою часть кода удалить, возможно она мешает. Иначе получается шляпа. Это кусок кода из бескрайних просторов интернета. Вывод информационного окна (MsgBox "A1" ) непринципиален и даже лишний.

Я наваял такой файл (во вложении). Недостаток в том, что пришлось заполнять формулы в графу С и ячейку В4. Хотелось бы уметь обходиться без таких танцев с бубном.
Изменено: lyolyk_p - 21.05.2024 14:38:19
Прошу помочь написать макрос, выделяющий диапазон заполненных ячеек
 
Доброго времени суток, уважаемые формучане.
Прошу помочь с написанием макроса, который бы выделял диапазон ячеек в графах от  D до M.

Условия, которые нужно выполнить:
Ячейка начала диапазона фиксированная - D4.
Ячейка конца диапазона: строка соответствует позиции последней заполненной ячейки в графе D; графа M.
Значения ячеек в графах D-M переносятся с помощью прямых ссылок с другого листа (из данного файла их убрал). Ячейки в графе D, в которых стоит формула, выдающая "", не должны учитываться при выделении диапазона.


Попытка загуглить такой макрос результатов не принесла. А запись макроса дает только фиксированный диапазон.
Файл, о котором речь - прикладываю.
Заранее благодарен
Как ускорить эксель?, задействовать всю производительность компьютера для работы Эксель
 
Цитата
написал:
БМВ Модератор
4. Судя по тому что ЕЧИСЛО(ПОИСК("пру";G5)) и подобное - в ячейке ищется что-то и если находится , то принимается решение это не организовать через ВПР, можно сократить типа искать перечень из массива и если нашлось ,то брать значение по индексу в этом массиве, но это может оказаться медленнее, так как обрабатываются все варианты.

Спасибо за обратную связь, БМВ (и Вам, Sanja, тоже).
Действительно, попробовал перейти на ВПР и в дуба въехал. С кусками текста он не работает. Видимо, оставлю все как есть и буду допиливать формулу, если появятся новые частички текста, которые нужно учитывать в расчете числового кода ячейки.
Как ускорить эксель?, задействовать всю производительность компьютера для работы Эксель
 
Всем доброго времени суток. Вроде вопрос по данной теме...
Прошу подсказать на основании ВАШЕГО личного опыта.
По работе пришлось создавать десятиэтажную формулу, которую логично было бы сделать намного меньше, используя ВПР и разместив данные для подбора значений на основании содержимого ячеек текста на отдельном листе. Но, во-первых, работа уже проделана и вроде файл не тормозит.  А больше беспокоит тот факт, не станет ли такой файл более тяжелым и не начнет ли подтормаживать?
Итак, ЧТО ЛУЧШЕ: оставить все внутри формул или использовать ВПР с таблицами на отдельном листе?
Заранее благодарен.

Пример формулы: =10000000*ЕСЛИ(ЕЧИСЛО(ПОИСК("пру";G5));14; ЕСЛИ(ЕЧИСЛО(ПОИСК("звд";G5));15; ЕСЛИ(ЕЧИСЛО(ПОИСК("рвр";G5));8; ЕСЛИ(ЕЧИСЛО(ПОИСК("апу";G5));7; ЕСЛИ(ЕЧИСЛО(ПОИСК("вврв";G5));1; ЕСЛИ(ЕЧИСЛО(ПОИСК("юдл";G5));13; ЕСЛИ(ЕЧИСЛО(ПОИСК("счв";G5)); 5; ЕСЛИ(ЕЧИСЛО(ПОИСК("пуб";G5));6;ЕСЛИ(ЕЧИСЛО(ПОИСК("мип";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("счм";G5));3;ЕСЛИ(ЕЧИСЛО(ПОИСК("топ";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("уву";G5));9;ЕСЛИ(ЕЧИСЛО(ПОИСК("ццы";G5));10;ЕСЛИ(ЕЧИСЛО(ПОИСК("рпе";G5));11;ЕСЛИ(ЕЧИСЛО(ПОИСК("цвап";G5));12;ЛОЖЬ)))))))))))))))+1000000*ЕСЛИ(ЕЧИСЛО(ПОИСК("dde";G5));1;ЕСЛИ(ЕЧИСЛО(ПОИСК("sddf";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("ghbyt";G5));3; ЕСЛИ(ЕЧИСЛО(ПОИСК("dfe";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("lkj";G5));5; ЕСЛИ(ЕЧИСЛО(ПОИСК("wsdd";G5));6;ЕСЛИ(ЕЧИСЛО(ПОИСК("dcerd";G5));7;ЕСЛИ(ЕЧИСЛО(ПОИСК("jki";G5));8;0))))))))+100000*ЕСЛИ(ЕЧИСЛО(ПОИСК("®";G5));1;ЕСЛИ(ИЛИ(ЕЧИСЛО(ПОИСК("(N,XS)";G5));ЕЧИСЛО(ПОИСК("(N, BG)";G5)));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("(MJ)";G5));3;0)))+10000*ПСТР(G5;AF5-1;1)+1000*ЕСЛИ(ПСТР(G5;AF5+1;2)="10";9;ЕСЛИ(ПСТР(G5;AF5+1;3)="2,5";5;ЕСЛИ(ПСТР(G5;AF5+1;3)="1,5";3;ЕСЛИ(ПСТР(G5;AF5+1;3)="0,5";2;ЕСЛИ(ПСТР(G5;AF5+1;4)="0,75";7;ЕСЛИ(ПСТР(G5;AF5+1;2)="16";8;ПСТР(G5;AF5+1;1)))))))+100*ЕСЛИ(ЕЧИСЛО(ПОИСК("123";G5));1;ЕСЛИ(ЕЧИСЛО(ПОИСК("-1";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("649";G5));3;ЕСЛИ(ЕЧИСЛО(ПОИСК("787";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("бел";G5));1;ЕСЛИ(ЕЧИСЛО(ПОИСК("жел";G5));2;ЕСЛИ(ЕЧИСЛО(ПОИСК("чер";G5));3;ЕСЛИ(ЕЧИСЛО(ПОИСК("кра";G5));4;ЕСЛИ(ЕЧИСЛО(ПОИСК("син";G5));5;ЕСЛИ(ЕЧИСЛО(ПОИСК("оран";G5));6;))))))))))
Формирование сводной таблицы, в которой из каждой строки исходной таблицы формируется от одной до четырех строк
 
Serg091, здравствуйте . Я нашел, как попасть в PQ. Но все же как решить мою задачу? С помощью каких стандартных кнопок? Подскажите, пожалуйста  
Формирование сводной таблицы, в которой из каждой строки исходной таблицы формируется от одной до четырех строк
 
Цитата
написал:
andypetr

05.04.2024 06:44:37

С доп. столбцом - так формулы проще. Предполагается, что в Исходной таблице № п/п начинается с 1.
Как быть с Маркой продукции? Я правильно понимаю, что она меняется на +1 в конце, если оканчивается на 0?
Благодарю, andypetr. Очень интересный вариант. В моменте смогу его реализовать, т.к. он проще. Но с кнопками PQ тоже поразбираюсь, если коллеги помогут.
Марка продукции является неизменной для всех вновь образованных их исходной строк.
Формирование сводной таблицы, в которой из каждой строки исходной таблицы формируется от одной до четырех строк
 
Цитата
написал:
Serg091

04.04.2024 15:13:10


Еще вариант PQ.
Спасибо, Serg091. А где можно почитать, как работать с кнопками Power Query? Никогда с ними раньше не сталкивался. Или может быть кратко сможете пояснить, как вы это использовали для решения моей задачи.
Формирование сводной таблицы, в которой из каждой строки исходной таблицы формируется от одной до четырех строк
 
Цитата
написал:
 

04.04.2024 14:53:36

вариант PQ кнопками
Спасибо, Vik_tor. А где можно почитать, как работать с кнопками Power Query? Никогда с ними раньше не сталкивался. Или может быть кратко сможете пояснить, как вы это использовали для решения моей задачи.
Формирование сводной таблицы, в которой из каждой строки исходной таблицы формируется от одной до четырех строк
 

Добрый день, уважаемые форумчане. Прошу помочь в решении задачи. Требуется сформировывать сводную таблицу, в которой из каждой строки исходной таблицы формируется от одной до четырех строк. При этом
- информация из граф A-F копируется в новые образовавшиеся строки;
- количество новых трок зависит от комбинаций "количество бухт - длина" в исходной строке.
- значения из граф G-N индивидуально переносятся в образовавшиеся строки сводной таблицы.
Файл с исходной таблицей и желаемой сводной таблицей прикладываю.
Стрелочки добавлены в файл для улучшения понимания чего я хочу.
Заранее благодарен.

Страницы: 1
Наверх