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

Вход

Регистрация

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

 

= Мир MS Excel/Создание записей на листе, по списку. Сю макроса и цикла - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание записей на листе, по списку. Сю макроса и цикла (Формулы/Formulas)
Создание записей на листе, по списку. Сю макроса и цикла
savrix Дата: Вторник, 29.11.2016, 19:16 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток!!! Господа, подскажите пожалуйста такой вопрос... Есть табличка, подобие ЗП, и нужно что бы на отдельных листах формировались расчетные листки, по каждому сотруднику, которые есть в табличке. Записать макрос с созданием этого листка для каждого сотрудника и прописать туда ссылки на нужные ячейки с общей таблицы не проблема... НО делать это для каждого сотрудника долго((((... Так вот суть вопроса... Подскажите, как сделать цикл, что бы он проходил по всей табличке и для каждого сотрудника создавал расчетный листок. Пример файла прилагаю. Заранее благодарен за любую помощь. Всем добра )
К сообщению приложен файл: need_help.xlsx (21.9 Kb)
 
Ответить
СообщениеДоброго времени суток!!! Господа, подскажите пожалуйста такой вопрос... Есть табличка, подобие ЗП, и нужно что бы на отдельных листах формировались расчетные листки, по каждому сотруднику, которые есть в табличке. Записать макрос с созданием этого листка для каждого сотрудника и прописать туда ссылки на нужные ячейки с общей таблицы не проблема... НО делать это для каждого сотрудника долго((((... Так вот суть вопроса... Подскажите, как сделать цикл, что бы он проходил по всей табличке и для каждого сотрудника создавал расчетный листок. Пример файла прилагаю. Заранее благодарен за любую помощь. Всем добра )

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

2003
что бы на отдельных листах формировались расчетные листки, по каждому сотруднику,

Это как? 20 сотрудников - 20 листов? А потом что, печатать каждый лист? Один листок на бумажный лист А4?
 
Ответить
Сообщение
что бы на отдельных листах формировались расчетные листки, по каждому сотруднику,

Это как? 20 сотрудников - 20 листов? А потом что, печатать каждый лист? Один листок на бумажный лист А4?

Автор - Wasilich
Дата добавления - 29.11.2016 в 19:49
Udik Дата: Вторник, 29.11.2016, 19:57 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Вот заготовка, ибо таблички лень прописывать
[vba]
Код

Option Explicit

Public Sub setLiist()
Dim ws As Worksheet
Dim i As Integer, rowLast%
Dim odict As Object

Set ws = ThisWorkbook.Worksheets("Заполнить")
Do While True
i = i + 1
If ws.Cells(i, 3).Value = "ИТОГО" Then
rowLast = i - 1
Exit Do
End If
Loop
Set odict = CreateObject("Scripting.Dictionary")
odict.CompareMode = 1

For i = 1 To ThisWorkbook.Worksheets.Count
odict.Add ThisWorkbook.Worksheets(i).Name, 1
Next i

With ws
For i = 2 To rowLast
If .Cells(i, 3).Value <> "" Then
If Not odict.exists(.Cells(i, 3).Value) Then 'исключаем повторы
odict.Add .Cells(i, 3).Value, 1
Worksheets.Add.Name = .Cells(i, 3).Value
With ThisWorkbook.Worksheets(.Cells(i, 3).Value)
'
'здесь добавить код для заполнения листов
'
End With
Else
MsgBox "Найден повтор: " & .Cells(i, 3).Address, 48, "Повтор!"
Exit Sub
End If
End If
Next i
End With
End Sub

[/vba]
К сообщению приложен файл: 9188270.xlsm (34.5 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 29.11.2016, 20:02
 
Ответить
СообщениеВот заготовка, ибо таблички лень прописывать
[vba]
Код

Option Explicit

Public Sub setLiist()
Dim ws As Worksheet
Dim i As Integer, rowLast%
Dim odict As Object

Set ws = ThisWorkbook.Worksheets("Заполнить")
Do While True
i = i + 1
If ws.Cells(i, 3).Value = "ИТОГО" Then
rowLast = i - 1
Exit Do
End If
Loop
Set odict = CreateObject("Scripting.Dictionary")
odict.CompareMode = 1

For i = 1 To ThisWorkbook.Worksheets.Count
odict.Add ThisWorkbook.Worksheets(i).Name, 1
Next i

With ws
For i = 2 To rowLast
If .Cells(i, 3).Value <> "" Then
If Not odict.exists(.Cells(i, 3).Value) Then 'исключаем повторы
odict.Add .Cells(i, 3).Value, 1
Worksheets.Add.Name = .Cells(i, 3).Value
With ThisWorkbook.Worksheets(.Cells(i, 3).Value)
'
'здесь добавить код для заполнения листов
'
End With
Else
MsgBox "Найден повтор: " & .Cells(i, 3).Address, 48, "Повтор!"
Exit Sub
End If
End If
Next i
End With
End Sub

[/vba]

Автор - Udik
Дата добавления - 29.11.2016 в 19:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Создание записей на листе, по списку. Сю макроса и цикла (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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