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

Вход

Регистрация

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

 

= Мир MS Excel/Собрать данные со всех листов по критерию - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Собрать данные со всех листов по критерию (Макросы/Sub)
Собрать данные со всех листов по критерию
китин Дата: Вторник, 27.12.2016, 11:01 | Сообщение № 1
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Доброго времени суток уважаемые. Случилось так, что накропал я небольшого "уродца" . Его задача собрать определенные данные на один лист "Дефицит". Данные он исправно собирает. Но вот незадача: мне эти данные надо собирать со всех листов книги , кроме листов "План" и "Литье". А как это сделать не знаю.


помогите :'( пожалуйста
К сообщению приложен файл: 9752827.xlsm (87.8 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Вторник, 27.12.2016, 11:03
 
Ответить
СообщениеДоброго времени суток уважаемые. Случилось так, что накропал я небольшого "уродца" . Его задача собрать определенные данные на один лист "Дефицит". Данные он исправно собирает. Но вот незадача: мне эти данные надо собирать со всех листов книги , кроме листов "План" и "Литье". А как это сделать не знаю.


помогите :'( пожалуйста

Автор - китин
Дата добавления - 27.12.2016 в 11:01
K-SerJC Дата: Вторник, 27.12.2016, 12:25 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
если отдельным sub сделать цикл, по sheets.count
и в нем проверки поставить, что выбраный лист не "План" и "Литье"
а передать в саб имя листа
Sub diff(sh_name as string)
в коде "О23" заменить на sh_name


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениеесли отдельным sub сделать цикл, по sheets.count
и в нем проверки поставить, что выбраный лист не "План" и "Литье"
а передать в саб имя листа
Sub diff(sh_name as string)
в коде "О23" заменить на sh_name

Автор - K-SerJC
Дата добавления - 27.12.2016 в 12:25
Manyasha Дата: Вторник, 27.12.2016, 12:57 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Игорь, здравствуйте, наверное так?


В начале макроса написано:
[vba]
Код
R = Range("D" & Rows.Count).End(xlUp).Row + 1
Worksheets("Дефицит").Select

Range("A3:V" & R).Select
[/vba]
Если макрос всегда запускается с листа Дефицит, то select не нужен, а если нет, тогда R может неправильно посчитаться.

Проставила везде листы на всякий случай, и селекты закомментила.
К сообщению приложен файл: 9752827-1.xlsm (92.0 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИгорь, здравствуйте, наверное так?


В начале макроса написано:
[vba]
Код
R = Range("D" & Rows.Count).End(xlUp).Row + 1
Worksheets("Дефицит").Select

Range("A3:V" & R).Select
[/vba]
Если макрос всегда запускается с листа Дефицит, то select не нужен, а если нет, тогда R может неправильно посчитаться.

Проставила везде листы на всякий случай, и селекты закомментила.

Автор - Manyasha
Дата добавления - 27.12.2016 в 12:57
китин Дата: Вторник, 27.12.2016, 14:08 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Марина спасибо!!!! На рабочем файле отработал на УРА!!! hands hands hands
Вот только на 18 листах работал 3,5 минуты. А как его можно оптимизировать, что бы побыстрее?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеМарина спасибо!!!! На рабочем файле отработал на УРА!!! hands hands hands
Вот только на 18 листах работал 3,5 минуты. А как его можно оптимизировать, что бы побыстрее?

Автор - китин
Дата добавления - 27.12.2016 в 14:08
_Boroda_ Дата: Вторник, 27.12.2016, 14:31 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Игорь, посмотри такой вариант
К сообщению приложен файл: 9752827_2.xlsm (84.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИгорь, посмотри такой вариант

Автор - _Boroda_
Дата добавления - 27.12.2016 в 14:31
китин Дата: Вторник, 27.12.2016, 14:49 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Саша привет! Взрыв мозга. Работает моментально. Только вот куда впихнуть [vba]
Код
Selection.SpecialCells(xlCellTypeVisible).Select
[/vba]
что бы копировались только видимые ячейки?Ну и вставлялись тоже


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеСаша привет! Взрыв мозга. Работает моментально. Только вот куда впихнуть [vba]
Код
Selection.SpecialCells(xlCellTypeVisible).Select
[/vba]
что бы копировались только видимые ячейки?Ну и вставлялись тоже

Автор - китин
Дата добавления - 27.12.2016 в 14:49
_Boroda_ Дата: Вторник, 27.12.2016, 14:51 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Про видимые поподробнее напиши

Добавлено
Так?
К сообщению приложен файл: 9752827_3.xlsm (86.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПро видимые поподробнее напиши

Добавлено
Так?

Автор - _Boroda_
Дата добавления - 27.12.2016 в 14:51
китин Дата: Вторник, 27.12.2016, 15:07 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
поподробнее

у меня на каждом листе столбец "Производитель" находится в разных местах.В файле на листе 008 столбец ВА а на листе 023 столбец I . между ними данные по применяемости деталей в зависимости от изделия. И вот эти данные я скрываю группировкой и их копировать не надо


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
поподробнее

у меня на каждом листе столбец "Производитель" находится в разных местах.В файле на листе 008 столбец ВА а на листе 023 столбец I . между ними данные по применяемости деталей в зависимости от изделия. И вот эти данные я скрываю группировкой и их копировать не надо

Автор - китин
Дата добавления - 27.12.2016 в 15:07
китин Дата: Вторник, 27.12.2016, 15:09 | Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Добавлено
Так?

немного нет.выше написал


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
Добавлено
Так?

немного нет.выше написал

Автор - китин
Дата добавления - 27.12.2016 в 15:09
_Boroda_ Дата: Вторник, 27.12.2016, 15:20 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А, ну да, не заметил.
Вот так можешь не скрывать ничего вообще. Только названия полей в шапках должны быть одинаковыми
К сообщению приложен файл: 9752827_4.xlsm (86.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА, ну да, не заметил.
Вот так можешь не скрывать ничего вообще. Только названия полей в шапках должны быть одинаковыми

Автор - _Boroda_
Дата добавления - 27.12.2016 в 15:20
китин Дата: Вторник, 27.12.2016, 15:56 | Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Блин надо бежать. Вечером на рабочем файле попробую.


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеБлин надо бежать. Вечером на рабочем файле попробую.

Автор - китин
Дата добавления - 27.12.2016 в 15:56
китин Дата: Среда, 28.12.2016, 07:49 | Сообщение № 12
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Доброе утро. Саша, работает, но не все значения и не все листы на рабочем файле подхватывает. :'(


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеДоброе утро. Саша, работает, но не все значения и не все листы на рабочем файле подхватывает. :'(

Автор - китин
Дата добавления - 28.12.2016 в 07:49
Wasilich Дата: Среда, 28.12.2016, 13:12 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Всем привет. Интересная задача. Ребята, проверьте такой вариант. Как вариант.
А вдруг натолкнет на новые мысли. :)
К сообщению приложен файл: 9836831.rar (42.7 Kb)


Сообщение отредактировал Wasilich - Среда, 28.12.2016, 13:25
 
Ответить
СообщениеВсем привет. Интересная задача. Ребята, проверьте такой вариант. Как вариант.
А вдруг натолкнет на новые мысли. :)

Автор - Wasilich
Дата добавления - 28.12.2016 в 13:12
китин Дата: Среда, 28.12.2016, 13:42 | Сообщение № 14
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Wasilich, спасибо!!! попытал. Работает, но на рабочем файле считал почти 4 минуты.
а можешь разъяснить вот эту строчку?
[vba]
Код
If Trim(.Cells(I, 2)) = 60 And Trim(.Cells(I, K)) <> "" Then
[/vba]


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Среда, 28.12.2016, 13:44
 
Ответить
СообщениеWasilich, спасибо!!! попытал. Работает, но на рабочем файле считал почти 4 минуты.
а можешь разъяснить вот эту строчку?
[vba]
Код
If Trim(.Cells(I, 2)) = 60 And Trim(.Cells(I, K)) <> "" Then
[/vba]

Автор - китин
Дата добавления - 28.12.2016 в 13:42
Wasilich Дата: Среда, 28.12.2016, 14:35 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
а можешь разъяснить вот эту строчку?
А смысл? 4 минуты отсеивают этот вариант. :D
Это - если цех=60 и производитель не равен пусто. Так вроде отобраны обозначения?
[p.s.]А сколько же у тебя листов?[/p.s.]


Сообщение отредактировал Wasilich - Среда, 28.12.2016, 14:37
 
Ответить
Сообщение
а можешь разъяснить вот эту строчку?
А смысл? 4 минуты отсеивают этот вариант. :D
Это - если цех=60 и производитель не равен пусто. Так вроде отобраны обозначения?
[p.s.]А сколько же у тебя листов?[/p.s.]

Автор - Wasilich
Дата добавления - 28.12.2016 в 14:35
китин Дата: Среда, 28.12.2016, 14:47 | Сообщение № 16
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
если цех=60 и производитель не равен пусто

спасибо. это для самообразования.То есть если я напишу

[vba]
Код
If Trim(.Range("B" & I).Value = 60 And .Range("B" & I).Value = 6010) Then
[/vba]
это сработает.Ща попробую не хочет работать :'(
[p.s.]в рабочем файле 18 и еще штуки три прибавлю


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Среда, 28.12.2016, 15:31
 
Ответить
Сообщение
если цех=60 и производитель не равен пусто

спасибо. это для самообразования.То есть если я напишу

[vba]
Код
If Trim(.Range("B" & I).Value = 60 And .Range("B" & I).Value = 6010) Then
[/vba]
это сработает.Ща попробую не хочет работать :'(
[p.s.]в рабочем файле 18 и еще штуки три прибавлю

Автор - китин
Дата добавления - 28.12.2016 в 14:47
Wasilich Дата: Среда, 28.12.2016, 15:34 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
это сработает
Так, нет! Это если в разных столбцах - и это и то попадает под условие.
А в твоем коде должно быть или - или то или другое или и т.д.
And замени на Or.
Вроде не ошибся. Надо бежать. Дела.


Сообщение отредактировал Wasilich - Среда, 28.12.2016, 15:34
 
Ответить
Сообщение
это сработает
Так, нет! Это если в разных столбцах - и это и то попадает под условие.
А в твоем коде должно быть или - или то или другое или и т.д.
And замени на Or.
Вроде не ошибся. Надо бежать. Дела.

Автор - Wasilich
Дата добавления - 28.12.2016 в 15:34
китин Дата: Среда, 28.12.2016, 15:35 | Сообщение № 18
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
точно работает . Спасибо!!!!


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеточно работает . Спасибо!!!!

Автор - китин
Дата добавления - 28.12.2016 в 15:35
китин Дата: Пятница, 06.01.2017, 10:09 | Сообщение № 19
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Доброе утро. Саша я обшибся :'( не разобрался, что он нулевые значения не берет. Все работает отлично.Только как бы добавить, что бы он и столбец А подхватывал? и минусовые значения в красный красил?
К сообщению приложен файл: 1653792.xlsm (91.3 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Пятница, 06.01.2017, 10:14
 
Ответить
СообщениеДоброе утро. Саша я обшибся :'( не разобрался, что он нулевые значения не берет. Все работает отлично.Только как бы добавить, что бы он и столбец А подхватывал? и минусовые значения в красный красил?

Автор - китин
Дата добавления - 06.01.2017 в 10:09
китин Дата: Понедельник, 09.01.2017, 09:50 | Сообщение № 20
Группа: Модераторы
Ранг: Экселист
Сообщений: 7019
Репутация: 1074 ±
Замечаний: 0% ±

Excel 2007;2010;2016
актуально


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеактуально

Автор - китин
Дата добавления - 09.01.2017 в 09:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Собрать данные со всех листов по критерию (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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