Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копировать строки с одних листов в другой при условии - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копировать строки с одних листов в другой при условии (Макросы/Sub)
Копировать строки с одних листов в другой при условии
biomirror Дата: Пятница, 04.03.2016, 14:29 | Сообщение № 1
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте, уважаемые специалисты))
Вот такая вот появилась задачка:
Есть файл, в котором есть 4 листа: 3 листа - таблицы откуда должны Копироваться данные при определенном условии, 4-й лист (для копирования) - куда должны копироваться эти данные.
Условие:
В таблицах есть столбец LEXWARE: если в этом столбце значения принимают 555555 или 444444, то строку нужно автоматически копировать в таблицу «Для Копирования» (по порядку - без пустых строк).

НО, наверно самое важное, хотел бы узнать, как сделать, чтобы при добавлении нового листа - такой же таблицы с данными и столбцом LEXWARE, данные также бы копировались в таблицу «Для Копирования».

Задачу, наверно лучше решить с помощью макросов. Но если возможно, с помощью формул - не откажусь и от такого варианта решения)
К сообщению приложен файл: __Online_2016_.xlsx(48Kb)


Сообщение отредактировал biomirror - Пятница, 04.03.2016, 16:11
 
Ответить
СообщениеЗдравствуйте, уважаемые специалисты))
Вот такая вот появилась задачка:
Есть файл, в котором есть 4 листа: 3 листа - таблицы откуда должны Копироваться данные при определенном условии, 4-й лист (для копирования) - куда должны копироваться эти данные.
Условие:
В таблицах есть столбец LEXWARE: если в этом столбце значения принимают 555555 или 444444, то строку нужно автоматически копировать в таблицу «Для Копирования» (по порядку - без пустых строк).

НО, наверно самое важное, хотел бы узнать, как сделать, чтобы при добавлении нового листа - такой же таблицы с данными и столбцом LEXWARE, данные также бы копировались в таблицу «Для Копирования».

Задачу, наверно лучше решить с помощью макросов. Но если возможно, с помощью формул - не откажусь и от такого варианта решения)

Автор - biomirror
Дата добавления - 04.03.2016 в 14:29
KuklP Дата: Пятница, 04.03.2016, 15:57 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Для начала - Вам действительно надо переносить? Не копировать? Это сильно разные понятия.


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеДля начала - Вам действительно надо переносить? Не копировать? Это сильно разные понятия.

Автор - KuklP
Дата добавления - 04.03.2016 в 15:57
biomirror Дата: Пятница, 04.03.2016, 16:10 | Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

KuklP, Каюсь, каюсь, каюсь, простите неразумного) Конечно же Копировать. Спасибо, что обратили внимание. Отредактировал тему.


Сообщение отредактировал biomirror - Пятница, 04.03.2016, 16:12
 
Ответить
СообщениеKuklP, Каюсь, каюсь, каюсь, простите неразумного) Конечно же Копировать. Спасибо, что обратили внимание. Отредактировал тему.

Автор - biomirror
Дата добавления - 04.03.2016 в 16:10
KuklP Дата: Пятница, 04.03.2016, 16:11 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

[vba]
Код
Public Sub www()
    Dim sh As Worksheet
    With Sheets("Для Копирования")
    .UsedRange.Offset(1).Clear
        For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "Для Копирования" Then
            sh.AutoFilterMode = 0
            sh.Range("$A$1").CurrentRegion.AutoFilter Field:=10, Criteria1:="=555555" _
                    , Operator:=xlOr, Criteria2:="=444444"
            sh.Range("$A$1").CurrentRegion.Offset(1).SpecialCells(12).Copy .[a65536].End(xlUp)(2, 1)
            sh.AutoFilterMode = 0
            End If
        Next
    End With
End Sub
[/vba]
К сообщению приложен файл: -Online_2016_.xlsm(59Kb)


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 04.03.2016, 16:28
 
