Доброго времени суток! Подскажите пожалуйста: Пример: Есть множество ячеек пусть это будет А1:J10 так вот пусть на всех не определен формат, пусть он будет общий, но допустим в ячейке В2 в вне зависимости от того на каком языке сейчас находится клавиатура при заполнении выполнялся следующий алгоритм: 4 буква на Engl пробел и 7 цифр. тоесть я допустим набираю(пусть был на кирилице) "кявг9988522" а в данной ячейке отображается следующим образом "RZDU 9988522" Просто у меня форма для ведения статистики по контейнерным перевозкам и мне в одной ячейке для заполнения постоянно приходится переводить язык, потом регистр, пробел и цыфры. Хотелось бы упростить задачу так как все остальное на кирилице. Заранее благодарен PS
Доброго времени суток! Подскажите пожалуйста: Пример: Есть множество ячеек пусть это будет А1:J10 так вот пусть на всех не определен формат, пусть он будет общий, но допустим в ячейке В2 в вне зависимости от того на каком языке сейчас находится клавиатура при заполнении выполнялся следующий алгоритм: 4 буква на Engl пробел и 7 цифр. тоесть я допустим набираю(пусть был на кирилице) "кявг9988522" а в данной ячейке отображается следующим образом "RZDU 9988522" Просто у меня форма для ведения статистики по контейнерным перевозкам и мне в одной ячейке для заполнения постоянно приходится переводить язык, потом регистр, пробел и цыфры. Хотелось бы упростить задачу так как все остальное на кирилице. Заранее благодарен PSПостовой
Ответ нмой е связан с макросами, но полагаю, что программа Punto Switcher вас здорово выручит: набрали в кириллице, шлепнули по клавише Break - раскладка изменилась (если в ручном режиме), если функцию автоматического переключения раскладки изменить. Ну а регистр - это уже ваша будет забота
Ответ нмой е связан с макросами, но полагаю, что программа Punto Switcher вас здорово выручит: набрали в кириллице, шлепнули по клавише Break - раскладка изменилась (если в ручном режиме), если функцию автоматического переключения раскладки изменить. Ну а регистр - это уже ваша будет заботаigrtsk
Инструктор по применению лосей в кавалерийских частях РККА
Массивы раскладок и контролируемый диапазон прописывайте самостоятельно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A2" Then Exit Sub Application.EnableEvents = False arrRus = Array("к", "я", "в", "г") arrEng = Array("r", "z", "d", "u") strc = Left$(LCase(Target.Text), 4) For i = 1 To 4 If strc Like "*[а-я]*" Then For j = LBound(arrRus) To UBound(arrRus) If Mid$(strc, i, 1) = arrRus(j) Then Mid$(strc, i, 1) = arrEng(j) Exit For End If Next End If Next Target = UCase(strc) & " " & Right$(LCase(Cells(2, 1).Text), 7) Application.EnableEvents = True End Sub
[/vba]
Массивы раскладок и контролируемый диапазон прописывайте самостоятельно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A2" Then Exit Sub Application.EnableEvents = False arrRus = Array("к", "я", "в", "г") arrEng = Array("r", "z", "d", "u") strc = Left$(LCase(Target.Text), 4) For i = 1 To 4 If strc Like "*[а-я]*" Then For j = LBound(arrRus) To UBound(arrRus) If Mid$(strc, i, 1) = arrRus(j) Then Mid$(strc, i, 1) = arrEng(j) Exit For End If Next End If Next Target = UCase(strc) & " " & Right$(LCase(Cells(2, 1).Text), 7) Application.EnableEvents = True End Sub
Для наглядности наверное приложу ка я файл, а на листе "ФОРМА ЗАПОЛНЕНИЯ" зеленым цветом обозначу нужную ячейку!!!! RAN подсоби еще плз ни как привязать немогу к своему примеру.
Для наглядности наверное приложу ка я файл, а на листе "ФОРМА ЗАПОЛНЕНИЯ" зеленым цветом обозначу нужную ячейку!!!! RAN подсоби еще плз ни как привязать немогу к своему примеру.Постовой
Private Sub Worksheet_Change(ByVal Target As Range) If Target(1).Address(0, 0) <> "C16" Then Exit Sub Application.EnableEvents = False arrRus = Array("к", "я", "в", "г") arrEng = Array("r", "z", "d", "u") strc = Left$(LCase(Target(1).Text), 4) For i = 1 To 4 If strc Like "*[а-я]*" Then For j = LBound(arrRus) To UBound(arrRus) If Mid$(strc, i, 1) = arrRus(j) Then Mid$(strc, i, 1) = arrEng(j) Exit For End If Next End If Next Target(1) = UCase(strc) & " " & Right$(LCase(Target(1).Text), 7) Application.EnableEvents = True End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target(1).Address(0, 0) <> "C16" Then Exit Sub Application.EnableEvents = False arrRus = Array("к", "я", "в", "г") arrEng = Array("r", "z", "d", "u") strc = Left$(LCase(Target(1).Text), 4) For i = 1 To 4 If strc Like "*[а-я]*" Then For j = LBound(arrRus) To UBound(arrRus) If Mid$(strc, i, 1) = arrRus(j) Then Mid$(strc, i, 1) = arrEng(j) Exit For End If Next End If Next Target(1) = UCase(strc) & " " & Right$(LCase(Target(1).Text), 7) Application.EnableEvents = True End Sub
Я извеняюсь конечно, не силен в таких вещах пока что, но вот создаю модуль, прописываю данный код и все - И программа вообще перестает отзываться. Попробуйте, Файл у меня выше выложен, это самый сокращенный вариант который есть.
Я извеняюсь конечно, не силен в таких вещах пока что, но вот создаю модуль, прописываю данный код и все - И программа вообще перестает отзываться. Попробуйте, Файл у меня выше выложен, это самый сокращенный вариант который есть.Постовой
Anvq понимаю, итак многое сделано, только если можно немного пояснений, я что бы не просто так с потолка, а что бы немного понимать. Если конечно незатруднит. Заранее спасибо!
Anvq понимаю, итак многое сделано, только если можно немного пояснений, я что бы не просто так с потолка, а что бы немного понимать. Если конечно незатруднит. Заранее спасибо!Постовой
Спасибо огромное!!!! но для меня обьясните если не затруднит почему "If Target(1).Address(0, 0) <> "C16" Then Exit Sub " и вообще как прочитать ету строку. Я просто имею еще множество подобных примеров различающихся только количеством букв, мне понять алгоритмЮ ведь не все же домагать по одинаковым примерам
Спасибо огромное!!!! но для меня обьясните если не затруднит почему "If Target(1).Address(0, 0) <> "C16" Then Exit Sub " и вообще как прочитать ету строку. Я просто имею еще множество подобных примеров различающихся только количеством букв, мне понять алгоритмЮ ведь не все же домагать по одинаковым примерам Постовой
Потому,что: 1. у вас имеется MergeCell (объединенная ячейка), что в переводе на русский язык означает - фу, какая мерзость. 2. эта объединенная ячейка при изменении воспринимается как диапазон (Target) с адресом C16:G16. 3. значение меняется только в первой ячейке (Target(1)) с адресом С16. 4. если адрес первой ячейки изменяемого диапазона не С16 - выходим из процедуры. 5. по поводу address(0,0) - вставьте указатель мыши в середину слова address, нажмите F1, и читайте...
Потому,что: 1. у вас имеется MergeCell (объединенная ячейка), что в переводе на русский язык означает - фу, какая мерзость. 2. эта объединенная ячейка при изменении воспринимается как диапазон (Target) с адресом C16:G16. 3. значение меняется только в первой ячейке (Target(1)) с адресом С16. 4. если адрес первой ячейки изменяемого диапазона не С16 - выходим из процедуры. 5. по поводу address(0,0) - вставьте указатель мыши в середину слова address, нажмите F1, и читайте... RAN
Блин - САПАСИБО!!!!!! Доволен и удовлетворен Маленький вопрос на последок а почему Ваш вариант и вариант товарища Anvq имеют разный код, действие то выполняется одно?????
Блин - САПАСИБО!!!!!! Доволен и удовлетворен Маленький вопрос на последок а почему Ваш вариант и вариант товарища Anvq имеют разный код, действие то выполняется одно?????Постовой