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

Вход

Регистрация

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

 

= Мир MS Excel/Выгрузка листа на рабочий стол с заменой формулы ВПР на знач - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выгрузка листа на рабочий стол с заменой формулы ВПР на знач
mihalix Дата: Пятница, 30.01.2015, 16:37 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

2010
Добрый день.
Ситуация: В книге два листа. Второй лист формируется на базе первого с использованием функции ВПР и скрытого фильтра.
Прошу помощи в написании макроса, который бы саздавал новую книгу копировал в нее второй лист "Регистр" превратив все формулы ВПР в значения, а формулы для промежуточных итогов оставил и сохранил книгу в новую папку на рабочем столе с названием листа +дата, то есть в данном случае Регистр 30.01.2015
К сообщению приложен файл: 1457591.xlsm (21.0 Kb)
 
Ответить
СообщениеДобрый день.
Ситуация: В книге два листа. Второй лист формируется на базе первого с использованием функции ВПР и скрытого фильтра.
Прошу помощи в написании макроса, который бы саздавал новую книгу копировал в нее второй лист "Регистр" превратив все формулы ВПР в значения, а формулы для промежуточных итогов оставил и сохранил книгу в новую папку на рабочем столе с названием листа +дата, то есть в данном случае Регистр 30.01.2015

Автор - mihalix
Дата добавления - 30.01.2015 в 16:37
Manyasha Дата: Пятница, 30.01.2015, 18:56 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
Здравствуйте!
Макрос удаления формул из выделенных ячеек (в Вашем случае еще и только видимых):
[vba]
Код

Sub All_Formulas_To_Values_OnlyVisible()
     Dim rRng As Range, rArea As Range
     If Selection.Count = 1 Then
         Set rRng = ActiveCell
     Else
         Set rRng = Selection.SpecialCells(12)
     End If
     For Each rArea In rRng.Areas
         rArea.Value = rArea.Value
     Next rArea
End Sub
[/vba]

Скопировать лист в новую книгу можно так:

[vba]
Код
Sheets("Регистр").Select
Sheets("Регистр").Move
[/vba]

А потом просто сохранить Вашу книгу:
[vba]
Код
ActiveWorkbook.SaveAs FileName:= "Полный путь к папке" & "Регистр" & Date & ".xlsx"
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеЗдравствуйте!
Макрос удаления формул из выделенных ячеек (в Вашем случае еще и только видимых):
[vba]
Код

Sub All_Formulas_To_Values_OnlyVisible()
     Dim rRng As Range, rArea As Range
     If Selection.Count = 1 Then
         Set rRng = ActiveCell
     Else
         Set rRng = Selection.SpecialCells(12)
     End If
     For Each rArea In rRng.Areas
         rArea.Value = rArea.Value
     Next rArea
End Sub
[/vba]

Скопировать лист в новую книгу можно так:

[vba]
Код
Sheets("Регистр").Select
Sheets("Регистр").Move
[/vba]

А потом просто сохранить Вашу книгу:
[vba]
Код
ActiveWorkbook.SaveAs FileName:= "Полный путь к папке" & "Регистр" & Date & ".xlsx"
[/vba]

Автор - Manyasha
Дата добавления - 30.01.2015 в 18:56
mihalix Дата: Понедельник, 02.02.2015, 10:46 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

2010
Спасибо за информацию.
Прописал в файле, но:
- формулы не убираются
- файл после сохранения остается открытым, что добавить, чтоб он был закрыт.
- при сохранении выскакивает сообщение что макросы будут отрублены или сохраниете в другом формате, как сделать, чтоб без этого сообщения автоматом убирал макросы, в т.ч. чтоб кнопка для сохранения исчезала.
К сообщению приложен файл: 4603327.xlsm (28.2 Kb)
 
Ответить
СообщениеСпасибо за информацию.
Прописал в файле, но:
- формулы не убираются
- файл после сохранения остается открытым, что добавить, чтоб он был закрыт.
- при сохранении выскакивает сообщение что макросы будут отрублены или сохраниете в другом формате, как сделать, чтоб без этого сообщения автоматом убирал макросы, в т.ч. чтоб кнопка для сохранения исчезала.

Автор - mihalix
Дата добавления - 02.02.2015 в 10:46
Manyasha Дата: Понедельник, 02.02.2015, 14:51 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
mihalix, давайте разбираться)

формулы не убираются

Ранее я писала, что макрос удаляет формулы только с выделенных ячеек, а у Вас только 1 ячейка активна, следовательно формула удаляется только из нее (если она там есть).

Посмотрите в приложенном файле, как, например, можно пройтись по всем ячейкам листа.

файл после сохранения остается открытым, что добавить, чтоб он был закрыт.


Запишите макросом закрытие книги и посмотрите код, не ленитесь, он очень простой.

3. По третьему пункту: переместите Ваш макрос из модуля листа в обычный модуль, тогда при копировании листа макрос останется только в исходной книге.
Удаление кнопки тоже можно записать макросом и посмотреть код, будет что-то похожее на
[vba]
Код
Sheets(1).Shapes("Button1").Delete
[/vba]
К сообщению приложен файл: test.xlsm (29.0 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеmihalix, давайте разбираться)

формулы не убираются

Ранее я писала, что макрос удаляет формулы только с выделенных ячеек, а у Вас только 1 ячейка активна, следовательно формула удаляется только из нее (если она там есть).

Посмотрите в приложенном файле, как, например, можно пройтись по всем ячейкам листа.

