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

Вход

Регистрация

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

 

= Мир MS Excel/Сборка листов по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сборка листов по условию (Макросы/Sub)
Сборка листов по условию
gge29 Дата: Среда, 28.09.2016, 19:54 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 244
Репутация: 3 ±
Замечаний: 0% ±

Доброго времени суток товарищи!!!Подскажите пожалуйста,как привязать макрос сборки листов по названиям листа в таблице.
Есть 3 столбца в листе "МЕНЮ" и у каждого свои листы,необходимо при нажатии кнопки,например в столбце A макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"в столбцы c B3 по J3.
поиском нашёл такой макрос сбора,но увы не знаю как его привязать с таким условием
[vba]
Код
Sub sborka()
If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then
Sheets(1).Range("a1").CurrentRegion.Clear
s_ = Sheets.Count
Sheets(2).Range("1:1").Copy Sheets(1).Range("a1")
For i = 2 To s_
    r_ = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row + 1
    Sheets(i).Range("a1").CurrentRegion.Offset(1).Copy Sheets(1).Range("a" & r_)
Next
End If
End Sub
[/vba]
К сообщению приложен файл: 9388166.xlsm (67.3 Kb)
 
Ответить
СообщениеДоброго времени суток товарищи!!!Подскажите пожалуйста,как привязать макрос сборки листов по названиям листа в таблице.
Есть 3 столбца в листе "МЕНЮ" и у каждого свои листы,необходимо при нажатии кнопки,например в столбце A макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"в столбцы c B3 по J3.
поиском нашёл такой макрос сбора,но увы не знаю как его привязать с таким условием
[vba]
Код
Sub sborka()
If MsgBox("Сборка производится на первый лист, правильно?", vbYesNo + vbDefaultButton2) = 6 Then
Sheets(1).Range("a1").CurrentRegion.Clear
s_ = Sheets.Count
Sheets(2).Range("1:1").Copy Sheets(1).Range("a1")
For i = 2 To s_
    r_ = Sheets(1).Range("a" & Rows.Count).End(xlUp).Row + 1
    Sheets(i).Range("a1").CurrentRegion.Offset(1).Copy Sheets(1).Range("a" & r_)
Next
End If
End Sub
[/vba]

Автор - gge29
Дата добавления - 28.09.2016 в 19:54
Kuzmich Дата: Среда, 28.09.2016, 22:11 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"

Вам надо определить список листов, с которых собирать данные. Возьмите за основу такой макрос,
для столбца А листа МЕНЮ
[vba]
Код

Sub Sbor()
Dim i As Integer
Dim iLR As Integer
Dim iLastRow As Integer
Dim iName As String
Dim Spisok As Worksheet
  Set Spisok = Worksheets("СПИСОК")
  iLR = Range("A2").End(xlDown).Row
  For i = 3 To iLR
    iName = Cells(i, 1)
    With Worksheets(iName)
      iLastRow = Spisok.Cells(Rows.Count, 5).End(xlUp).Row + 1
      .Range("A1").CurrentRegion.Copy Spisok.Cells(iLastRow, 1)
    End With
  Next
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
макрос собрал данные именно тех листов названия которых в столбце А в лист"СПИСОК"

Вам надо определить список листов, с которых собирать данные. Возьмите за основу такой макрос,
для столбца А листа МЕНЮ
[vba]
Код

Sub Sbor()
Dim i As Integer
Dim iLR As Integer
Dim iLastRow As Integer
Dim iName As String
Dim Spisok As Worksheet
  Set Spisok = Worksheets("СПИСОК")
  iLR = Range("A2").End(xlDown).Row
  For i = 3 To iLR
    iName = Cells(i, 1)
    With Worksheets(iName)
      iLastRow = Spisok.Cells(Rows.Count, 5).End(xlUp).Row + 1
      .Range("A1").CurrentRegion.Copy Spisok.Cells(iLastRow, 1)
    End With
  Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 28.09.2016 в 22:11
gge29 Дата: Четверг, 29.09.2016, 00:08 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 244
Репутация: 3 ±
Замечаний: 0% ±

Вам надо определить список листов

Список листов и есть в столбце А,В,С,а этот макрос работает чуток не так
К сообщению приложен файл: 1__.xlsm (54.5 Kb)


Сообщение отредактировал gge29 - Четверг, 29.09.2016, 00:41
 
Ответить
Сообщение
Вам надо определить список листов

Список листов и есть в столбце А,В,С,а этот макрос работает чуток не так

Автор - gge29
Дата добавления - 29.09.2016 в 00:08
Kuzmich Дата: Четверг, 29.09.2016, 10:10 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
Список листов и есть в столбце А,В,С

Вам нужно в макросе циклом пройтись по этому списку.
Исправьте ошибку в ваших кодах:
Для Sub SborA() iName = Cells(i, 1)
Для Sub SborB() iName = Cells(i, 2)
Для Sub SborC() iName = Cells(i, 3)
Удачи!
 
Ответить
Сообщение
Цитата
Список листов и есть в столбце А,В,С

Вам нужно в макросе циклом пройтись по этому списку.
Исправьте ошибку в ваших кодах:
Для Sub SborA() iName = Cells(i, 1)
Для Sub SborB() iName = Cells(i, 2)
Для Sub SborC() iName = Cells(i, 3)
Удачи!

Автор - Kuzmich
Дата добавления - 29.09.2016 в 10:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сборка листов по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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