Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2011, 23:37   #1
Ant641
 
Регистрация: 22.02.2011
Сообщений: 3
По умолчанию Написание макроса

Добрый день

Все пытаюсь настроить функцию, но никак не получается. Суть в том, чтобы нажимая сочетание клавиш (условно "ctrl + ["), excel переходил в ячейку, откуда были подтянуты данные. Данное действие соответствует двойному щелчку левой кнопкой мыши при отключении функции "allow editing directly in cells". Причем не важно открыт ли файл с искомыми данными, если он закрыт, он открывается.

Буду благодарен за помощь. Спасибо
Ant641 вне форума Ответить с цитированием
Старый 23.02.2011, 00:12   #2
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Ant641 Посмотреть сообщение
Добрый день

Все пытаюсь настроить функцию, но никак не получается. Суть в том, чтобы нажимая сочетание клавиш (условно "ctrl + ["), excel переходил в ячейку, откуда были подтянуты данные. Данное действие соответствует двойному щелчку левой кнопкой мыши при отключении функции "allow editing directly in cells". Причем не важно открыт ли файл с искомыми данными, если он закрыт, он открывается.

Буду благодарен за помощь. Спасибо
Вот когда то на планете делал .....

Код:
Sub Hotkey()
'ful
' Замена горячей клавиши R Dmitry
' При условии что в названии паки нет "'!"
' Сочетание клавиш: любое
'
Dim Ph As String, str As String, sh As String, adCel As String
Dim Ofl As Long, NumP As Long, NumP2 As Long, dp As Byte
str = ActiveCell.Formula
If str Like "*" & "(" & "*" Then str = "=" & Mid(str, InStrRev(str, "(") + 1, InStrRev(str, ",") - InStrRev(str, "(") - 4)
On Error Resume Next
If str = "" Then Exit Sub
Ofl = InStrRev(str, ":\"): NumP = InStrRev(str, "]")
If NumP <> 0 Then
Ph = Replace(Mid(str, 3, InStr(str, "]") - 3), "[", ""): dp = 0
Else
Ph = ActiveWorkbook.Name: dp = 1
End If

If Ofl <> 0 Then
NumP2 = InStrRev(str, "'!"): sh = Mid(str, NumP + dp + 1, NumP2 - NumP - 1): adCel = (Mid(str, NumP2 + 2))
Workbooks.Open Filename:=Ph: Application.Goto Reference:=Sheets(sh).Range(adCel)
Else
NumP2 = InStrRev(str, "!")
If NumP2 = 0 Then
Application.Goto Reference:=Range(Mid(str, 2))
Else
sh = Mid(str, NumP + 1 + dp, NumP2 - NumP - 1 - dp): adCel = (Mid(str, NumP2 + 1))
Application.Goto Reference:=Workbooks(Ph).Sheets(sh).Range(adCel)
End If
End If
End Sub

ВАМ ЭТО НАДО?

http://www.planetaexcel.ru/forum.php...llnum_forum=61
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 23.02.2011 в 00:25.
R Dmitry вне форума Ответить с цитированием
Старый 23.02.2011, 01:28   #3
Ant641
 
Регистрация: 22.02.2011
Сообщений: 3
По умолчанию

Да, огромное спасибо. Именно то, что искал. Не подскажете еще, пожалуйста, как в самом коде прописать горячую клавишу (ctrl + [). А то английский эксель выдает ошибку, когда вводишь знак, а не букву?
Ant641 вне форума Ответить с цитированием
Старый 23.02.2011, 09:40   #4
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Ant641 Посмотреть сообщение
Да, огромное спасибо. Именно то, что искал. Не подскажете еще, пожалуйста, как в самом коде прописать горячую клавишу (ctrl + [). А то английский эксель выдает ошибку, когда вводишь знак, а не букву?
Насколько я помню, назначить вызов макроса можно только сочетанием CTRL + Любая буква, в вашем случае англецкая ,

хотя даже не на все русские выполняется ctrl + х , то же не запускает. Видимо не хочет отправлять пользователя на х....
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 23.02.2011, 11:34   #5
Ant641
 
Регистрация: 22.02.2011
Сообщений: 3
По умолчанию

Спасибо. Просто на работе как-то используется именно это сочетание в экселе. И еще, можно ли усложнить код, чтобы если в строке формул несколько ячеек перечислено, откуда подтянуты данные, он переходил к первой и если например прописана формула "sum" он выделял все искомые ячейки?
Ant641 вне форума Ответить с цитированием
Старый 23.02.2011, 20:10   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Ant641 Посмотреть сообщение
Спасибо. Просто на работе как-то используется именно это сочетание в экселе. И еще, можно ли усложнить код, чтобы если в строке формул несколько ячеек перечислено, откуда подтянуты данные, он переходил к первой и если например прописана формула "sum" он выделял все искомые ячейки?
Для всех формул не сделаешь, да и надо ли оно.............
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка макроса maxillion Microsoft Office Excel 6 15.05.2010 02:13
Написание макроса в экселе lamerkz Помощь студентам 2 03.03.2010 17:17
Работа - написание макроса (не студенты) Renins.com Фриланс 8 02.04.2009 08:37
Запуск макроса с параметрами из другого макроса Saladin Microsoft Office Excel 2 19.01.2009 09:43
Написание макроса для стирания данных Oxidous Microsoft Office Excel 4 05.09.2007 20:05