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

Вход

Регистрация

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

 

= Мир MS Excel/Как сделать кнопку, которая при нажатии создаёт новый лист? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как сделать кнопку, которая при нажатии создаёт новый лист? (Формулы/Formulas)
Как сделать кнопку, которая при нажатии создаёт новый лист?
Dmitry1992_92 Дата: Четверг, 31.05.2018, 12:54 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Помогите создать кнопку, при нажатии которой создаётся новый лист с названием "Данные", далее на этот лист копируется всё с первого листа, и после копирования удаляются ячейки A1:N34 на новом листе.
Начал писать такой код:

[vba]
Код
Sub Кнопка ()
Dim shn As Worksheet
  
Worksheets("Лист 1").Copy after:=Sheets(ThisWorkbook.Sheets.Count)

End Sub
[/vba]
 
Ответить
СообщениеПомогите создать кнопку, при нажатии которой создаётся новый лист с названием "Данные", далее на этот лист копируется всё с первого листа, и после копирования удаляются ячейки A1:N34 на новом листе.
Начал писать такой код:

[vba]
Код
Sub Кнопка ()
Dim shn As Worksheet
  
Worksheets("Лист 1").Copy after:=Sheets(ThisWorkbook.Sheets.Count)

End Sub
[/vba]

Автор - Dmitry1992_92
Дата добавления - 31.05.2018 в 12:54
_Boroda_ Дата: Четверг, 31.05.2018, 13:11 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub tt()
    ActiveSheet.Copy after:=Sheets(ThisWorkbook.Sheets.Count)
    ActiveSheet.Range("A1:N34").Clear
End Sub
[/vba]

Забыл про название
[vba]
Код
Sub tt()
    ActiveSheet.Copy after:=Sheets(ThisWorkbook.Sheets.Count)
    On Error Resume Next
    With ActiveSheet
        .Range("A1:N34").Clear
        .Name = "Данные"
    End With
End Sub
[/vba]

Ячейки именно удаляются (если да, то со сдвигом вверх или влево?) или стираются?
В приведенном макросе стираются (очищаются)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub tt()
    ActiveSheet.Copy after:=Sheets(ThisWorkbook.Sheets.Count)
    ActiveSheet.Range("A1:N34").Clear
End Sub
[/vba]

Забыл про название
[vba]
Код
Sub tt()
    ActiveSheet.Copy after:=Sheets(ThisWorkbook.Sheets.Count)
    On Error Resume Next
    With ActiveSheet
        .Range("A1:N34").Clear
        .Name = "Данные"
    End With
End Sub
[/vba]

Ячейки именно удаляются (если да, то со сдвигом вверх или влево?) или стираются?
В приведенном макросе стираются (очищаются)

Автор - _Boroda_
Дата добавления - 31.05.2018 в 13:11
StoTisteg Дата: Четверг, 31.05.2018, 13:14 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 877
Репутация: 72 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub Кнопка()

   Worksheets.Add after:=Sheets(Sheets.Count)
   Err.Clear
   On Error Resume Next
   ActiveSheet.Name = "Данные"
   If Err.Number = 0 Then
      Worksheets(1).Cells.Copy Destination:=Cells
      Range(Cells(1, 1), Cells(34, 14)).Clear
      Else
         Application.DisplayAlerts=False
         ActiveSheet.Delete
   End If

End Sub
[/vba]
Так?


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Четверг, 31.05.2018, 13:20
 
Ответить
Сообщение[vba]
Код
Sub Кнопка()

   Worksheets.Add after:=Sheets(Sheets.Count)
   Err.Clear
   On Error Resume Next
   ActiveSheet.Name = "Данные"
   If Err.Number = 0 Then
      Worksheets(1).Cells.Copy Destination:=Cells
      Range(Cells(1, 1), Cells(34, 14)).Clear
      Else
         Application.DisplayAlerts=False
         ActiveSheet.Delete
   End If

End Sub
[/vba]
Так?

Автор - StoTisteg
Дата добавления - 31.05.2018 в 13:14
StoTisteg Дата: Четверг, 31.05.2018, 13:17 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 877
Репутация: 72 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, вообще мой опыт показывает, что юзверь способен даже на физически невозможное, а уж дважды ткнуть одну кнопку — пара пустяков :)


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение_Boroda_, вообще мой опыт показывает, что юзверь способен даже на физически невозможное, а уж дважды ткнуть одну кнопку — пара пустяков :)

