Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Принудительное включение Caps Lock в определённых столбцах - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Принудительное включение Caps Lock в определённых столбцах (Макросы/Sub)
Принудительное включение Caps Lock в определённых столбцах
vitos88 Дата: Четверг, 21.09.2017, 09:53 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

Добрый день! Не могу найти решение, помогите, пожалуйста.
Суть в том, что в таблице (прилагается) есть столбец А (ФИО), в котором должны все буквы печататься ПРОПИСНЫМИ. Как сделать так, чтобы именно для столбца А включался Caps Lock?

Спасибо!
К сообщению приложен файл: 8537415.xlsx (10.8 Kb)


Сообщение отредактировал vitos88 - Четверг, 21.09.2017, 09:54
 
Ответить
СообщениеДобрый день! Не могу найти решение, помогите, пожалуйста.
Суть в том, что в таблице (прилагается) есть столбец А (ФИО), в котором должны все буквы печататься ПРОПИСНЫМИ. Как сделать так, чтобы именно для столбца А включался Caps Lock?

Спасибо!

Автор - vitos88
Дата добавления - 21.09.2017 в 09:53
_Boroda_ Дата: Четверг, 21.09.2017, 10:05 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Такой вариант. Поддерживает одновременный ввод в несколько несмежных ячеек (через Контрл+Ентер, например)
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d0_ As Range, d_ As Range
    Set d0_ = Intersect(Target, Range("A3").Resize(UsedRange.Rows.Count))
    If d0_ Is Nothing Then Exit Sub
    Application.ScreenUpdating = 0
    Application.EnableEvents = 0
    For Each d_ In d0_
        If d_ <> "" Then
            d_ = UCase(d_)
        End If
    Next d_
    Application.EnableEvents = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 8537415_1.xlsm (18.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант. Поддерживает одновременный ввод в несколько несмежных ячеек (через Контрл+Ентер, например)
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d0_ As Range, d_ As Range
    Set d0_ = Intersect(Target, Range("A3").Resize(UsedRange.Rows.Count))
    If d0_ Is Nothing Then Exit Sub
    Application.ScreenUpdating = 0
    Application.EnableEvents = 0
    For Each d_ In d0_
        If d_ <> "" Then
            d_ = UCase(d_)
        End If
    Next d_
    Application.EnableEvents = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 21.09.2017 в 10:05
vitos88 Дата: Четверг, 21.09.2017, 11:26 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

Спасибо! Скажите, пожалуйста, где в коде прописано, что он применяется только к первому столбцу (на случай, если я решу переместить его)?
 
Ответить
СообщениеСпасибо! Скажите, пожалуйста, где в коде прописано, что он применяется только к первому столбцу (на случай, если я решу переместить его)?

Автор - vitos88
Дата добавления - 21.09.2017 в 11:26
Karataev Дата: Четверг, 21.09.2017, 11:35 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Этот вариант нажимает/отжимает клавишу Caps Lock.
К сообщению приложен файл: 8537415.xlsb (17.1 Kb)


Сообщение отредактировал Karataev - Четверг, 21.09.2017, 11:56
 
Ответить
СообщениеЭтот вариант нажимает/отжимает клавишу Caps Lock.

Автор - Karataev
Дата добавления - 21.09.2017 в 11:35
vitos88 Дата: Четверг, 21.09.2017, 11:44 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

Этот вариант нажимает/отжимает клавишу Caps Lock.


Спасибо! Скажите, где в коде содержится указание на первую колонку, чтобы можно было их поменять, если надумаю. Допустим, переместить на 4.
 
Ответить
Сообщение
Этот вариант нажимает/отжимает клавишу Caps Lock.


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

Автор - vitos88
Дата добавления - 21.09.2017 в 11:44
Karataev Дата: Четверг, 21.09.2017, 11:54 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
vitos88, добавил в пост 4 комментарий в код. В одной строке кода надо указать номер столбца, а именно здесь:
[vba]
Код
If Target.Column <> 1 Then
[/vba]
PS. Не цитируйте посты целиком. Чтобы ответить, не нужно щелкать кнопку "Цитата", а достаточно прокрутить страницу вниз и там будет поле для написания поста. Если хотите к кому-то обратиться, то просто напишите ник.


Сообщение отредактировал Karataev - Четверг, 21.09.2017, 11:57
 
Ответить
Сообщениеvitos88, добавил в пост 4 комментарий в код. В одной строке кода надо указать номер столбца, а именно здесь:
[vba]
Код
If Target.Column <> 1 Then
[/vba]
PS. Не цитируйте посты целиком. Чтобы ответить, не нужно щелкать кнопку "Цитата", а достаточно прокрутить страницу вниз и там будет поле для написания поста. Если хотите к кому-то обратиться, то просто напишите ник.

Автор - Karataev
Дата добавления - 21.09.2017 в 11:54
_Boroda_ Дата: Четверг, 21.09.2017, 12:17 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
где в коде прописано, что он применяется только к первому столбцу

Вот этот кусок
[vba]
Код
Range("A3").Resize(UsedRange.Rows.Count)
[/vba]дает нам диапазон от А3 смещением вниз на столько ячеек, какой номер последней строки на листе, в которой есть что-нибудь


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
где в коде прописано, что он применяется только к первому столбцу

Вот этот кусок
[vba]
Код
Range("A3").Resize(UsedRange.Rows.Count)
[/vba]дает нам диапазон от А3 смещением вниз на столько ячеек, какой номер последней строки на листе, в которой есть что-нибудь

Автор - _Boroda_
Дата добавления - 21.09.2017 в 12:17
vitos88 Дата: Четверг, 21.09.2017, 12:59 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

Всем большое спасибо! Задача решена.
 
Ответить
СообщениеВсем большое спасибо! Задача решена.

Автор - vitos88
Дата добавления - 21.09.2017 в 12:59
vitos88 Дата: Пятница, 22.09.2017, 09:15 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

_Boroda_, Новый день настал, появилась новая задача. Как в коде добавить ещё один произвольный столбец, например N, с такими же свойствами?
Думаю, что его нужно где-то здесь указать:
[vba]
Код
Set d0_ = Intersect(Target, Range("A3").Resize(UsedRange.Rows.Count))
[/vba]


Сообщение отредактировал vitos88 - Пятница, 22.09.2017, 10:39
 
Ответить
Сообщение_Boroda_, Новый день настал, появилась новая задача. Как в коде добавить ещё один произвольный столбец, например N, с такими же свойствами?
Думаю, что его нужно где-то здесь указать:
[vba]
Код
Set d0_ = Intersect(Target, Range("A3").Resize(UsedRange.Rows.Count))
[/vba]

Автор - vitos88
Дата добавления - 22.09.2017 в 09:15
_Boroda_ Дата: Пятница, 22.09.2017, 09:20 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Оформите код тегами (кнопка # в режиме правки поста)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОформите код тегами (кнопка # в режиме правки поста)

Автор - _Boroda_
Дата добавления - 22.09.2017 в 09:20
vitos88 Дата: Пятница, 22.09.2017, 10:42 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

_Boroda_, сделано.

Путём проб и ошибок, нашлось решение:
Нужно вставить ещё одну строку, где указать новый столбец.
[vba]
Код
Set d0_ = Intersect(Target, Range("A3").Resize(UsedRange.Rows.Count))
Set d0_ = Intersect(Target, Range("N3").Resize(UsedRange.Rows.Count))
[/vba]

Надеюсь, всё правильно.


Сообщение отредактировал vitos88 - Пятница, 22.09.2017, 11:01
 
Ответить
Сообщение_Boroda_, сделано.

Путём проб и ошибок, нашлось решение:
Нужно вставить ещё одну строку, где указать новый столбец.
[vba]
Код
Set d0_ = Intersect(Target, Range("A3").Resize(UsedRange.Rows.Count))
Set d0_ = Intersect(Target, Range("N3").Resize(UsedRange.Rows.Count))
[/vba]

Надеюсь, всё правильно.

Автор - vitos88
Дата добавления - 22.09.2017 в 10:42
_Boroda_ Дата: Пятница, 22.09.2017, 11:02 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так например можно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d0_ As Range, d_ As Range
    Set d0_ = Intersect(Target, Range("A:A,N:N"))
    If d0_ Is Nothing Then Exit Sub
    Application.ScreenUpdating = 0
    Application.EnableEvents = 0
    For Each d_ In d0_
        If d_.Row > 2 Then
            If d_ <> "" Then
                d_ = UCase(d_)
            End If
        End If
    Next d_
    Application.EnableEvents = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]

Неужели приведенный Вами выше кусок действительно работает так, как нужно?
К сообщению приложен файл: 8537415_2.xlsm (19.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак например можно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d0_ As Range, d_ As Range
    Set d0_ = Intersect(Target, Range("A:A,N:N"))
    If d0_ Is Nothing Then Exit Sub
    Application.ScreenUpdating = 0
    Application.EnableEvents = 0
    For Each d_ In d0_
        If d_.Row > 2 Then
            If d_ <> "" Then
                d_ = UCase(d_)
            End If
        End If
    Next d_
    Application.EnableEvents = 1
    Application.ScreenUpdating = 1
End Sub
[/vba]

Неужели приведенный Вами выше кусок действительно работает так, как нужно?

Автор - _Boroda_
Дата добавления - 22.09.2017 в 11:02
vitos88 Дата: Пятница, 22.09.2017, 11:05 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 5 ±
Замечаний: 0% ±

_Boroda_, Неа, не работает, как оказалось...
 
Ответить
Сообщение_Boroda_, Неа, не работает, как оказалось...

Автор - vitos88
Дата добавления - 22.09.2017 в 11:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Принудительное включение Caps Lock в определённых столбцах (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!