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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос таблицы на другой лист ниже ранее заполненных - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Перенос таблицы на другой лист ниже ранее заполненных
Palladium Дата: Суббота, 14.11.2015, 11:49 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Здравствуйте! Документ для сменных работников. Возможно ли сделать так, чтобы после завершения смены, при нажатии кнопки «Сохранить»(красная) вся таблица копировалась на лист «01.11.2015» ниже сгруппированных предыдущих смен (группировка копируемой таблицы), с последующим очищением информации белых ячеек на листе «Рабочий» для следующей смены.

[moder]У Вас 3 разных вопроса - это 3 темы должно быть.
К сообщению приложен файл: 4901700.xlsx (21.7 Kb)


Сообщение отредактировал Palladium - Суббота, 14.11.2015, 14:48
 
Ответить
СообщениеЗдравствуйте! Документ для сменных работников. Возможно ли сделать так, чтобы после завершения смены, при нажатии кнопки «Сохранить»(красная) вся таблица копировалась на лист «01.11.2015» ниже сгруппированных предыдущих смен (группировка копируемой таблицы), с последующим очищением информации белых ячеек на листе «Рабочий» для следующей смены.

[moder]У Вас 3 разных вопроса - это 3 темы должно быть.

Автор - Palladium
Дата добавления - 14.11.2015 в 11:49
Palladium Дата: Суббота, 14.11.2015, 14:48 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Модератор:

Исправил. Прошу прощения!
 
Ответить
Сообщение
Модератор:

Исправил. Прошу прощения!

Автор - Palladium
Дата добавления - 14.11.2015 в 14:48
_Boroda_ Дата: Суббота, 14.11.2015, 15:23 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Такой вариант
[vba]
Код
Sub vstav()
    Application.ScreenUpdating = 0
    Range("A1:J56").Copy
    With Sheets("01.11.2015")
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & r1_).PasteSpecial (xlPasteValues)
        .Range("A" & r1_).PasteSpecial (xlPasteFormats)
        .Rows(r1_ & ":" & r1_ + 54).Rows.Group
    End With
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 4901700_1.xlsm (30.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТакой вариант
[vba]
Код
Sub vstav()
    Application.ScreenUpdating = 0
    Range("A1:J56").Copy
    With Sheets("01.11.2015")
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & r1_).PasteSpecial (xlPasteValues)
        .Range("A" & r1_).PasteSpecial (xlPasteFormats)
        .Rows(r1_ & ":" & r1_ + 54).Rows.Group
    End With
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 14.11.2015 в 15:23
Palladium Дата: Суббота, 14.11.2015, 16:28 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Совершенно верно! Спасибо!
Такой вариант

Совершенно верно! Спасибо! А автоматическое очищение белых ячеек на листе "Рабочий" возможно? Или лучше это делать вручную? Пробовал добавить [vba]
Код
Sheets("Рабочий").Select
    Cells.ClearContents
[/vba] но очищает и желтые тоже, а если защищаю желтые ячейки, то VBA ругается.


Сообщение отредактировал Palladium - Суббота, 14.11.2015, 18:11
 
Ответить
СообщениеСовершенно верно! Спасибо!
Такой вариант

Совершенно верно! Спасибо! А автоматическое очищение белых ячеек на листе "Рабочий" возможно? Или лучше это делать вручную? Пробовал добавить [vba]
Код
Sheets("Рабочий").Select
    Cells.ClearContents
[/vba] но очищает и желтые тоже, а если защищаю желтые ячейки, то VBA ругается.

Автор - Palladium
Дата добавления - 14.11.2015 в 16:28
Kuzmich Дата: Суббота, 14.11.2015, 21:25 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
но очищает и желтые тоже

Добавьте в код следующий фрагмент после End With
Ячейку А1 тоже надо очищать?
[vba]
Код

    Dim iCell As Range
    For Each iCell In Sheets("Рабочий").Range("C3:J55")
      If iCell.Interior.ColorIndex = -4142 Then
        iCell = ""
      End If
    Next

[/vba]
 
