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

Страницы: 1 2 След.
Копирование АДРЕСА текущей ячейки в буфер обмена, или как быстро создавать внутренние гиперссылки по книге?, Нужно для быстрого создания гиперссылок внутри книги Excel с кучей листов.
 
webley,
Как-то странно копирует адрес в буфер.
см 1й скрин-каст https://i.imgur.com/DhMBVrc.gif


МатросНаЗебре,
В буфер копирует через раз, то нормально, то ошибка, как и на предыдущем макросе от webley
Из буфера обратно ссылку не вставляет, даже если она "нормально" скопировалась.
2й скрин-каст: https://i.imgur.com/JSJEso0.gif

Файл для растерзания приложил. Заполнен случайными данными.

ЧЯДНТ? (пока всё это без хоткеев, тупо в лоб через gui, а потом и хоткей и кнопки на риббон сделаю)
Копирование АДРЕСА текущей ячейки в буфер обмена, или как быстро создавать внутренние гиперссылки по книге?, Нужно для быстрого создания гиперссылок внутри книги Excel с кучей листов.
 
Задача: быстро создавать навигацию по книге с кучей листов.

Как сейчас:
1. запомнить в голове адрес и лист целевой ячейки
2. Переходим на лист, где создаем ссылку
3. CTRL+K
4. Мучительно ищем в огромном списке нужный лист (а по дефолту Excel предлагает список имен, а не листов! Жутко бесит и неудобно. Т.е. и тут лишние клики мышки, нажать "место в документе", потом закрыть "определённые имена", потом уже открыть "список листов" и искать нужный)
5. Ручками пишем адрес ячейки.


Как хочу:
1. Хоткей на копирование в буфер адреса ячейки с полным путем. Какой?
2. Переходим на лист, где создаем ссылку
3. CTRL+K (или что-то другое, если есть такой вариант)
4. CTRL+V — но сильно сомневаюсь, что прокатит, т.к. мне надо не только адрес ячейки вставить, но ещё и путь до целевого листа. Как тогда ещё можно?


Всякие макросы для автоматического создания оглавления у меня есть, но мне необходимо создавать всякие внутренние переходы между листами, а не через оглавление.

PS. Если есть хоть какой-то вариант решения задачи через Надстройку Plex или ASAP — то тоже пойдет, они обе у меня есть.
Изменено: zamboga - 24.01.2024 14:52:30
Сортировка выделенных ячеек столбца "умной таблицы"
 
Цитата
написал:
Диапазон в массив, сортируем массив, выгружаем обратно отсортированный массив.
Можно чуть подробнее? Вы имеете в виду преобразовать "умную" в "обычную"? Массив же это формулы со {}, чёт не могу сообразить, как их здесь использовать.
Сортировка выделенных ячеек столбца "умной таблицы"
 
Цитата
написал:
Когда вы сортируете в диапазоне, Excel спрашивает, нужно-ли расширить диапазон, а когда вы используете "таблицу", он ничего не спрашивает, просто расширяет.И у вас 2 выхода, на выбор - отказаться от "таблицы", или отказаться от сортировки.
2ALL: я правильно понимаю, что в 2023г проблема до сих пор не решена?
Т.е. если у нас диапазон или "умная таблица", то выполнить сортировку выделения, т.е. лишь только части "умной таблицы" (диапазона) в принципе невозможно?
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Jungl,это бомба=)