Ответить
Сообщение[vba]
Код
Public Sub www()
    Dim sh As Worksheet
    With Sheets("Для Копирования")
    .UsedRange.Offset(1).Clear
        For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "Для Копирования" Then
            sh.AutoFilterMode = 0
            sh.Range("$A$1").CurrentRegion.AutoFilter Field:=10, Criteria1:="=555555" _
                    , Operator:=xlOr, Criteria2:="=444444"
            sh.Range("$A$1").CurrentRegion.Offset(1).SpecialCells(12).Copy .[a65536].End(xlUp)(2, 1)
            sh.AutoFilterMode = 0
            End If
        Next
    End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 04.03.2016 в 16:11
biomirror Дата: Пятница, 04.03.2016, 16:41 | Сообщение № 5
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

KuklP, спасибо, работает. Только не подскажите, как сделать:
1. Чтобы данные переносились автоматически, без вызова макроса.
2. Как сделать, чтобы при добавлении нового листа, копировались строки, которые содержат 555555 или 444444
 
Ответить
СообщениеKuklP, спасибо, работает. Только не подскажите, как сделать:
1. Чтобы данные переносились автоматически, без вызова макроса.
2. Как сделать, чтобы при добавлении нового листа, копировались строки, которые содержат 555555 или 444444

Автор - biomirror
Дата добавления - 04.03.2016 в 16:41
KuklP Дата: Пятница, 04.03.2016, 16:47 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

1. Это надо силу мысли тренировать. Иначе будут копироваться когда ни попадя.
2. А Вы пробовали добавить лист?


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение1. Это надо силу мысли тренировать. Иначе будут копироваться когда ни попадя.
2. А Вы пробовали добавить лист?

Автор - KuklP
Дата добавления - 04.03.2016 в 16:47
biomirror Дата: Пятница, 04.03.2016, 16:58 | Сообщение № 7
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

1. Эммм... странно. Почему куда ни попадя. Нельзя сделать так, чтобы было все тоже самое, что сейчас, - только без вызова макроса или нажатия на кнопку?
2. Пробовал:
а)в Файле есть скрытый лист, при его "открытии" и внесении в него значения "555555" - данные из строки не копируются.
б) создал новый лист, ввел значение 555555 вышла ошибка: RunTime error '1004' Метод AutoFilter из класса Range завершен некорректно

Сильно извиняюсь, хотел бы еще узнать, что значит каждая строчка в коде, а то вот ошибка вышла, а я даже не знаю, как ее исправить))
К сообщению приложен файл: 9428571.xlsm(60Kb)


Сообщение отредактировал biomirror - Пятница, 04.03.2016, 17:29
 
Ответить
Сообщение1. Эммм... странно. Почему куда ни попадя. Нельзя сделать так, чтобы было все тоже самое, что сейчас, - только без вызова макроса или нажатия на кнопку?
2. Пробовал:
а)в Файле есть скрытый лист, при его "открытии" и внесении в него значения "555555" - данные из строки не копируются.
б) создал новый лист, ввел значение 555555 вышла ошибка: RunTime error '1004' Метод AutoFilter из класса Range завершен некорректно

Сильно извиняюсь, хотел бы еще узнать, что значит каждая строчка в коде, а то вот ошибка вышла, а я даже не знаю, как ее исправить))

