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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование ячеекс на другой лист - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Копирование ячеекс на другой лист
Dmitry1992_92 Дата: Пятница, 25.05.2018, 13:17 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
Помогите разобраться с одной задачей.
После того как в ячейке B1 будет написано число "2", скопируются ячейки A4, А5, А6 и вставятся на второй лист, и при этом лист должен будет появится, изначально второго листа нет, он должен будет появится когда в ячейке B1 будет написано число "2", а так же этот новый лист будет называться "Ящик 2". После того как скопируются ячейки на втором листе должен будет появится текст в ячейке B3, текст: "Ящик №2".
К сообщению приложен файл: 7232720.xlsx (8.8 Kb)
 
Ответить
СообщениеЗдравствуйте!
Помогите разобраться с одной задачей.
После того как в ячейке B1 будет написано число "2", скопируются ячейки A4, А5, А6 и вставятся на второй лист, и при этом лист должен будет появится, изначально второго листа нет, он должен будет появится когда в ячейке B1 будет написано число "2", а так же этот новый лист будет называться "Ящик 2". После того как скопируются ячейки на втором листе должен будет появится текст в ячейке B3, текст: "Ящик №2".

Автор - Dmitry1992_92
Дата добавления - 25.05.2018 в 13:17
_Boroda_ Дата: Пятница, 25.05.2018, 13:59 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16886
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
В модуль листа вот такой код можно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        On Error Resume Next
        aaa = Sheets("Ящик " & Target).Range("A1")
        If Err = 0 Then Exit Sub
        On Error GoTo 0
        Dim sh As Worksheet
        Application.ScreenUpdating = 0
        Me.Copy After:=Sheets(ThisWorkbook.Sheets.Count)
        Set sh = ActiveSheet
        With sh
            .Range("A1:B2").Clear
            .Range("A3") = "Ящик №" & Target
            .Name = "Ящик " & Target
        End With
        Me.Select 'если переход обратно на текущий лист не нужен, то уберите эту строку
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]
К сообщению приложен файл: 7232720_1.xlsm (23.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ модуль листа вот такой код можно
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        On Error Resume Next
        aaa = Sheets("Ящик " & Target).Range("A1")
        If Err = 0 Then Exit Sub
        On Error GoTo 0
        Dim sh As Worksheet
        Application.ScreenUpdating = 0
        Me.Copy After:=Sheets(ThisWorkbook.Sheets.Count)
        Set sh = ActiveSheet
        With sh
            .Range("A1:B2").Clear
            .Range("A3") = "Ящик №" & Target
            .Name = "Ящик " & Target
        End With
        Me.Select 'если переход обратно на текущий лист не нужен, то уберите эту строку
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 25.05.2018 в 13:59
Dmitry1992_92 Дата: Пятница, 25.05.2018, 14:34 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Огромное Спасибо, всё работает!
 
Ответить
Сообщение_Boroda_, Огромное Спасибо, всё работает!

Автор - Dmitry1992_92
Дата добавления - 25.05.2018 в 14:34
Dmitry1992_92 Дата: Пятница, 25.05.2018, 15:02 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А можно ещё сделать так если у меня было 3 страницы, а я решил поставить цифру 2 и после этого страница Ящик №3 удаляется, можно ли так сделать?
 
Ответить
СообщениеА можно ещё сделать так если у меня было 3 страницы, а я решил поставить цифру 2 и после этого страница Ящик №3 удаляется, можно ли так сделать?

Автор - Dmitry1992_92
Дата добавления - 25.05.2018 в 15:02
StoTisteg Дата: Пятница, 25.05.2018, 16:46 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        Err.Clear
        Do While Err.Number = 0
            On Error Resume Next
            Application.DisplayAlerts = False
            Worksheets(Target.Value + 1).Delete
        Loop
        On Error Resume Next
        aaa = Sheets("ящик " & Target).Range("A1")
        jhj = Err
        If Err = 0 Then Exit Sub
        On Error GoTo 0
        Dim sh As Worksheet
        Application.ScreenUpdating = 0
        Me.Copy After:=Sheets(ThisWorkbook.Sheets.Count)
        Set sh = ActiveSheet
        With sh
            .Range("A1:B2").Clear
            .Range("A3") = "ящик є" & Target
            .Name = "ящик " & Target
        End With
        Me.Select 'если переход обратно на текущий лист не нужен, то уберите эту строку
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]
К сообщению приложен файл: 7548413.xlsm (18.7 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        Err.Clear
        Do While Err.Number = 0
            On Error Resume Next
            Application.DisplayAlerts = False
            Worksheets(Target.Value + 1).Delete
        Loop
        On Error Resume Next
        aaa = Sheets("ящик " & Target).Range("A1")
        jhj = Err
        If Err = 0 Then Exit Sub
        On Error GoTo 0
        Dim sh As Worksheet
        Application.ScreenUpdating = 0
        Me.Copy After:=Sheets(ThisWorkbook.Sheets.Count)
        Set sh = ActiveSheet
        With sh
            .Range("A1:B2").Clear
            .Range("A3") = "ящик є" & Target
            .Name = "ящик " & Target
        End With
        Me.Select 'если переход обратно на текущий лист не нужен, то уберите эту строку
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]

Автор - StoTisteg
Дата добавления - 25.05.2018 в 16:46
Dmitry1992_92 Дата: Понедельник, 28.05.2018, 09:00 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо!
 
Ответить
СообщениеСпасибо!

Автор - Dmitry1992_92
Дата добавления - 28.05.2018 в 09:00
  • Страница 1 из 1
  • 1
Поиск:

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