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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 02:00   #1
GieNa
Пользователь
 
Регистрация: 03.10.2010
Сообщений: 15
Вопрос Скопировать скрытый лист внутри книги...

Всем привет...
Меня мучает один вопрос, как можно сделать следующее:
Есть книга в ней 6 листов, 5 листов с различными формами для заполнения, так вот эти 5 листов должны быть скрыты, а на первом листе должны размещаться кнопки с возможность добавить ту или иную анкету...при этом необходимо задать имя данной анкеты "Анкета1", а при повторном нажатии на кнопку добавления должна быть уже "Анкета2" и т.д.

никак не могу это реализовать, помогите плз...
GieNa вне форума Ответить с цитированием
Старый 03.10.2010, 09:47   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Делается это просто - всего несколько строк кода.
Но вот файл делать нет ни малейшего желания...

Прикрепите к сообщению файл, объясните, что куда копировать, - и получите готовое решение
EducatedFool вне форума Ответить с цитированием
Старый 04.10.2010, 16:03   #3
GieNa
Пользователь
 
Регистрация: 03.10.2010
Сообщений: 15
По умолчанию

Вот файл, все свои горе макросы я удалил,чтобы не мешались...
Вложения
Тип файла: rar Анкетирование.rar (68.3 Кб, 17 просмотров)
GieNa вне форума Ответить с цитированием
Старый 05.10.2010, 07:38   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А куда надо добавлять скопированную анкету?
На лист с кнопками?

Сделайте несколько макросов наподобие этого:
Код:
Sub КопированиеАнкеты1()
    Worksheets("Анкета заемщика ЮР").UsedRange.Copy [a1]
End Sub
и назначьте их кнопкам

Или лист надо копировать целиком?
Если да, то куда его помещать? В ту же книгу (в начало, в конец), или создавать новый файл из одного листа?
В этом случае код будет другим:
Код:
Sub КопированиеАнкеты1()
    Application.ScreenUpdating = False    ' отключаем обновление экрана
    With Worksheets("Анкета заемщика ЮР")
        .Visible = -1    ' делаем лист видимым
        .Copy    ' копируем его в новую книгу
        .Visible = 0    ' делаем лист снова скрытым
    End With
End Sub

Последний раз редактировалось EducatedFool; 05.10.2010 в 07:42.
EducatedFool вне форума Ответить с цитированием
Старый 05.10.2010, 10:42   #5
GieNa
Пользователь
 
Регистрация: 03.10.2010
Сообщений: 15
По умолчанию

Спасибо, а как сделать так, чтобы страница копировалась в ту же книгу и ставилась в конец? И как бытьс именем закладки? Оно будет автоматически менять название, при нажатии на одну кнопку несколько раз, на Анкета(1),Анкета(2) и т.д.?

Последний раз редактировалось GieNa; 05.10.2010 в 10:45.
GieNa вне форума Ответить с цитированием
Старый 06.10.2010, 12:13   #6
GieNa
Пользователь
 
Регистрация: 03.10.2010
Сообщений: 15
По умолчанию

Если я ставлю данный код:

Код:
Sub КопированиеАнкеты1()
    Application.ScreenUpdating = False    ' отключаем обновление экрана
    With Worksheets("Анкета заемщика ЮР")
        .Visible = -1    ' делаем лист видимым
        .Copy    ' копируем его в новую книгу
        .Visible = 0    ' делаем лист снова скрытым
    End With
End Sub
То создается новая книга и туда копирутся мой лист. Можно ли задать так же имя этой книги вместо Книга1, Книга2 и т.д.

Или же все-таки чтобы лист копировался в конец основной книги и имя его менялось в соответствии от того сколькораз я нажму на кнопку макроса, т.к. анкет может быть 3-4 штуки одинаковых.
GieNa вне форума Ответить с цитированием
Старый 06.10.2010, 19:02   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте так:

Код:
Sub КопированиеАнкеты1()
    КопированиеЛиста "Анкета заемщика ЮР"
End Sub

Sub КопированиеАнкеты2()
    КопированиеЛиста "Анкета заемщика ИП"
End Sub

Sub КопированиеЛиста(ByVal ИмяЛиста As String)
    Application.ScreenUpdating = False    ' отключаем обновление экрана
    With Worksheets(ИмяЛиста)
        .Visible = -1    ' делаем лист видимым
        .Copy , Worksheets(Worksheets.Count)      ' копируем его в конец книги
        .Visible = 0    ' делаем лист снова скрытым
        On Error Resume Next
        Do ' присваиваем листу имя
            Err.Clear: i = i + 1: ActiveSheet.Name = "Анкета" & i
        Loop While Err
    End With
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать лист? gizy@ Microsoft Office Excel 11 13.01.2012 15:33
рассортировать и скопировать столбцы на другой лист hottoh Microsoft Office Excel 2 30.07.2010 19:05
Скопировать данные из некоторых ячеек одной книги в другие книги fcunited Microsoft Office Excel 8 09.06.2010 12:14
...как скопировать лист?... maxvip Microsoft Office Excel 6 23.01.2010 16:03
Скрытый Лист segail Microsoft Office Excel 27 20.07.2009 11:41