Ответить
Сообщение
Цитата
но очищает и желтые тоже

Добавьте в код следующий фрагмент после End With
Ячейку А1 тоже надо очищать?
[vba]
Код

    Dim iCell As Range
    For Each iCell In Sheets("Рабочий").Range("C3:J55")
      If iCell.Interior.ColorIndex = -4142 Then
        iCell = ""
      End If
    Next

[/vba]

Автор - Kuzmich
Дата добавления - 14.11.2015 в 21:25
Palladium Дата: Суббота, 14.11.2015, 21:35 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Ячейку А1

А1 очищать надо. Новая смена будет прописывать новую дату и фамилию. Сейчас проверить не могу, я с телефона здесь. Завтра попробую. Спасибо!


Сообщение отредактировал Palladium - Суббота, 14.11.2015, 21:39
 
Ответить
Сообщение
Ячейку А1

А1 очищать надо. Новая смена будет прописывать новую дату и фамилию. Сейчас проверить не могу, я с телефона здесь. Завтра попробую. Спасибо!

Автор - Palladium
Дата добавления - 14.11.2015 в 21:35
Kuzmich Дата: Суббота, 14.11.2015, 22:05 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
А1 очищать надо

Тогда добавьте в код еще строчку
[vba]
Код

     Sheets("Рабочий").Range("A1")=""
[/vba]
 
Ответить
Сообщение
Цитата
А1 очищать надо

Тогда добавьте в код еще строчку
[vba]
Код

     Sheets("Рабочий").Range("A1")=""
[/vba]

Автор - Kuzmich
Дата добавления - 14.11.2015 в 22:05
Palladium Дата: Суббота, 14.11.2015, 23:40 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Тогда

А если просто исправить "C3" на "A1"?
 
Ответить
Сообщение
Тогда

А если просто исправить "C3" на "A1"?

Автор - Palladium
Дата добавления - 14.11.2015 в 23:40
Kuzmich Дата: Воскресенье, 15.11.2015, 01:04 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Так попробуйте, у вас А1 - объединенная ячейка
 
Ответить
СообщениеТак попробуйте, у вас А1 - объединенная ячейка

Автор - Kuzmich
Дата добавления - 15.11.2015 в 01:04
Palladium Дата: Воскресенье, 15.11.2015, 06:45 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
попробуйте

Прийду домой, попробую. Спасибо!!!
 
Ответить
Сообщение
попробуйте

Прийду домой, попробую. Спасибо!!!

Автор - Palladium
Дата добавления - 15.11.2015 в 06:45
Palladium Дата: Воскресенье, 15.11.2015, 11:06 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Так попробуйте

Попробовал и все работает, но после защиты всех желтых ячеек на листе "Рабочий" от редактирования на вкладке "Рецензирование" кнопка "Перенести" не работает: просит снять защиту. И сразу по защите еще вопрос: надо, чтобы были защищены все желтые на листе "01.11.2015", а группировка работала. Такое возможно? Или что я делаю не так? Может сначала защитить лист, а потом вписать макрос? Вопросы, наверное глупые, но я с макросом столкнулся только недавно и тем более не изучал програмирование.
 
Ответить
Сообщение
Так попробуйте

Попробовал и все работает, но после защиты всех желтых ячеек на листе "Рабочий" от редактирования на вкладке "Рецензирование" кнопка "Перенести" не работает: просит снять защиту. И сразу по защите еще вопрос: надо, чтобы были защищены все желтые на листе "01.11.2015", а группировка работала. Такое возможно? Или что я делаю не так? Может сначала защитить лист, а потом вписать макрос? Вопросы, наверное глупые, но я с макросом столкнулся только недавно и тем более не изучал програмирование.

Автор - Palladium
Дата добавления - 15.11.2015 в 11:06
Kuzmich Дата: Воскресенье, 15.11.2015, 11:22 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
просит снять защиту

В макросе вводите фрагмент снятия защиты, делаете свои действия по переносу
и очистке, затем возвращаете защиту
 
Ответить
Сообщение
Цитата
просит снять защиту