Спасибо!
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Цитата
Jungl написал:
К сожалению мне не удалось после вызова формы установить фокус на браузере, чтобы можно было сразу скроллить, а не кликать мышкой на селекты. Может кто подскажет.
Как вариант, искать координаты центра монитора/рабочего окна Excel, (диалоговое окно ведь появляется в центре) и вызывать событие "Клик мышкой в эту точку". Но реализация такого пока вне сферы моих знаний в VBA.
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Цитата
JeyCi написал:
- фильтровать в листбокс по вводимому значению в текстбокс... и скроллить не надо будет
интересная мысль. Т.е. реализовать что-то типа быстрого поиска. Это, возможно, будет еще удобнее в итоге, чем большая простыня с поиском и выбором нужного листа.
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Цитата
Dima S написал:
Открою вам секрет - по сочетанию клавиш можно запускать макрос, который переходит на лист из содержанием)
Знаю=)
Но диалоговое окошко-Листбокс в центре экрана мне показалось удобнее.
Цитата
Dima S написал:
Когда листов 40-80 или "овердофига" - тут нужно задуматься в другом направлении - а правильные ли инструменты я использую для работы с данными.
Цитата
Мотя написал:
АБСОЛЮТНО согласна!!!
Цитата
Grr написал:
Если все листы будут с накопительным числовым индексом и постоянным префиксом (как в приложенном примере), то можно запрашивать номер листа Inputbox-ом и осуществлять переход на соответствующий лист
Число листов и их имена динамически меняются.

Я работаю с контекстной рекламой, каждый лист — список запросов определенной группы, группы образуются тоже динамически (комбинированием разных типов слов), так что число листов динамически меняется в зависимости от проекта.
Есть разные самописные скрипты, в зависимости от результата их работы мне надо "ручками" проверить 2-5-10-100-n ячеек, взглянуть на итоговый результат их работы.
По другому хранить проекты, запускать по ним скрипты будет еще неудобнее. В Access лезть пока  не хочу=)
Поэтому мне нужен быстрый и удобный способ прыгать между листами.

Цитата
С.М. написал:
Что бы нажать одновременно CTRL+ALT+W всё равно придётся отпустить замученную работой мышу.
Дайте ей отдохнуть !
Кто вам сказал? Хоткей под левой рукой нажимается идеально, правая управляет мышой. На "чистый" Alt повесить не могу, т.к. "панель быстрого доступа" и так давно занята.

Цитата
RAN написал:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=54585&TITLE_SEO=54585&MID=495...
Цитата
JeyCi написал:
перехватом сообщений WM_MOUSEWHEEL ... (в общем и целом)
Спасибо, конечно, но в стартовом топике я именно про это и писал, удивляясь, что когда в ListBox появляется скролл-бар, он не работает, и решения, что я нашел — перехватывать колесо мыши с кучей глюков. Собсна, мой вопрос то был: какого фига так сложно, может есть проще способ, который я не выгуглил?

Цитата
Jungl написал:
Вариант с webbrowser. К сожалению мне не удалось после вызова формы установить фокус на браузере, чтобы можно было сразу скроллить, а не кликать мышкой на селекты. Может кто подскажет.


быстрый переход на лист(web).xlsm  (65.2 КБ)
Прикольная реализация, но отсутствие фокуса на старте, конечно, непонятно. А такую форму можно сделать динамически расширяемой по высоте в зависимости от числа строк?
Изменено: zamboga - 14.12.2016 13:48:54
Изменять размер ListBox в зависимости от длины списка, VBA
 
Logistic,спасибо, но это примерно тоже самое, что я сам написал, только в вашем варианте чуть больше информации выводится.

Ваш вариант, как и мой, не делает автоматический ресайз окошка с формой в зависимости от числа листов.
Вызов штатного окна со списком листов горячей клавишей и в центр окна, Хоткей или на VBA
 
По просьбе модераторов -- один вопрос, одна тема. Где вы увидели дубликат?
Здесь речь о стандартном окошке выбора листов, на который хочу хоткей и вызов в центр монитора.

В соседних темах — самописный макрос для той же задачи, т.к. стандартными средствами не знаю как это сделать.
Изменено: zamboga - 14.12.2016 13:36:54
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Цитата
zamboga написал: А если листы без номеров, а имеют текстовые имена?
Цитата
Мотя написал: Это не имеет никакого значения - проверьте!
Это я к тому, что если есть цифровой индекс — то искать нужный лист — легче.

Цитата
Мотя написал: С переходами с листа на лист - проблематично...
Вот именно поэтому я и написал то, что  в первом посте=)

