Страницы: 1
RSS
Редактирование ячейки, создание из одной формы списка другую форму
 
Добрый день. Просьба подсказать, есть ячейка, в ней указан перечень оборудования в определенном виде.
Требуется в соседней ячейке отредактировать этот список, и сделать список другого вида. Файл приложил, в файле есть то, что смог сделать на текущий момент.
застрял на этапе, как применить написанную формулу не только к первому элементу списка, но продолжить на следующие элементы
Изменено: Robot attach you - 13.08.2019 17:39:57
 
оборудования всегда 3 позиции?
Лень двигатель прогресса, доказано!!!
 
ОФФ. Вы принципиально неверно подходите к решению проблемы. Ваши исходные данные и так малопригодны для прямой обработки, а Вы продолжаете лепить все в одну ячейку. Грамотнее будет исходные данные разбить на три отдельных столбца (Тип, Серийный номер, Инвентарный номер) и уже из них склеивать нужные тексты.
Например таким макросом
Код
Option Explicit

Sub MySplit()
Dim lRow&, I&, J&, N&, M&
Dim arr(), arrNew()
Dim iTxt, iStr
lRow = Cells(Rows.Count, "A").End(xlUp).Row
If lRow = 1 Then
    ReDim arr(1, 1)
    arr(1, 1) = Range("A1").Value
Else
    arr = Range("A1:A" & lRow).Value
End If
ReDim arrNew(1 To UBound(arr) * 3, 1 To 3)
For I = LBound(arr) To UBound(arr)
    iTxt = Split(arr(I, 1), Chr(10))
    For J = LBound(iTxt) To UBound(iTxt)
        iStr = Split(iTxt(J), ":")
        Select Case True
            Case iStr(0) Like "*Тип оборудования*": N = 1: M = M + 1
            Case iStr(0) Like "*Серийный*": N = 2
            Case iStr(0) Like "*Инвентарный*": N = 3
        End Select
        If N <> 0 Then
            arrNew(M, N) = Trim(iStr(1))
        End If
        N = 0
    Next
Next
Range("A" & lRow + 2).Resize(M, 3) = arrNew
End Sub
Изменено: Sanja - 13.08.2019 08:16:56
Согласие есть продукт при полном непротивлении сторон
 
Добрый день!
Для трёх устройств в списке. Если будет больше, можете увеличить самостоятельно. Фрагмент между "&" размножить и заменить 2* на 4*
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ($A2;"Тип оборудования:";ПОВТОР(" ";999));1*999;999);"Требуется отключение техники:";ПОВТОР(" ";999));999)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ($A2;"Тип оборудования:";ПОВТОР(" ";999));2*999;999);"Требуется отключение техники:";ПОВТОР(" ";999));999)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ПОДСТАВИТЬ($A2;"Тип оборудования:";ПОВТОР(" ";999));3*999;999);"Требуется отключение техники:";ПОВТОР(" ";999));999));"Серийный номер устройства: ";"сер. № ");"Инвентарный номер устройства: ";"инв. № ")
 
Светлый, Наступило просветление 80го уровня.  :D  
Цитата
Robot attach you написал:
в редактировании ячейки формулами
:D
По вопросам из тем форума, личку не читаю.
 
Инструмент заменить
1) МОЛ*    на    ничего
2) Серийный номер устройства:      на     сер. №
3) Инвентарный номер устройства:     на     инв. №
4) Тип оборудования:  на   ничего
5) Требу*----------------------- на    ничего
Лень двигатель прогресса, доказано!!!
 
Или так. Позиций не ограничено, но есть другое ограничение. Для отключения техники д.б. Нет
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВБ(A2;ПОИСК("МОЛ";A2)-1);"Требуется отключение техники: Нет"&СИМВОЛ(13)&СИМВОЛ(10););": -----------------------"&СИМВОЛ(13)&СИМВОЛ(10););"Тип оборудования: ";);"Серийный номер устройства: ";"сер. № ");"Инвентарный номер устройства: ";"инв. № ")

Или чуть короче:

Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВБ(A2;ПОИСК("МОЛ";A2)-1);"Требуется отключение техники: Нет"&СИМВОЛ(13)&СИМВОЛ(10)&": -----------------------"&СИМВОЛ(13)&СИМВОЛ(10););"Тип оборудования: ";);"Серийный номер устройства: ";"сер. № ");"Инвентарный номер устройства: ";"инв. № ")
Изменено: Светлый - 13.08.2019 08:28:41
Страницы: 1
Наверх