В макросе вводите фрагмент снятия защиты, делаете свои действия по переносу
и очистке, затем возвращаете защиту

Автор - Kuzmich
Дата добавления - 15.11.2015 в 11:22
Palladium Дата: Воскресенье, 15.11.2015, 11:30 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
фрагмент снятия защиты

Вот макрос [vba]
Код
Sub vstav()
    Application.ScreenUpdating = 0
    Range("A1:J56").Copy
    With Sheets("01.11.2015")
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & r1_).PasteSpecial (xlPasteValues)
        .Range("A" & r1_).PasteSpecial (xlPasteFormats)
        .Rows(r1_ & ":" & r1_ + 54).Rows.Group
    End With
    Dim iCell As Range
    For Each iCell In Sheets("Рабочий").Range("A1:J55")
    If iCell.Interior.ColorIndex = -4142 Then
        iCell = ""
    End If
    Next
    Application.ScreenUpdating = 1
End Sub
[/vba]
куда и что нужно ввести, если пароль для защиты листа: 1111112


Сообщение отредактировал Palladium - Воскресенье, 15.11.2015, 11:34
 
Ответить
Сообщение
фрагмент снятия защиты

Вот макрос [vba]
Код
Sub vstav()
    Application.ScreenUpdating = 0
    Range("A1:J56").Copy
    With Sheets("01.11.2015")
        r1_ = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & r1_).PasteSpecial (xlPasteValues)
        .Range("A" & r1_).PasteSpecial (xlPasteFormats)
        .Rows(r1_ & ":" & r1_ + 54).Rows.Group
    End With
    Dim iCell As Range
    For Each iCell In Sheets("Рабочий").Range("A1:J55")
    If iCell.Interior.ColorIndex = -4142 Then
        iCell = ""
    End If
    Next
    Application.ScreenUpdating = 1
End Sub
[/vba]
куда и что нужно ввести, если пароль для защиты листа: 1111112

Автор - Palladium
Дата добавления - 15.11.2015 в 11:30
Kuzmich Дата: Воскресенье, 15.11.2015, 12:03 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
В начало кода, попробуйте
[vba]
Код

   If Sheets("Рабочий").ProtectContents=True Then
       Unprotect Password:="1111112"
   End If
[/vba]

В конце код
[vba]
Код

If Sheets("Рабочий").ProtectContents=False Then
       Protect Password:="1111112"
   End If
[/vba]
 
Ответить
СообщениеВ начало кода, попробуйте
[vba]
Код

   If Sheets("Рабочий").ProtectContents=True Then
       Unprotect Password:="1111112"
   End If
[/vba]

В конце код
[vba]
Код

If Sheets("Рабочий").ProtectContents=False Then
       Protect Password:="1111112"
   End If
[/vba]

Автор - Kuzmich
Дата добавления - 15.11.2015 в 12:03
Palladium Дата: Воскресенье, 15.11.2015, 12:20 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
В начало кода

Как то так? [vba]
Код
Sub vstav()
If Sheets("Рабочий").ProtectContents = True Then
Unprotect Password:="1111112"
End If
Next
Application.ScreenUpdating = 0
Range("A1:J56").Copy
With Sheets("01.11.2015")
r1_ = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & r1_).PasteSpecial (xlPasteValues)
.Range("A" & r1_).PasteSpecial (xlPasteFormats)
.Rows(r1_ & ":" & r1_ + 54).Rows.Group
End With
Dim iCell As Range
For Each iCell In Sheets("Рабочий").Range("A1:J55")
If iCell.Interior.ColorIndex = -4142 Then
iCell = ""
End If
Next
Application.ScreenUpdating = 1
Next
If Sheets("Рабочий").ProtectContents = False Then
Protect Password:="1111112"
End If
End Sub
[/vba]
Ругается!


Сообщение отредактировал Palladium - Воскресенье, 15.11.2015, 12:21
 
Ответить
Сообщение
В начало кода

