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

Страницы: 1
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Цитата
vikttur написал:
Поделитесь с 49-ю такими же страждальцами, заслужите почти 50 спасибов
Не люблю отступать от традиций, я так понимаю здесь их чтут))))
И если честно, мне интуевина подсказывает что 49 людей уже решили вопрос точно также как и я. Вполне разумный поступок, можно сказать))
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Цитата
vikttur написал:
Подразните и меня. Где оно?  Я не знаю, как такое реализовать. Поучусь.
В первом сообщении данной темы, коим автором я являюсь, есть приложенные файлы среди них затесался файл "пример", вот там это работает и вполне успешно.  
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Цитата
vikttur написал: Сговорились?
Да ну не я один такое спрашивал, если вбить подобный вопрос в поисковике то найдется около 50 идентичных топиков на разных форумах и нигде по сути нет понятного и доходчивого ответа. Но я лично уже, надеюсь, решил вопрос. А вопрос и вправду насущный для всяких анкет где есть потребность вбивать по одному символу в ячейку, при всем при этом есть пример где это реализовано и он нехило дразнит. И при этом в 90% случаев все знатоки excel в один голос утверждают что это невозможно, а когда им показываешь, вот мол вот тут работает, значит это возможно, все сразу знают как это сделать, но не говорят, ибо "это же и так понятно"
Ну в принципе как и всегда.
Изменено: humoristtt - 01.02.2016 00:11:58
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Цитата
Игорь написал:
Тут много форумчан, желающих подзаработать
Ну что-то пока никто не объявился.
А если с нуля попробовать написать что-то подходящее это тоже не охота?
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Цитата
Игорь написал:
бесплатный макрос, - но требует доработки под ваш файл. можно взять как идею реализации
Вот этот вариант очень хорошо выглядит
Цитата
Игорь написал:
извиняюсь, сразу не посмотрел файлы, - не понял о чем речь
сейчас поглядел, - и исправил свой ответ
Да извиняться не за что, я сам иногда не очень понятно объясняю


А конкретно Вы можете переделать под эти таблицы тот бесплатный макрос? Просто у меня плещутся в моей голове сомнения, по отношению к моим способностям.
Естественно не бесплатно и даже не только за "спасибо"
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Цитата
Юрий М написал:
humoristtt, код следует оформлять соответствующим тегом. Ищите такую кнопку и исправьте своё сообщение. Спасибо!
Сделано
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
По количеству введенных символов в ячейку, как я понимаю. В данном случае 1 символ - автоматический переход в следующую (или заданную)
Также для большего понимания моей странной речи прикрепил файл в котором это реализовано. То есть перед глазами пример того что это возможно, и это работает. Но в силу своей глупости я не понимаю как это сделать в моем случае. Однако возможность реализации решения этой задачи очевидна.
Очень нужно решить вопрос с автопереходом, Нужно реализовать автопереход с одной ячейки в следующую при наборе 1 символа в двух конкретных таблицах
 
Добрый день, пытался разобраться, но мой мозг явно не соображает.
Есть две таблицы конкретных в них нужно реализовать переход из одной ячейки в следующую, чтоб не нажимать постоянно ентер ентер ентер ентер ентер итд.
Есть файл который по всему интернету развешан как пример того что так сделать можно.
Есть примеры кода который вроде должен работать, но я так и не смог его никак применить ибо вообще не программист ни в одном глазу
Пример также сюда пишу:
Помощь оплачивается, аппетиты за помощь устанавливаете Вы. Заранее благодарен
Код
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As LongDim KeybLayoutName As String
 
Const HOOKED_KEYS As String = "f,dult`;pbqrkvyjghcnea[wxio]sm'.z 0123456789@-_\/"
 
Function InRange(Target As range, RangeIn As range) As Boolean
    InRange = Not Intersect(Target, RangeIn) Is Nothing
End Function
 
Function CaseRanges(strkey As String) As String
    If (InRange(ActiveCell, range("A32:AP34"))) Then
        CaseRanges = strkey
        Exit Function
    End If
    If (InRange(ActiveCell, range("38:46, 55:66")) And strkey <> " ") Then
        CaseRanges = "X"
        Exit Function
    End If
    CaseRanges = UCase(strkey)
End Function
 
Function ChangeLang(strkey As String) As String
    Const KEYB_RUS As String = "00000419"
    Const KEYB_ENG As String = "00000409"
    Dim CharsRus As String, CharsEng As String
    CharsRus = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
    CharsEng = "F<DULT~:PBQRKVYJGHCNEA{WXIO}SM"">Zf,dult`;pbqrkvyjghcnea[wxio]sm'.z"
    
    KeybLayoutName = String(9, 0)
    GetKeyboardLayoutName KeybLayoutName
    
    Dim i As Integer
    Dim LangRus As Boolean
    LangRus = (StrComp(KeybLayoutName, KEYB_RUS, vbTextCompare) = 0)
    If LangRus Then
        i = InStr(CharsEng, strkey)
    Else
        i = InStr(CharsRus, strkey)
    End If
    If i = 0 Then
        ChangeLang = strkey
        Exit Function
    End If
    If LangRus Then
        ChangeLang = Mid(CharsRus, i, 1)
    Else
        ChangeLang = Mid(CharsEng, i, 1)
    End If
End Function
 
Sub CellEnterFinish(keycode As Integer)
'    On Error Resume Next
   strkey = CaseRanges(ChangeLang(Chr(keycode)))
    If Not ActiveCell.AllowEdit Then ActiveCell.Next.Activate
    ActiveCell.Value = strkey
    ActiveCell.Next.Activate
End Sub
 
Sub HookKeys(Str As String, FuncName As String)
'   On Error Resume Next
   For i = 1 To Len(Str)
        s = Mid(Str, i, 1)
        If Not IsNumeric(s) Then
            Application.OnKey "{" & s & "}", "'" & FuncName & """" & Asc(s) & """'"
        Else
            sx = CInt(s) + 96
            Application.OnKey s, "'" & FuncName & """" & Asc(s) & """'"
            Application.OnKey "{" & sx & "}", "'" & FuncName & """" & Asc(s) & """'"
        End If
    Next
End Sub
 
Sub UnHookKeys(Str As String)
'    On Error Resume Next
   For i = 1 To Len(Str)
        s = Mid(Str, i, 1)
        If Not IsNumeric(s) Then
            Application.OnKey "{" & s & "}"
        Else
            sx = CInt(s) + 96
            Application.OnKey s
            Application.OnKey "{" & sx & "}"
        End If
    Next
End Sub
 
Private Sub RemovePrev()
'    On Error Resume Next
   If ActiveCell.Value <> "" And ActiveCell.Value <> " " Then
        ActiveCell.Value = ""
        Exit Sub
    End If
    ActiveCell.Previous.Activate
    ActiveCell.Value = ""
End Sub
 
Sub НВР_ХРУЩ_ОднаБукваВКаждойЯчейке()
'    On Error Resume Next
   HookKeys HOOKED_KEYS, "CellEnterFinish"
    Application.OnKey "{BACKSPACE}", "RemovePrev"
    Application.OnKey "{TAB}"
End Sub
 
Private Sub Auto_Close()
    UnHookKeys HOOKED_KEYS
    Application.OnKey "{BACKSPACE}"
End Sub
Изменено: humoristtt - 31.01.2016 18:18:43
Страницы: 1
Наверх