Автор - biomirror
Дата добавления - 04.03.2016 в 16:58
KuklP Дата: Пятница, 04.03.2016, 17:48 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Вы серьезно?
Нельзя сделать так
- сделайте. Научитесь и сделайте. Добавьте в код сотни проверок для защиты от криворуких юзверей, вот типа:
создал новый лист, ввел значение 555555 вышла ошибка
- куда Вы ввели значение? Там есть таблица на листе? Вы бы еще на заборе "ввели", а потом бы удивлялись - чего это программа не поняла Ваших благих намерений.
появилась задачка
- Вы точно туда попали? Стол заказов на другом подфоруме, а здесь помогают освоить ВБА, если что-то у Вас не получается. >(


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВы серьезно?
Нельзя сделать так
- сделайте. Научитесь и сделайте. Добавьте в код сотни проверок для защиты от криворуких юзверей, вот типа:
создал новый лист, ввел значение 555555 вышла ошибка
- куда Вы ввели значение? Там есть таблица на листе? Вы бы еще на заборе "ввели", а потом бы удивлялись - чего это программа не поняла Ваших благих намерений.
появилась задачка
- Вы точно туда попали? Стол заказов на другом подфоруме, а здесь помогают освоить ВБА, если что-то у Вас не получается. >(

Автор - KuklP
Дата добавления - 04.03.2016 в 17:48
biomirror Дата: Пятница, 04.03.2016, 18:17 | Сообщение № 9
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Добавьте в код сотни проверок для защиты от криворуких юзверей

Я только спросил. Зачем сразу так ругаться... Если бы я знал ответ на вопрос или имел представление, как это работает, я б наверно на форуме бы не стал спрашивать...

- куда Вы ввели значение? Там есть таблица на листе?

Эмм... я не спец. в эксель, обычный пользователь. Как я вижу процесс копирования: на листе в столбце есть определенное значение => строка переносится на другой лист.

появилась задачка

Просто обозначил, что есть проблема, с которой самостоятельно не могу справиться. Зачем к словам-то цепляться.

Но, спасибо, за то, что уже сделали :)
 
Ответить
Сообщение
Добавьте в код сотни проверок для защиты от криворуких юзверей

Я только спросил. Зачем сразу так ругаться... Если бы я знал ответ на вопрос или имел представление, как это работает, я б наверно на форуме бы не стал спрашивать...

- куда Вы ввели значение? Там есть таблица на листе?

Эмм... я не спец. в эксель, обычный пользователь. Как я вижу процесс копирования: на листе в столбце есть определенное значение => строка переносится на другой лист.

появилась задачка

Просто обозначил, что есть проблема, с которой самостоятельно не могу справиться. Зачем к словам-то цепляться.

Но, спасибо, за то, что уже сделали :)

Автор - biomirror
Дата добавления - 04.03.2016 в 18:17
KuklP Дата: Пятница, 04.03.2016, 18:32 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

В таблицах есть столбец LEXWARE: если в этом столбце значения
- там куда Вы "вставили", есть таблица? В НЕЙ есть столбец LEXWARE? Т.е. Вам жутко тяжело нажать кнопку для запуска макроса, но Вы тут же чудите как заблагорассудится и программист должен учесть все возможные косяки? Неужели Вы для создания текстового документа станете запускать дефрагментатор диска? Вот. В Экселе тоже есть правила работы с ним. Будете работать не по правилам, получите ошибки и проблемы. Так устроен мир. Все, машины, компы, бытовые приборы, общество в конце концов :)


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 04.03.2016, 18:32
 
Ответить
Сообщение
В таблицах есть столбец LEXWARE: если в этом столбце значения
- там куда Вы "вставили", есть таблица? В НЕЙ есть столбец LEXWARE? Т.е. Вам жутко тяжело нажать кнопку для запуска макроса, но Вы тут же чудите как заблагорассудится и программист должен учесть все возможные косяки? Неужели Вы для создания текстового документа станете запускать дефрагментатор диска? Вот. В Экселе тоже есть правила работы с ним. Будете работать не по правилам, получите ошибки и проблемы. Так устроен мир. Все, машины, компы, бытовые приборы, общество в конце концов :)

Автор - KuklP
Дата добавления - 04.03.2016 в 18:32
biomirror Дата: Пятница, 04.03.2016, 18:53 | Сообщение № 11
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

В НЕЙ есть столбец LEXWARE?

Во, во во, все, понял :D
Единственное, в скрытом листе, есть столбец LEXWARE. Почему тогда с этого листа строки не копируются, когда он становится открытым?

Т.е. Вам жутко тяжело нажать кнопку для запуска макроса

Просто подумал, что было бы неплохо, если бы строки "сами" копировались, вообще без участия человека. Если честно, я и сейчас думаю, что должно быть какое-нибудь простое несложное решение, чтобы не приходилось "нажимать на кнопку" (ну это же EXEL, он должен мочь)). Вопрос в том, КАК?


Сообщение отредактировал biomirror - Пятница, 04.03.2016, 19:05
 
Ответить
Сообщение
В НЕЙ есть столбец LEXWARE?

Во, во во, все, понял :D
Единственное, в скрытом листе, есть столбец LEXWARE. Почему тогда с этого листа строки не копируются, когда он становится открытым?

