Страницы: 1
RSS
В Combobox извлечь по первым символам и изменить порядок значения
 
Здравствуйте! Уважаемые знатоки, прошу дать пожалуйста ответ на следующий не большой вопрос.
Имеем список вида:
Иванов Иван Иванович значение1 значение2 значение3 значение4
Необходимо получить: значение4 Иванов И.И.
Нюанс в том что значение4 может быть одним словом или двумя, но между ними всегда пробел.
Изменено: Dobepman - 08.12.2018 20:16:45
 
Здравствуйте.
А можете в файле Excel показать где имеем список и где именно необходимо получить? А то словами понимать и объяснять больно муторно.
Кому решение нужно - тот пример и рисует.
 
Примитивный пример преобразования не без недостатков.
Код
Sub test1()
    Dim iVal$, arr, i&
    Const iName = "Иванов Иван"
    arr = Split(iName)
    For i = 0 To UBound(arr)
        If i > 0 Then iVal = iVal & " " & Left(arr(i), 1) & "." Else iVal = arr(i)
    Next i
    MsgBox iVal
End Sub
Изменено: Nordheim - 06.12.2018 11:14:33
"Все гениальное просто, а все простое гениально!!!"
 
См. вариант.
Находите время отписываться в своих темах: люди ведь тратили своё время, пытаясь оказать Вам помощь, а Вам "времени не хватает на жизнь". И попробуйте обходиться без цитирования, когда в этом нет необходимости.
 
Юрий М, Не пойму что делаю не так(скрин)? rowSource нужен чтобы подсветка срабатывала при наборе первых символов

Nordheim, я так понял Ваш код выводит просто сообщение, нужно то что в сообщение помещать в ячейку, но опять же в сообщении фамилия и инициал имени, от преобразования требуется получить Значение4 Фамилия И.И.

Пытливый,список имеем в имени "спи", получить в активной ячейке.
 
Цитата
Dobepman написал:
rowSource нужен чтобы подсветка срабатывала при наборе первых символов
А причём тут подсветка? Причём тут НАБОР первых символов? Мой вариант заполнит КомбоБокс нужными значениями в нужном порядке.
 
А почему Вы решили, что что-то не так? Рискну предположить, что когда активна форма, никакой ActiveCell не существует... Но это не точно. Да и скрывать форму путём Unload - фиговая идея. Я бы написал в модуле формы
Код
Me.Hide
а в основном сабе -
Код
With UserForm1.ComboBox1
    ActiveCell.value=.List(.ListCount-1,0)
End With
Изменено: StoTisteg - 08.12.2018 21:08:14
 
Юрий М, не подходит т.к. информация в значение1 значение2 значение3  позволяет идентифицировать искомого человека среди однофамильцев с одинаковым именем и отчест.
StoTisteg, спасибо учтем
 
Цитата
Dobepman написал:
список имеем в имени "спи",
Ошибку мы имеем, а не список. А список мы имеем так:
Код
.RowSource=Range("спи").Address
 
Цитата
Dobepman написал:
не подходит т.к. информация в значение1 значение2 значение3
Но Вы же просили ТОЛЬКО переставить четвёртое значение в первую позицию. Про значения 1...3 не было ни слова сказано.
Из файла: "Необходимо получить: значение4 Иванов И.И." - мой макрос решает ЭТУ задачу?
 
Dobepman, я так и не понял, чего Вы хотите добиться и зачем Вам комбо из одной строки? Подвёл Бог Еву к Адаму и сказал: "Выбирай себе жену" :D
 
Цитата
Dobepman написал:
нужно то что в сообщение помещать в ячейку,
так помещайте, кто же вам мешает?
Цитата
Dobepman написал:
в сообщении фамилия и инициал имени
Это как пример сколько будет пробелов столько и получите после фамилии инициалов
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
сколько будет пробелов столько и получите после фамилии инициалов
И превратится Басурманов Азер Алладин оглы в Басурманова А. А. о. :)
 
Цитата
StoTisteg написал:
И превратится Басурманов Азер Алладин оглы в Басурманова А. А. о.
При таких чУдных именах можно цикл сократить до 3 итераций.
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, StoTisteg, Юрий М,Благодарю за помощь
Страницы: 1
Наверх