Цитата
Karataev написал: Если только для себя, то попробуйте ListView
Поизучал. Решил, что мне все-таки лень его сейчас внедрять.

Обнаружил, что если в диалоговом окне в форме ListBox зажать ЛЕВУЮ кнопку мыши и НЕ ОТПУСКАТЬ её, то можно скроллировать список, просто двигая саму мышку вверх и вниз.
Вызов штатного окна со списком листов горячей клавишей и в центр окна, Хоткей или на VBA
 
MonsterBeer, Plex платный.
У меня бесплатный ASAP, там такого нет.
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Мотя, это и так у меня есть, первый лист в моем рабочем файле в рабочем файле и есть лист с индексами. Оглавление листов сделать не сложно=)

Когда листов овердофига, то скажите мне, как мне быстро перейти, например, с листа 40 на лист 80? А если листы без номеров, а имеют текстовые имена?
Ваш сценарий:
1. найти лист 1 в длинном горизонтальном списке листов (или мышкой идти в левый нижний угол, и выбирать там через ПКМ. Но там я сразу выберу нужный лист).
2. перейти на этот лист
3. перейти с него на нужный лист.

Мой сценарий:
1. Хоткей со списком листов
2. Сразу переход на нужный.
Вызов штатного окна со списком листов горячей клавишей и в центр окна, Хоткей или на VBA
 
Есть стандартный список всех листов, который вызывается ПКМ в левом нижнем углу.
На большом мониторе прыгать мышкой туда-сюда постоянно не очень удобно. Что побудило меня написать простенький скрипт, который вызывает список листов для быстрого перехода к нужному. Но и там не все хорошо, т.к. есть проблема со скроллом, и проблема с автоматическим ресайзом формы.

Может быть, я зря изобретаю велосипед, и все проще?

Как вызывать это стандартное окно с листами горячей клавишей? Как сделать так, чтобы это окно вызывалось в центр рабочей области?
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Запускать буду только у себя. Но если еще и отдельную среду для такой мелочи надо разворачивать, то это тоже костыль какой-то, что не айс.
Как сделать скролл на Listbox?, быстрый переход на другой лист через список листов
 
Excel 2016.
У меня файл с кучей листов. Делаю удобный переход между ними (да, я знаю что можно нажать ПКМ в левом нижнем углу самого Excel, где стрелки перехода между листами, но туда надо тянуться мышкой, что не очень удобно на большом мониторе).

Список листов вызывается сочетанием CTRL + ALT + W
Переход на нужный лист — двойной щелчок на нужном листе или кнопкой.

Вопрос. Как сделать, чтобы работал скролл мышкой в Listbox? Яндекс с гуглом предлагают страшные решения по перехвату мышиного колесика с глюками и без гарантии нормальной работы. Неужели так все плохо? Ведь если скролл-бар автоматом появляется, по логике, сам скролл мышкой должен работать. Может опция какая-то специфическая есть у ListBox, которую я не выгуглил?
Изменять размер ListBox в зависимости от длины списка, VBA
 
Excel 2016.
У меня файл с кучей листов. Делаю удобный переход между ними (да, я знаю что можно нажать ПКМ в левом нижнем углу самого Excel, где стрелки перехода между листами, но туда надо тянуться мышкой, что не очень удобно на большом мониторе).

Список листов вызывается сочетанием CTRL + ALT + W
Переход на нужный лист — двойной щелчок на нужном листе или кнопкой.

Вопрос. Можно ли сделать, чтобы размер Listbox'a (и размер самой формы) автоматически менялся в зависимости от числа элементов в ней?
Изменено: zamboga - 14.12.2016 00:23:25
Можно ли задать массив через Range, добавив формулу для каждого элемента? Или только цикл?, на VBA
 
Казанский, тфу ты, как просто. Надо было попробовать так написать сразу, но я что-то не рискнул так кодить для массива=))

Спасибо!
Не открывается гиперссылка, заблокирована возможным нарушением бехопасности
 
В данном случае безопасность не причем.