Т.е. Вам жутко тяжело нажать кнопку для запуска макроса

Просто подумал, что было бы неплохо, если бы строки "сами" копировались, вообще без участия человека. Если честно, я и сейчас думаю, что должно быть какое-нибудь простое несложное решение, чтобы не приходилось "нажимать на кнопку" (ну это же EXEL, он должен мочь)). Вопрос в том, КАК?

Автор - biomirror
Дата добавления - 04.03.2016 в 18:53
KuklP Дата: Пятница, 04.03.2016, 19:12 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Ну вот, очередной перл от вас - скрытый лист. В топике есть хоть слово о нем? В примере есть скрытый лист? Как я могу судить о том чего в глаза не видел и даже не знал о его существовании? В макросе привязка к Ячейке А1: sh.Range("$A$1").CurrentRegion. Там есть что-нибудь в А1? Нет пропущенных строк? И т.д....


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНу вот, очередной перл от вас - скрытый лист. В топике есть хоть слово о нем? В примере есть скрытый лист? Как я могу судить о том чего в глаза не видел и даже не знал о его существовании? В макросе привязка к Ячейке А1: sh.Range("$A$1").CurrentRegion. Там есть что-нибудь в А1? Нет пропущенных строк? И т.д....

Автор - KuklP
Дата добавления - 04.03.2016 в 19:12
KuklP Дата: Пятница, 04.03.2016, 19:18 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Увидел скрытый лист в примере. Там нет ни одной строки с 55555 и структура таблицы другая.


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеУвидел скрытый лист в примере. Там нет ни одной строки с 55555 и структура таблицы другая.

Автор - KuklP
Дата добавления - 04.03.2016 в 19:18
KuklP Дата: Пятница, 04.03.2016, 19:34 | Сообщение № 14
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Вот так скопирует со скрытого листа при наличии в колонке LEXWARE 555555, но смысл? Съехавшие данные, мусорник в результате. Неправильная работа. Лучше привести все листы к одному виду.
Sub Копирование()
[vba]
Код
Dim sh As Worksheet, m&
    With Sheets("Для Копирования")
    .UsedRange.Offset(1).Clear
        For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "Для Копирования" Then
        m = Application.Match("LEXWARE", Intersect(sh.UsedRange, sh.Rows(1)), 0)
            sh.AutoFilterMode = 0
            sh.Range("$A$1").CurrentRegion.AutoFilter Field:=m, Criteria1:="=555555" _
                    , Operator:=xlOr, Criteria2:="=444444"
            sh.Range("$A$1").CurrentRegion.Offset(1).SpecialCells(12).Copy .[a65536].End(xlUp)(2, 1)
            sh.AutoFilterMode = 0
            End If
        Next
    End With
End Sub
[/vba]


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВот так скопирует со скрытого листа при наличии в колонке LEXWARE 555555, но смысл? Съехавшие данные, мусорник в результате. Неправильная работа. Лучше привести все листы к одному виду.
Sub Копирование()
[vba]
Код
Dim sh As Worksheet, m&
    With Sheets("Для Копирования")
    .UsedRange.Offset(1).Clear
        For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "Для Копирования" Then
        m = Application.Match("LEXWARE", Intersect(sh.UsedRange, sh.Rows(1)), 0)
            sh.AutoFilterMode = 0
            sh.Range("$A$1").CurrentRegion.AutoFilter Field:=m, Criteria1:="=555555" _
                    , Operator:=xlOr, Criteria2:="=444444"
            sh.Range("$A$1").CurrentRegion.Offset(1).SpecialCells(12).Copy .[a65536].End(xlUp)(2, 1)
            sh.AutoFilterMode = 0
            End If
        Next
    End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 04.03.2016 в 19:34
biomirror Дата: Пятница, 04.03.2016, 19:51 | Сообщение № 15
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Ну вот, очередной перл от вас - скрытый лист.

