Добрый день. Второй день не могу найти подходящую тему на форуме. Прошу помощи. Задача - вставить в действующий макрос (ВПР, так назову) еще один макрос, который ищет на Листе БМП в 3-й строке первую не пустую ячейку. Смысл такой. Поступил заказ от клиента, кладу его в Лист заказ БМП. ВПРю. Поступает следующий заказ. "ИЩУ ПУСТУЮ ЯЧЕЙКУ в 3-й строке на Листе БМП и вновь вставляю значение заказа. И если не сложно, то бонусом, подтянуть наименование клиента. Заранее БЛАГОДАРЮ.
Добрый день. Второй день не могу найти подходящую тему на форуме. Прошу помощи. Задача - вставить в действующий макрос (ВПР, так назову) еще один макрос, который ищет на Листе БМП в 3-й строке первую не пустую ячейку. Смысл такой. Поступил заказ от клиента, кладу его в Лист заказ БМП. ВПРю. Поступает следующий заказ. "ИЩУ ПУСТУЮ ЯЧЕЙКУ в 3-й строке на Листе БМП и вновь вставляю значение заказа. И если не сложно, то бонусом, подтянуть наименование клиента. Заранее БЛАГОДАРЮ.Re:Я
Мне наверняка вот это подойдет. lLastRow = Cells(Rows.Count,2).End(xlUp).Row
Не, это ищет последнюю заполненную СТРОКУ в столбце 2, а Вам нужно последний заполненный СТОЛБЕЦ в строке 3 (кстати, вопрос - Вам нужно первую пустую или последнюю? - это разные вещи) Вот так можно найти последнюю [vba]
Мне наверняка вот это подойдет. lLastRow = Cells(Rows.Count,2).End(xlUp).Row
Не, это ищет последнюю заполненную СТРОКУ в столбце 2, а Вам нужно последний заполненный СТОЛБЕЦ в строке 3 (кстати, вопрос - Вам нужно первую пустую или последнюю? - это разные вещи) Вот так можно найти последнюю [vba]
_Boroda_ - Вы как всегда меня выручаете. Благодарю. Теперь по макросу Вашему. Мне надо найти именно ПЕРВУЮ. Вопрос почему ищем с ячейки В3? В третье строке могут быть пустые ячейки в поле сводной таблицы. Мне туду ни чего не надо вставлять. А вот строка два всегда будет в раках сводной таблицы заполнена и за пределами таблицы мне и надо найти ячейку первую пустую и вставить туда значение макровса ВПР. М.б. мне заново положить файл с примером? Хотя сейчас его скачал и он там есть по номером 7. На всякий случай выложу сам макрос. И суть всего действия такова. Найти первую пустую ячейку в строке 2 и следом запустить макрос ВПР.( так его назвал) И если возможно, бонусом, что бы не создавать новую тему, привязать НАЗВАНИЕ клиента. В данном примере: Нашел первую пустую ячейку К2. Вставил название клиента из ЛИСТА ЗАКАЗ БМП С4 (постоянная, всегда там будет название клиента), и вставить значение из ВПР. Вот. Если это конечно не сильно нарушает ПРАВИЛА. Сам макрос ВПР, к которому надо все привязать. [vba]
Код
Sub Макрос7() Dim a, b, c, d, e, iLastrow As Long, i As Long, ii As Long
'1. данные в два массива With Лист2 'используется кодовое имя iLastrow = .Cells(Rows.Count, 3).End(xlUp).Row a = Range(.[c3], .Range("C" & iLastrow)).Value End With
With Лист3 'используется кодовое имя iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row b = Range(.[k19], .Range("C" & iLastrow)).Value End With
'2.пустой массив для результата ReDim c(1 To UBound(a), 1 To 9)
With CreateObject("Scripting.Dictionary")
'3.в словарь уникальные и номер строки из массива For i = 1 To UBound(b) .Item(b(i, 1)) = i Next
'4.по словарю из массива b в массив c For i = 1 To UBound(a) If .exists(a(i, 1)) Then c(i, 1) = b(.Item(a(i, 1)), 9) End If Next End With
'5. выгрузка всего массива With Лист2 'используется кодовое имя .[K3].Resize(UBound(c), 1) = c .Activate End With End Sub
[/vba]
_Boroda_ - Вы как всегда меня выручаете. Благодарю. Теперь по макросу Вашему. Мне надо найти именно ПЕРВУЮ. Вопрос почему ищем с ячейки В3? В третье строке могут быть пустые ячейки в поле сводной таблицы. Мне туду ни чего не надо вставлять. А вот строка два всегда будет в раках сводной таблицы заполнена и за пределами таблицы мне и надо найти ячейку первую пустую и вставить туда значение макровса ВПР. М.б. мне заново положить файл с примером? Хотя сейчас его скачал и он там есть по номером 7. На всякий случай выложу сам макрос. И суть всего действия такова. Найти первую пустую ячейку в строке 2 и следом запустить макрос ВПР.( так его назвал) И если возможно, бонусом, что бы не создавать новую тему, привязать НАЗВАНИЕ клиента. В данном примере: Нашел первую пустую ячейку К2. Вставил название клиента из ЛИСТА ЗАКАЗ БМП С4 (постоянная, всегда там будет название клиента), и вставить значение из ВПР. Вот. Если это конечно не сильно нарушает ПРАВИЛА. Сам макрос ВПР, к которому надо все привязать. [vba]
Код
Sub Макрос7() Dim a, b, c, d, e, iLastrow As Long, i As Long, ii As Long
'1. данные в два массива With Лист2 'используется кодовое имя iLastrow = .Cells(Rows.Count, 3).End(xlUp).Row a = Range(.[c3], .Range("C" & iLastrow)).Value End With
With Лист3 'используется кодовое имя iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row b = Range(.[k19], .Range("C" & iLastrow)).Value End With
'2.пустой массив для результата ReDim c(1 To UBound(a), 1 To 9)
With CreateObject("Scripting.Dictionary")
'3.в словарь уникальные и номер строки из массива For i = 1 To UBound(b) .Item(b(i, 1)) = i Next
'4.по словарю из массива b в массив c For i = 1 To UBound(a) If .exists(a(i, 1)) Then c(i, 1) = b(.Item(a(i, 1)), 9) End If Next End With
'5. выгрузка всего массива With Лист2 'используется кодовое имя .[K3].Resize(UBound(c), 1) = c .Activate End With End Sub
китин - благодарю за ответ. саму малость понимаю в макросах. 3 на 2 это не проблема для меня. Проблема это как внедрить поиск первой пустой строки в мой макрос? _Boroda_ - написал, что не видит в примере макроса. Это для меня не большое удивление. Почему его не видно в примере. Я его, макрос. выложил отдельно. Сама процедура. 1. Поиск первой пустой строки в "2" 2. ВПРить и вставлять со К3 значения . (это все работает как положено) Так же с помощью _Boroda_ доделал его. Тема в другой ветке была. [moder]Тема продублирована во ФРИЛАНСе. Эту закрываю[/moder]
китин - благодарю за ответ. саму малость понимаю в макросах. 3 на 2 это не проблема для меня. Проблема это как внедрить поиск первой пустой строки в мой макрос? _Boroda_ - написал, что не видит в примере макроса. Это для меня не большое удивление. Почему его не видно в примере. Я его, макрос. выложил отдельно. Сама процедура. 1. Поиск первой пустой строки в "2" 2. ВПРить и вставлять со К3 значения . (это все работает как положено) Так же с помощью _Boroda_ доделал его. Тема в другой ветке была. [moder]Тема продублирована во ФРИЛАНСе. Эту закрываю[/moder]Re:Я
Сообщение отредактировал Pelena - Вторник, 05.07.2016, 14:02