Проблема в том, что Excel не видит файл по указанному вами пути.
Проверяйте синтаксис пути, синтаксис имени файла, синтаксис имени листа.
Код
=ГИПЕРССЫЛКА("[d:\папка с пробелами\файл с пробелами.xlsx]'Имя листа с пробелами'!"&АДРЕС(41;3);"Имя ссылки")

Путь + имя файла + имя листа обрамляется двойными кавычками " "
путь + имя файла обрамляется квадратными скобками [ ]
Имя листа обрамляется одинарными кавычками, апострофами ' '
После имени листа еще и добавляется восклицательный знак.
Можно ли задать массив через Range, добавив формулу для каждого элемента? Или только цикл?, на VBA
 
Файл прикладывать смысла нет, вопрос короткий.

Задаю массив. Для простоты кода переменные заменены на абсолютные значения.
Код
arr = Range(Cells(1, 1), Cells(10, 10)).Value

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

Как прикрутить функцию Application.Trim("ячейка") к массиву, чтобы в него попадали уже обработанные данные, без лишних пробелов?
Только циклом или есть синтаксис для этого?
Выделение из исходного текста поиска Google, если в результате поиска есть ссылка на ru.wikipedia.org
 
1. Полагаю, это из-за того, что на гугле (да и на яндексе) ссылки не прямые на источник, а через их внутреннюю систему аналитики + формат urlencode:
Код
https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiH1OilxO7QAhXEWCwKHQ5dDQ0QFggaMAA&url=https%3A%2F%2Fru.wikipedia.org%2Fwiki%2F%25D0%259A%25D0%25B0%25D0%25BC%25D0%25B5%25D0%25BD%25D0%25B8%2C_%25D0%259A%25D0%25B0%25D1%2580%25D0%25BB%25D0%25BE%25D1%2581&usg=AFQjCNErBafn2fe1qncWF2O5xiOoRTwDbQ&sig2=y4rNAfuqoHndpLepZ4yyqw&cad=rja
2. А что бы вам напрямую в википедии не искать? https://ru.wikipedia.org/w/index.php?search=Carlos+Kameni&title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1...
Не могу прервать выполнение процедуры по нажатии кнопки или по "крестику"
 
The_Prist,спасибо, разобрался!

Для "пришельцев" с поисковых систем. Пауза для скрипта VBA с возможностью продолжения.
Во вложении итоговый код (скрипт) на VBA, который решает задачу:
  • Поставить скрипт на паузу, показать окно продолжения (НЕ модальное)
  • Пользователь может сделать любые действия в Excel, не прерывая сам скрипт
  • Продолжить скрипт по нажатию "Ок" / прервать скрипт по нажатию на "Выход" или "крестик"
Изменено: zamboga - 12.12.2016 00:29:32
Не могу прервать выполнение процедуры по нажатии кнопки или по "крестику"
 
heso, нет, так как как раз, пока форма Visible, я через DoEvents могу выполнять любые действия в книге, так как окно UserForm1 НЕ модальное.

Казанский, я понял ошибку с "глобальностью", и спасибо за "выход"!
Хочется еще, чтобы при нажатии на "крестик" так же была остановка скрипта. Сейчас же поведение такое, как будто я просто скрываю форму.
Никто не знает, можно ли как-то перехватывать нажатие на "крестик"?

Как вариант, можно попробовать сделать наоборот, делать "выход" по условию "UserForm1 = invisible, но тогда как мне реализовать по-другому задачу "поставить скрипт на паузу, сделать действия в книге, продолжить скрипт"?
Не могу прервать выполнение процедуры по нажатии кнопки или по "крестику"
 
Для "пришельцев" с поисковых систем. Пауза для скрипта VBA с возможностью продолжения.
Вложение "Пауза для скрипта с возможностью продолжения.xlsm"

Во вложении итоговый код (скрипт) на VBA, который решает задачу:
  • Поставить скрипт на паузу, показать окно продолжения (НЕ модальное)
  • Пользователь может сделать любые действия в Excel, не прерывая сам скрипт
  • Продолжить скрипт по нажатию "Ок" / прервать скрипт по нажатию на "Выход" или "крестик"

