Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2016, 18:26   #1
Тохес
Новичок
Джуниор
 
Регистрация: 11.03.2016
Сообщений: 2
По умолчанию Макрос для переноса (с удалением) данных с одного листа на другой при появлении дополнительных данных в ячейке - MS Excel

Уважаемые форумчане, доброго дня.

Прошу помочь по следующему вопросу:

Во вложении файл Excel, необходимо переносить строки (с удалением), начиная с 4-ой с Листа "КЗ" в Лист "КЗ (На корректировке)" при следующем условии: в столбце "E" соответствующей строки появляется слово "Корректировка".

Во вложении файл Excel, необходимо переносить строки (с удалением), начиная с 4-ой с Листа "КЗ" в Лист "КЗ (Аннулированные)" при следующем условии: в столбце "E" соответствующей строки появляется слово "Аннулирована".

Спасибо огромное!
Вложения
Тип файла: xlsx Документооборот_.xlsx (20.1 Кб, 38 просмотров)
Тохес вне форума Ответить с цитированием
Старый 11.03.2016, 20:51   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Несколько недель назад IgorGO писал похожее, ... но Вам ведь надо заточенный макрос под Ваш файл, самим дорабатывать не вариант?

как-то так
1. создать модуль
2. поместить код
3. запустить любым известным способом
Код:
Sub cutAndPaste()
    Dim sh As Worksheet, shKor As Worksheet, shAnnul As Worksheet
    Dim rng As Range
    Dim sCellText As String
    Dim r As Integer
    Set sh = Sheets("КЗ")
    Set shKor = Sheets("КЗ (На корректировке)")
    Set shAnnul = Sheets("КЗ (Аннулированные)")
    r = 4
    With sh
        Do While .Cells(r, 1).Value <> ""
            sCellText = UCase(sh.Cells(r, 5))
            If InStr(sCellText, "КОРРЕКТИРОВКА") > 0 Then
                If rng Is Nothing Then Set rng = .Cells(r, 1) Else Set rng = Union(rng, .Cells(r, 1))
                .Range(.Cells(r, 1), .Cells(r, 6)).Copy
                shKor.Cells(shKor.Cells(shKor.Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
            End If
            If InStr(sCellText, "АННУЛИРОВАНА") > 0 Then
                If rng Is Nothing Then Set rng = .Cells(r, 1) Else Set rng = Union(rng, .Cells(r, 1))
                .Range(.Cells(r, 1), .Cells(r, 6)).Copy
                shAnnul.Cells(shAnnul.Cells(shAnnul.Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
            End If
            r = r + 1
        Loop
    End With
    rng.EntireRow.Delete
    Set sh = Nothing
    Set shKor = Nothing
    Set shAnnul = Nothing
    Set rng = Nothing
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 11.03.2016 в 21:56.
Aleksandr H. вне форума Ответить с цитированием
Старый 15.03.2016, 22:26   #3
Тохес
Новичок
Джуниор
 
Регистрация: 11.03.2016
Сообщений: 2
По умолчанию

Спасибо.

Очень помогли!
Тохес вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос переноса строки из одного листа в другой ссержа Microsoft Office Excel 7 04.04.2016 15:03
макрос для excel (перенести данные с одного листа на другой с выполнением условия) TomSawyer Microsoft Office Excel 3 28.11.2014 12:36
Вопрос переноса данных с одного листа на другой в определенной последовательности Виктория1986 Microsoft Office Excel 4 23.12.2012 23:42
Формула для переноса значения с одного листа на другой Олег197709 Microsoft Office Excel 12 12.07.2010 10:52
Перенос данных с одного листа на другой при совпадении параметров Nekota Microsoft Office Excel 5 18.02.2010 13:17