Как то так? [vba]
Код
Sub vstav()
If Sheets("Рабочий").ProtectContents = True Then
Unprotect Password:="1111112"
End If
Next
Application.ScreenUpdating = 0
Range("A1:J56").Copy
With Sheets("01.11.2015")
r1_ = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & r1_).PasteSpecial (xlPasteValues)
.Range("A" & r1_).PasteSpecial (xlPasteFormats)
.Rows(r1_ & ":" & r1_ + 54).Rows.Group
End With
Dim iCell As Range
For Each iCell In Sheets("Рабочий").Range("A1:J55")
If iCell.Interior.ColorIndex = -4142 Then
iCell = ""
End If
Next
Application.ScreenUpdating = 1
Next
If Sheets("Рабочий").ProtectContents = False Then
Protect Password:="1111112"
End If
End Sub
[/vba]
Ругается!

Автор - Palladium
Дата добавления - 15.11.2015 в 12:20
Pelena Дата: Воскресенье, 15.11.2015, 12:42 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 19209
Репутация: 4426 ±
Замечаний: ±

Excel 365 & Mac Excel
Какие-то лишние Next перед[vba]
Код
Application.ScreenUpdating = 0
[/vba] и после [vba]
Код
Application.ScreenUpdating = 1
[/vba]

[p.s.]Почему эта проблема обсуждается в теме "Перенос таблицы..."?[/p.s.]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКакие-то лишние Next перед[vba]
Код
Application.ScreenUpdating = 0
[/vba] и после [vba]
Код
Application.ScreenUpdating = 1
[/vba]

[p.s.]Почему эта проблема обсуждается в теме "Перенос таблицы..."?[/p.s.]

Автор - Pelena
Дата добавления - 15.11.2015 в 12:42
Wasilich Дата: Воскресенье, 15.11.2015, 14:30 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Если не так, перетакивать не буду. :)
К сообщению приложен файл: PalladiumN.xls (70.5 Kb)
 
Ответить
СообщениеЕсли не так, перетакивать не буду. :)

Автор - Wasilich
Дата добавления - 15.11.2015 в 14:30
Palladium Дата: Воскресенье, 15.11.2015, 15:20 | Сообщение № 18
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Почему эта

Простите! Как бы в продолжении работы с файлом.
перетакивать не буду.

Посижу пощелкаю, попробую разобраться как это сделано. Спасибо!
 
Ответить
Сообщение
Почему эта

Простите! Как бы в продолжении работы с файлом.
перетакивать не буду.

Посижу пощелкаю, попробую разобраться как это сделано. Спасибо!

Автор - Palladium
Дата добавления - 15.11.2015 в 15:20
Palladium Дата: Понедельник, 16.11.2015, 07:14 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 20% ±

2003, 2007 RUS
Если не так

С каждым вторым нажатием на кнопку перенос выскакивает окно


Сообщение отредактировал Palladium - Понедельник, 16.11.2015, 07:17
 
Ответить
Сообщение
Если не так

С каждым вторым нажатием на кнопку перенос выскакивает окно

Автор - Palladium
Дата добавления - 16.11.2015 в 07:14
RAN Дата: Понедельник, 16.11.2015, 09:41 | Сообщение № 20
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
При снятии зашиты листа теряется содержимое буфера обмена.
Не знаю, это глюк файла, или так и быть должно, разбираться лень.
Исправьте
[vba]
Код
   Range("A2:J57").Copy
   Sheets(месяц).Select
   ActiveSheet.Unprotect Password:="1111112"
[/vba]
на
[vba]
Код
   Sheets(месяц).Unprotect Password:="1111112"
   Range("A2:J57").Copy
   Sheets(месяц).Select
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПри снятии зашиты листа теряется содержимое буфера обмена.
Не знаю, это глюк файла, или так и быть должно, разбираться лень.
Исправьте
[vba]
Код
   Range("A2:J57").Copy
   Sheets(месяц).Select
   ActiveSheet.Unprotect Password:="1111112"
[/vba]
на
[vba]
Код
   Sheets(месяц).Unprotect Password:="1111112"
   Range("A2:J57").Copy
   Sheets(месяц).Select
[/vba]

Автор - RAN
Дата добавления - 16.11.2015 в 09:41
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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