Первоначальный вопрос. Вложение "Выход.xlsm" с ошибкой, прерывание скрипта еще не реализовано.
Скрытый текст
Изменено: zamboga - 10.12.2016 14:02:43
Как запустить цикл только по определенным (выделенным мышкой) листам книги?, на VBA
 
конечно, это попадалось. Я ищу по-русски, типа http://vba-help.ru/vbahelp/excel/Worksheet/
Как запустить цикл только по определенным (выделенным мышкой) листам книги?, на VBA
 
JayBhagavan,
Цитата
zamboga написал:
Справка — это первое, что я пытаюсь использовать. Но по непонятной причине она у меня пропала:  http://prntscr.com/dguwcg  , поэтому приходится гуглить каждую проблему.
Как запустить цикл только по определенным (выделенным мышкой) листам книги?, на VBA
 
Казанский, нажал F2, много думал=))

Все, что я пока нашел в сети, носит разрозненный характер, и я не думал, что объектов так много, поэтому и попросил его список с полным описанием.

Я в свое время нагуглил и изучил такие объекты, как [Application, Workbooks, Workbook, Sheets, Worksheets, Worksheet, Rows, Columns, Range].
Но подозревал, что объектов больше, чем этот список, т.к. как минимум, я еще знаю ActiveWorkbook, ActiveSheet, ActiveWindow.
Кроме того, для многих функций и объектов в VBA после их написания и установки "точки" выводится список их свойств и методов (.Count, .Select и т.д.)

Я не всегда понимаю разницу между, например, Worksheets и Sheets, Worksheet и Sheet, поэтому приходится каждый раз гуглить.
В общем, мне пока очень не хватает справочника по базовым объектам/функциям и их синтаксису.
Как запустить цикл только по определенным (выделенным мышкой) листам книги?, на VBA
 
Цитата
Sanja написал:
Самому допилить не вариант не интересно?
Ещё как интересно. Наоборот, сижу, ковыряю VBA вместо основной работы=))

Sanja, Юрий М, я не заметил, что в примере Sanja там тоже .SelectedSheets. Мой комментарий относился к If...Then
Код
    If sh.Name = "Sheet1" Then
        MsgBox "Sheet1 is selected"
        Exit For
    End If
Как запустить цикл только по определенным (выделенным мышкой) листам книги?, на VBA
 
Цитата
The_Prist написал: кстати, в большинстве случаев активировать лист вообще нет нужды.
Действительно, в моем случае это почти не нужно. Спасибо, подтолкнули в правильном направлении, причесал скрипт, убрал ненужные Activate.

Цитата
Sanja написал: Пример из штатной справки
Справка — это первое, что я пытаюсь использовать. Но по непонятной причине она у меня пропала: http://prntscr.com/dguwcg , поэтому приходится гуглить каждую проблему.
Приведенный вами пример мне не совсем подходит (вернее, не подходит), т.к. у меня нет задачи запустить скрипт только на одном, заранее определенном листе. Мне надо запускать скрипт на разных Листах в разных Книгах (в том числе сгенерированных другими скриптами), и комбинации Листов каждый раз могут быть разные.


Цитата
The_Prist написал:For Each sh In ActiveWindow.SelectedSheets
спасибо, опять выручили! То, что нужно.

А нет у кого-нибудь ссылки со списком всех Объектов + их Свойства и Методы?
Пока всё, что я нагуглил — там не было свойства "SelectedSheets".
Как запустить цикл только по определенным (выделенным мышкой) листам книги?, на VBA
 
Сейчас так:
Код
    For Each sh In Sheets
        sh.Activate
        ...        'много букв
    Next
Работа ведется по всем листам книги.


А как сделать цикл только по выделенным листам, которые выделяем в обычном окне Excel, мышкой, перед запуском макроса?
Страницы: 1 2 След.
Наверх