файл после сохранения остается открытым, что добавить, чтоб он был закрыт.


Запишите макросом закрытие книги и посмотрите код, не ленитесь, он очень простой.

3. По третьему пункту: переместите Ваш макрос из модуля листа в обычный модуль, тогда при копировании листа макрос останется только в исходной книге.
Удаление кнопки тоже можно записать макросом и посмотреть код, будет что-то похожее на
[vba]
Код
Sheets(1).Shapes("Button1").Delete
[/vba]

Автор - Manyasha
Дата добавления - 02.02.2015 в 14:51
mihalix Дата: Понедельник, 02.02.2015, 16:20 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

2010
Закрыть книгу - сделал.
[vba]
Код
ActiveWorkbook.Close
[/vba]
 
Ответить
СообщениеЗакрыть книгу - сделал.
[vba]
Код
ActiveWorkbook.Close
[/vba]

Автор - mihalix
Дата добавления - 02.02.2015 в 16:20
Manyasha Дата: Понедельник, 02.02.2015, 16:22 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
А остальное?)) не получилось?


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеА остальное?)) не получилось?

Автор - Manyasha
Дата добавления - 02.02.2015 в 16:22
mihalix Дата: Понедельник, 02.02.2015, 18:52 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

2010
А остальное?)) не получилось?


Кнопку по Вашей подсказке удалить не получилось (ошибка выскакивала), но результата достиг по другому, удаляю на основной книге - копирую, а потом повторно создаю:
[vba]
Код
Sub Save_list()
' Сохранение листа
Sheets("Регистр12").Select
ActiveSheet.Buttons.Delete
Sheets("Регистр12").Copy
Set wbReg = ActiveWorkbook
Dim rRng As Range, rArea As Range
Dim i As Integer
i = 5
While Range("A" & i) <> ""
wbReg.Sheets(1).Range("D" & i & ":F" & i).Select
On Error Resume Next
If Left(wbReg.Sheets(1).Range("A" & i), 7) <> "Выручка" And Selection.SpecialCells(12).Count > 0 Then
Set rRng = Selection.SpecialCells(12)
For Each rArea In rRng.Areas
rArea.Value = rArea.Value
Next rArea
End If
i = i + 1
Wend
wbReg.SaveAs Filename:="d:\Users\user-zuk\Desktop\" & "Регистр12 " & Date & ".xlsx"
wbReg.Close
ActiveSheet.Buttons.Add(15.75, 6.75, 255, 25.5).Select
Selection.OnAction = "ЭтаКнига.Save_list"
Selection.Characters.Text = "Сохранить на рабочий стол"
End Sub
[/vba]
Перенос кода из листа в книгу дал результат!

Можно ли еще прописать что бы скрытые строки при копировании удалялись?


Сообщение отредактировал mihalix - Понедельник, 02.02.2015, 18:58
 
Ответить
Сообщение
А остальное?)) не получилось?


Кнопку по Вашей подсказке удалить не получилось (ошибка выскакивала), но результата достиг по другому, удаляю на основной книге - копирую, а потом повторно создаю:
[vba]
Код
Sub Save_list()
' Сохранение листа
Sheets("Регистр12").Select
ActiveSheet.Buttons.Delete
Sheets("Регистр12").Copy
Set wbReg = ActiveWorkbook
Dim rRng As Range, rArea As Range
Dim i As Integer
i = 5
While Range("A" & i) <> ""
wbReg.Sheets(1).Range("D" & i & ":F" & i).Select
On Error Resume Next
If Left(wbReg.Sheets(1).Range("A" & i), 7) <> "Выручка" And Selection.SpecialCells(12).Count > 0 Then
Set rRng = Selection.SpecialCells(12)
For Each rArea In rRng.Areas
rArea.Value = rArea.Value
Next rArea
End If
i = i + 1
Wend
wbReg.SaveAs Filename:="d:\Users\user-zuk\Desktop\" & "Регистр12 " & Date & ".xlsx"
wbReg.Close
ActiveSheet.Buttons.Add(15.75, 6.75, 255, 25.5).Select
Selection.OnAction = "ЭтаКнига.Save_list"
Selection.Characters.Text = "Сохранить на рабочий стол"
End Sub
[/vba]
Перенос кода из листа в книгу дал результат!

Можно ли еще прописать что бы скрытые строки при копировании удалялись?

Автор - mihalix
Дата добавления - 02.02.2015 в 18:52
mihalix Дата: Понедельник, 02.02.2015, 18:53 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

2010
И еще попутно как делать чтобы код на белом фоне был?... Разобрался, и еще замечание успел получить.


Сообщение отредактировал mihalix - Вторник, 03.02.2015, 09:53
 
Ответить
СообщениеИ еще попутно как делать чтобы код на белом фоне был?... Разобрался, и еще замечание успел получить.

Автор - mihalix
Дата добавления - 02.02.2015 в 18:53
mihalix Дата: Вторник, 03.02.2015, 09:58 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 20% ±

2010
Manyasha, огромное спасибо.
Основную проблему данной темы (превратить все формулы ВПР в значения, а формулы для промежуточных итогов оставить ) Вы решили.
Что бы не было замечаний, другие вопросы выложу в новой теме.
 
Ответить
СообщениеManyasha, огромное спасибо.
Основную проблему данной темы (превратить все формулы ВПР в значения, а формулы для промежуточных итогов оставить ) Вы решили.
Что бы не было замечаний, другие вопросы выложу в новой теме.

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

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