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

Вход

Регистрация

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

 

= Мир MS Excel/Выпадающий список с наполнением в ячейке - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выпадающий список с наполнением в ячейке
Shakal07 Дата: Четверг, 11.09.2025, 07:47 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
Здравствуйте

Имеется некий код VBA (найден в интернете) который позволяет наполнять ячейку значениями выбранными из выпадающего списка.
Значения наполняются через кому, а мне надо чтобы перед последним выбранным значением ставилась буква "и" или другой текст которую указан
Чтобы получалось: если два значения Текст1 и Текст2, если три и более значения Текст1, Текст2 и Текст3.
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Range("BM2:BM10")) Is Nothing And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        newVal = Target
        Application.Undo
        oldval = Target
        If Len(oldval) <> 0 And oldval <> newVal Then
            Target = Target & ", " & newVal
        Else
            Target = newVal
        End If
        If Len(newVal) = 0 Then Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте

Имеется некий код VBA (найден в интернете) который позволяет наполнять ячейку значениями выбранными из выпадающего списка.
Значения наполняются через кому, а мне надо чтобы перед последним выбранным значением ставилась буква "и" или другой текст которую указан
Чтобы получалось: если два значения Текст1 и Текст2, если три и более значения Текст1, Текст2 и Текст3.
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Range("BM2:BM10")) Is Nothing And Target.Cells.Count = 1 Then
        Application.EnableEvents = False
        newVal = Target
        Application.Undo
        oldval = Target
        If Len(oldval) <> 0 And oldval <> newVal Then
            Target = Target & ", " & newVal
        Else
            Target = newVal
        End If
        If Len(newVal) = 0 Then Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub
[/vba]

Автор - Shakal07
Дата добавления - 11.09.2025 в 07:47
Pelena Дата: Четверг, 11.09.2025, 10:13 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19569
Репутация: 4646 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Замените строчку
[vba]
Код
Target = Target & ", " & newVal
[/vba]
на
[vba]
Код
Target = Replace(Target, " и", ",") & " и " & newVal
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Замените строчку
[vba]
Код
Target = Target & ", " & newVal
[/vba]
на
[vba]
Код
Target = Replace(Target, " и", ",") & " и " & newVal
[/vba]

Автор - Pelena
Дата добавления - 11.09.2025 в 10:13
Shakal07 Дата: Четверг, 11.09.2025, 14:59 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
Pelena, Большое спасибо
 
Ответить
СообщениеPelena, Большое спасибо

Автор - Shakal07
Дата добавления - 11.09.2025 в 14:59
Shakal07 Дата: Среда, 15.10.2025, 16:35 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 0 ±
Замечаний: 0% ±

Excel 2k3;2k7;2k10;2k13;2k19
Здравствуйте.

Вопрос об этом же макросе, но немножко другое.
1. Как заставить Этот макрос ссылаться на диапазон данных из столбца умной таблицы.
Чтобы постоянно не редактировать диапазон
А указать так Таблица[Имя столбца]
И если умная таблица увеличится макрос, будет охватывать также и новые строки таблицы

2. Как заставить этот макрос работать из общего файла с макросами (чтобы его не было в файле с данными)

Спасибо
 
Ответить
СообщениеЗдравствуйте.

Вопрос об этом же макросе, но немножко другое.
1. Как заставить Этот макрос ссылаться на диапазон данных из столбца умной таблицы.
Чтобы постоянно не редактировать диапазон
А указать так Таблица[Имя столбца]
И если умная таблица увеличится макрос, будет охватывать также и новые строки таблицы

2. Как заставить этот макрос работать из общего файла с макросами (чтобы его не было в файле с данными)

Спасибо

Автор - Shakal07
Дата добавления - 15.10.2025 в 16:35
elovkov Дата: Четверг, 16.10.2025, 08:13 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 524
Репутация: 84 ±
Замечаний: 0% ±

Excel 2013
2. Как заставить этот макрос работать из общего файла с макросами (чтобы его не было в файле с данными)

1. Создаем файл с макросом
2. Сохраняем как "Надстройка эксель" с расширением .xlam
3. Кладем в C:\Users\ваш юзер\AppData\Roaming\Microsoft\AddIns
4. В эксель параметры - надстройки - внизу управление - перейти... - обзор - выбираем файл - ставим галочку если не поставилась - ок

Или можно его еще положить в
C:\Users\...\AppData\Roaming\Microsoft\Excel\XLSTART


Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица

Сообщение отредактировал elovkov - Четверг, 16.10.2025, 08:15
 
Ответить
Сообщение
2. Как заставить этот макрос работать из общего файла с макросами (чтобы его не было в файле с данными)

1. Создаем файл с макросом
2. Сохраняем как "Надстройка эксель" с расширением .xlam
3. Кладем в C:\Users\ваш юзер\AppData\Roaming\Microsoft\AddIns
4. В эксель параметры - надстройки - внизу управление - перейти... - обзор - выбираем файл - ставим галочку если не поставилась - ок

Или можно его еще положить в
C:\Users\...\AppData\Roaming\Microsoft\Excel\XLSTART

Автор - elovkov
Дата добавления - 16.10.2025 в 08:13
_Boroda_ Дата: Четверг, 16.10.2025, 09:16 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16956
Репутация: 6631 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Как заставить Этот макрос ссылаться на диапазон данных из столбца умной таблицы.

Вместо Range("BM2:BM10") пишем что-то типа
[vba]
Код
Range("ИмяТаблицы[ИмяСтолбца]").Value
[/vba]


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

Вместо Range("BM2:BM10") пишем что-то типа
[vba]
Код
Range("ИмяТаблицы[ИмяСтолбца]").Value
[/vba]

Автор - _Boroda_
Дата добавления - 16.10.2025 в 09:16
  • Страница 1 из 1
  • 1
Поиск:

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