Автор - StoTisteg
Дата добавления - 31.05.2018 в 13:17
StoTisteg Дата: Четверг, 31.05.2018, 13:21 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 877
Репутация: 72 ±
Замечаний: 0% ±

Excel 2010
Ячейки именно удаляются (если да, то со сдвигом вверх или влево?) или стираются?

Тот же вопрос.


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение
Ячейки именно удаляются (если да, то со сдвигом вверх или влево?) или стираются?

Тот же вопрос.

Автор - StoTisteg
Дата добавления - 31.05.2018 в 13:21
Dmitry1992_92 Дата: Четверг, 31.05.2018, 13:33 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 35
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо большое, работают оба варианта. Ячейки удаляются как нужно, со сдвигом вверх.

[vba]
Код
        
.Range("A1:N34").Delete
.DrawingObjects.Delete
[/vba]
 
Ответить
СообщениеСпасибо большое, работают оба варианта. Ячейки удаляются как нужно, со сдвигом вверх.

[vba]
Код
        
.Range("A1:N34").Delete
.DrawingObjects.Delete
[/vba]

Автор - Dmitry1992_92
Дата добавления - 31.05.2018 в 13:33
StoTisteg Дата: Четверг, 31.05.2018, 13:39 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 877
Репутация: 72 ±
Замечаний: 0% ±

Excel 2010
Цитата Dmitry1992_92, 31.05.2018 в 13:33, в сообщении № 6 ()
Ячейки удаляются как нужно, со сдвигом вверх

Тогда
[vba]
Код
Sub Кнопка()

Worksheets.Add after:=Sheets(Sheets.Count)
Err.Clear
On Error Resume Next
ActiveSheet.Name = "Данные"
If Err.Number = 0 Then
    Worksheets(1).Cells.Copy Destination:=Cells
    Range(Cells(1, 1), Cells(34, 14)).Delete Shift:=xlUp
    Else
        Application.DisplayAlerts = False
        ActiveSheet.Delete
End If

End Sub
[/vba]


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение
Цитата Dmitry1992_92, 31.05.2018 в 13:33, в сообщении № 6 ()
Ячейки удаляются как нужно, со сдвигом вверх

Тогда
[vba]
Код
Sub Кнопка()

Worksheets.Add after:=Sheets(Sheets.Count)
Err.Clear
On Error Resume Next
ActiveSheet.Name = "Данные"
If Err.Number = 0 Then
    Worksheets(1).Cells.Copy Destination:=Cells
    Range(Cells(1, 1), Cells(34, 14)).Delete Shift:=xlUp
    Else
        Application.DisplayAlerts = False
        ActiveSheet.Delete
End If

End Sub
[/vba]

Автор - StoTisteg
Дата добавления - 31.05.2018 в 13:39
_Boroda_ Дата: Четверг, 31.05.2018, 14:04 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12353
Репутация: 5079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Или такой вариант
[vba]
Код
Sub tt()
    On Error Resume Next
    aaa = Sheets("Данные").Cells(1)
    If Err = 0 Then Exit Sub
    On Error GoTo 0
    Application.ScreenUpdating = 0
    Application.Calculation = xlCalculationManual
    ActiveSheet.Copy after:=Sheets(ThisWorkbook.Sheets.Count)
    With ActiveSheet
        .Range("A1:N34").Delete Shift:=xlUp
        .Name = "Данные"
    End With
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = 1
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИли такой вариант
[vba]
Код
Sub tt()
    On Error Resume Next
    aaa = Sheets("Данные").Cells(1)
    If Err = 0 Then Exit Sub
    On Error GoTo 0
    Application.ScreenUpdating = 0
    Application.Calculation = xlCalculationManual
    ActiveSheet.Copy after:=Sheets(ThisWorkbook.Sheets.Count)
    With ActiveSheet
        .Range("A1:N34").Delete Shift:=xlUp
        .Name = "Данные"
    End With
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 31.05.2018 в 14:04
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как сделать кнопку, которая при нажатии создаёт новый лист? (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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