Страницы: 1
RSS
Макрос на заполнения ячеек после определенного символа в предыдущей ячейке.
 
Всем доброго времени суток.
Прошу помощи в создании макроса, который бы проверял выделенный мною диапазон ячеек и при обнаружении в каких то из них буквы, например *Д*, он прописывал в последующих за этой ячейкой цифры от 1 до 5.

Например: в F8 значение *Д* , то макрос в последующие ячейки F9-F13 прописывает числа от 1 до 5, соответственно. (без форматирования)

Заранее благодарю за помощь.
Изменено: ridzik - 11.04.2024 18:08:34
 
Вариант
 
Цитата
Например: в F8 значение *Д* , то макрос в последующие ячейки F9-F13 прописывает числа от 1 до 5
Так числа прописывать вниз от ячейки (F9-F13) или вбок?
 
Цитата
написал:
Так числа прописывать вниз от ячейки (F9-F13) или вбок?
Прошу прощения, после работы голова  совсем не варила ^^ (G8,H8,I9,J8,K8)
Igor67, Благодарю вас за помощь. Все работает идеально. Подскажите пожалуйста, что требуется заменить и на что, для того, чтобы не выбирать диапазон, а изначально прописать его в коде макроса,
Изменено: ridzik - 12.04.2024 12:15:34
 
Код
Const myRange = "E5:M24"

Sub poisk()
Dim YourRange As Range, iFoundRng As Range, k As Long
Dim firstAddress As String, findDan As String, arrZam

Set YourRange = Range(myRange)
'Set YourRange = Application.InputBox _
'        (Prompt:="Выделите диапазон ячеек", _
'        Title:="", Type:=8)
'If YourRange Is Nothing Then MsgBox "Выберите диапазон, а то ни чего делать не буду", vbInformation, "НУ?!"

findDan = "д"
arrZam = Split("1~2~3~4~5", "~")
k = UBound(arrZam) + 1
If Not YourRange Is Nothing Then
            Set iFoundRng = YourRange.Find(What:=findDan, LookIn:=xlFormulas, LookAt:=xlWhole) 'поиск
            If Not iFoundRng Is Nothing Then 'если нашли
                firstAddress = iFoundRng.Address 'запоминаем адрес найденной ячейки, чтобы продолжить поиск по листу
                iFoundRng.Offset(, 1).Resize(, k).Value = arrZam
                
                
                'Debug.Print firstAddress
                Do 'цикл поиска, т.к. одно и то же значение может встречаться много раз
                    Set iFoundRng = YourRange.FindNext(iFoundRng) 'продолжаем поиск на том же листе
iFoundRng.Offset(, 1).Resize(, k).Value = arrZam
                    'Debug.Print iFoundRng.Address
                Loop While iFoundRng.Address <> firstAddress
            End If


End If
End Sub
 
МатросНаЗебре,  Благодарю еще раз. Поставленная задача выполняется на ура!
 
Дико извиняюсь за то, что беспокою вновь. Но заметил, что данный макрос рисует в ячейках именно текст. В итоге постоянно напоминание о том, что *число сохранено как текст*. Возможно ли, что бы он заполнял ячейки числами *Общего* формата?
 
Цитата
Возможно ли, что бы он заполнял ячейки числами
после строк
Код
iFoundRng.Offset(, 1).Resize(, k).Value = arrZam

добавьте
Код
iFoundRng.Offset(, 1).Resize(, k).Value = iFoundRng.Offset(, 1).Resize(, k).Value
 
Kuzmich, Благодарю за помощь, все работает.
Страницы: 1
Наверх