Я эту задачу не совсем себе решаю... Просто коллектив далек от компьютеров да и от техники вообще (как, впрочем и я), но я один не шарахаюсь от различных компьютерных программ. Попросили что-нибудь придумать.
Одной из задач было то, что я обозначил в топике:
НО, наверно самое важное, хотел бы узнать, как сделать, чтобы при добавлении нового листа - такой же таблицы с данными и столбцом LEXWARE, данные также бы копировались в таблицу «Для Копирования».

Видимо слова "такой же таблицы с данными" были лишними.

Увидел скрытый лист в примере. Там нет ни одной строки с 55555 и структура таблицы другая.

Я вбивал в столбец LEXWARE 55555 и другие данные в другие столбцы. Но строка, в которую я вбивал 55555 не скопировалась в "общую" таблицу.

Наверно, правильнее задание будет сформулировать так:
Если в ячейке листа встречается 555555 или 444444, то строку в которой есть это значение, необходимо перенести в таблицу «Для Копирования».
Как это реализовать?
 
Ответить
Сообщение
Ну вот, очередной перл от вас - скрытый лист.

Я эту задачу не совсем себе решаю... Просто коллектив далек от компьютеров да и от техники вообще (как, впрочем и я), но я один не шарахаюсь от различных компьютерных программ. Попросили что-нибудь придумать.
Одной из задач было то, что я обозначил в топике:
НО, наверно самое важное, хотел бы узнать, как сделать, чтобы при добавлении нового листа - такой же таблицы с данными и столбцом LEXWARE, данные также бы копировались в таблицу «Для Копирования».

Видимо слова "такой же таблицы с данными" были лишними.

Увидел скрытый лист в примере. Там нет ни одной строки с 55555 и структура таблицы другая.

Я вбивал в столбец LEXWARE 55555 и другие данные в другие столбцы. Но строка, в которую я вбивал 55555 не скопировалась в "общую" таблицу.

Наверно, правильнее задание будет сформулировать так:
Если в ячейке листа встречается 555555 или 444444, то строку в которой есть это значение, необходимо перенести в таблицу «Для Копирования».
Как это реализовать?

Автор - biomirror
Дата добавления - 04.03.2016 в 19:51
KuklP Дата: Пятница, 04.03.2016, 21:20 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Если в ячейке листа встречается 555555 или 444444, то строку в которой есть это значение, необходимо перенести в таблицу «Для Копирования».
Вы понимаете, что это полнейшая ахинея? Хотите заниматься ерундой - Ваше право, а меня увольте. Вот ваш файл с макросом из #14. В нем скрытый лист с проставленными ключевыми значениями. Напрягитесь, нажмите кнопку в углу. Посмотрите что получилось. Это УЖЕ не таблица с данными, это помойка. А если дебильные юзвери, коих трудно обучить ткнуть кнопку, начнут где не попадя пихать ключевые цифры...
коллектив далек от компьютеров да и от техники вообще
Зачем вообще огород городить? Тетрадку в клеточку, линейку, ручку, карандаш и абак на стол. Безопасней для всех. :)


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Если в ячейке листа встречается 555555 или 444444, то строку в которой есть это значение, необходимо перенести в таблицу «Для Копирования».
Вы понимаете, что это полнейшая ахинея? Хотите заниматься ерундой - Ваше право, а меня увольте. Вот ваш файл с макросом из #14. В нем скрытый лист с проставленными ключевыми значениями. Напрягитесь, нажмите кнопку в углу. Посмотрите что получилось. Это УЖЕ не таблица с данными, это помойка. А если дебильные юзвери, коих трудно обучить ткнуть кнопку, начнут где не попадя пихать ключевые цифры...
коллектив далек от компьютеров да и от техники вообще
Зачем вообще огород городить? Тетрадку в клеточку, линейку, ручку, карандаш и абак на стол. Безопасней для всех. :)

Автор - KuklP
Дата добавления - 04.03.2016 в 21:20
biomirror Дата: Пятница, 04.03.2016, 22:53 | Сообщение № 17
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Вот ваш файл с макросом из #14

Ааа... а где файл)) Попробовал макрос из #14 - почему-то не копирует у меня со скрытого листа.

начнут где не попадя пихать ключевые цифры...

Это будет уже другая проблема.
 
Ответить
Сообщение
Вот ваш файл с макросом из #14

