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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как сделать кнопку, которая при нажатии создаёт новый лист? (Формулы/Formulas)
Как сделать кнопку, которая при нажатии создаёт новый лист?
Dmitry1992_92 Дата: Четверг, 31.05.2018, 12:54 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 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
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 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
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 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]
Так?


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал 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
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

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


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение_Boroda_, вообще мой опыт показывает, что юзверь способен даже на физически невозможное, а уж дважды ткнуть одну кнопку — пара пустяков :)

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

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

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


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Ячейки именно удаляются (если да, то со сдвигом вверх или влево?) или стираются?

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

Автор - StoTisteg
Дата добавления - 31.05.2018 в 13:21
Dmitry1992_92 Дата: Четверг, 31.05.2018, 13:33 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 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
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 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]


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Цитата 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
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 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-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!