Страницы: 1
RSS
Макрос для копирования строки по условию на определенный лист, помогите новичку.....
 
Здравствуйте уважаемые гуру Excel. Прошу помощи от ваших светлых голов. Для вас может быть моя задача будет элементарной, но для меня, знакомого с макросами 3-й день - это пока сложновато.... Итак задача такая: есть документ со списком файл "база" в столбце R есть маркер которым отмечается строка, и кнопка "переместить". Необходимо, чтобы по нажатию кнопки "переместить" значения отмеченной маркером строки скопировалась в книгу "склад" в ячейку A1, но на лист в зависимости от значения в ячейке "E" копируемой строки. (т.е. если в ячейке "Е" копируемой строки стоит значение "склад-1", то эта строка копируется в лист "Склад-1", а если "Склад -4" - то в лист "Склад-4". При повторном копировании в один и тот же лист - строки заменяются.
Надеюсь понятно изложил....
Если можно с комментариями , хочу понять что как делается.....
Изменено: kroling - 11.09.2016 16:21:25
 
Уверены, что слово "морковь" пишется через "а"? :sceptic:
P.S. Самые лучшие комментарии через F1.
Изменено: kuklp - 11.09.2016 16:14:21
Я сам - дурнее всякого примера! ...
 
Сори, опечатался, делал наспех пример....  С кем не бывает....

Специально для Вас..... :)  
 
Специально для.. а позно уже. Я решение выложил.
Я сам - дурнее всякого примера! ...
 
да приблизительно так - :)  СПАСИБО :) , только перенос строки необходимо было сделать через кнопку, а не постоянным при изменении положения маркера ...  Еще бы понять что за что отвечает , чтоб переделать.... :D  Будем разбираться....   Еще раз спасибо за помощь.
 
Ну раз мой косяк, невнимательно читал топик...
Код
Public Sub www()
    Dim tg As Range
    Set tg = Range("R2:R40").Find("a", , , 1)
    If tg Is Nothing Then Exit Sub
    With GetObject(ThisWorkbook.Path & "\склад.xlsm")
        Cells(tg.Row, 1).Resize(, 17).Copy .Sheets(Cells(tg.Row, 5).Value).[a1]
        Windows(.Name).Visible = -1
        .Close -1
    End With
End Sub
Я сам - дурнее всякого примера! ...
 
Еще раз благодарю.  Подходит идеально. Восхищаюсь Вашим профессионализмом !!!
 
Кстати вспомнил, что такое уже обсуждалось здесь. Давно..
Я сам - дурнее всякого примера! ...
 
а еще подскажите пожалуйста как сделать в вышестоящем макросе так , чтобы после каждого копирования управление передавалось бы на тот лист куда было произведено копирование для последующего ввода данных....(напр в ячейку A3)  
Изменено: kroling - 15.09.2016 15:54:50
 
Код
workbooks("wb_name").sheets("sh_name").range("A3").activate
Изменено: JayBhagavan - 15.09.2016 15:19:05

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Код
Public Sub www()
    Dim tg As Range
    Set tg = Range("R2:R40").Find("a", , , 1)
    If tg Is Nothing Then Exit Sub
    With GetObject(ThisWorkbook.Path & "\склад.xlsm")
        Cells(tg.Row, 1).Resize(, 17).Copy .Sheets(Cells(tg.Row, 5).Value).[a1]
          Windows(.Name).Visible = -1
          Workbooks("склад.xlsm").Activate
   Sheets(Cells(tg.Row, 5).Value).[a3]
       
    End With
End Sub


Вставил в код, но  получилось, что  переходит не на скопированный лист, а на последний активный лист книги "склад.xlsm" , поправьте пожалуйста.....
Страницы: 1
Наверх