Ааа... а где файл)) Попробовал макрос из #14 - почему-то не копирует у меня со скрытого листа.

начнут где не попадя пихать ключевые цифры...

Это будет уже другая проблема.

Автор - biomirror
Дата добавления - 04.03.2016 в 22:53
KuklP Дата: Пятница, 04.03.2016, 23:03 | Сообщение № 18
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Файл.
К сообщению приложен файл: 1152441.xlsm(62Kb)


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеФайл.

Автор - KuklP
Дата добавления - 04.03.2016 в 23:03
biomirror Дата: Суббота, 05.03.2016, 09:50 | Сообщение № 19
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Да, да, да вот так...
Понял, что вы имели ввиду, когда сказали, что получается полнейшая ахинея - количество столбцов таблицы скрытого листа, откуда копируются данные, не совпадает с количеством столбцов таблицы, куда копируются данные.
Хотел исправить ситуацию вставкой двух пустых столбцов и их последующим скрытием (думал, что скрипт просто переносит данные из столбца А одного листа в столбец А другого), но скрипт перестал работать... Как сделать, чтобы при вставке двух столбцов (после столбца D)и их последующем скрытии, скрипт работал?

Пробовал добавить лист, со структурой как в листе "Для копирования". Создал, внес в столбец LEXWARE в произвольную строчку 555555. Данные почему-то не копировались... Потом внес в другую строчку - стали копироваться. Ничего не мог понять. Потом только заметил, что в исходной таблице строки должны вносится по порядку, иначе копирования происходить не будет. Можно ли сделать так, чтобы строки копировались, если даже они занесены не по порядку?


Сообщение отредактировал biomirror - Суббота, 05.03.2016, 10:34
 
Ответить
СообщениеДа, да, да вот так...
Понял, что вы имели ввиду, когда сказали, что получается полнейшая ахинея - количество столбцов таблицы скрытого листа, откуда копируются данные, не совпадает с количеством столбцов таблицы, куда копируются данные.
Хотел исправить ситуацию вставкой двух пустых столбцов и их последующим скрытием (думал, что скрипт просто переносит данные из столбца А одного листа в столбец А другого), но скрипт перестал работать... Как сделать, чтобы при вставке двух столбцов (после столбца D)и их последующем скрытии, скрипт работал?

Пробовал добавить лист, со структурой как в листе "Для копирования". Создал, внес в столбец LEXWARE в произвольную строчку 555555. Данные почему-то не копировались... Потом внес в другую строчку - стали копироваться. Ничего не мог понять. Потом только заметил, что в исходной таблице строки должны вносится по порядку, иначе копирования происходить не будет. Можно ли сделать так, чтобы строки копировались, если даже они занесены не по порядку?

Автор - biomirror
Дата добавления - 05.03.2016 в 09:50
KuklP Дата: Суббота, 05.03.2016, 10:12 | Сообщение № 20
Группа: Проверенные
Ранг: Старожил
Сообщений: 2110
Репутация: 453 ±
Замечаний: 0% ±

Ну уж нет, выловить все косяки стаи недолугих юзверей... Хлопотно это. Проще контингент обучить, а если не поддаются обучению - гнать в три шеи и набирать новых, поддающихся. Если уж я, сварщик смог освоить это, триста лет мне ненужное, то какой смысл платить зарплату инфузориям, которым это нужно, но они не в состоянии. Судите сами - хочешь работать в Эксе(Ворде, Винде да в чем угодно), изучаешь Экс. А не Экс подстраивается под каждого идиота deal


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеНу уж нет, выловить все косяки стаи недолугих юзверей... Хлопотно это. Проще контингент обучить, а если не поддаются обучению - гнать в три шеи и набирать новых, поддающихся. Если уж я, сварщик смог освоить это, триста лет мне ненужное, то какой смысл платить зарплату инфузориям, которым это нужно, но они не в состоянии. Судите сами - хочешь работать в Эксе(Ворде, Винде да в чем угодно), изучаешь Экс. А не Экс подстраивается под каждого идиота deal

Автор - KuklP
Дата добавления - 05.03.2016 в 10:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копировать строки с одних листов в другой при условии (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!