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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление и импорт листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление и импорт листов (Макросы/Sub)
Удаление и импорт листов
VIDEO56 Дата: Понедельник, 27.07.2015, 13:24 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
Всем доброго дня.
Задача следующая. Есть файл в который импортируются листы прайса, нужно чтобы перед импортом из файла удалялись все листы кроме 3 определенных, после этого копировались все листы из экспортируемого файла. Делал это через рекодер, но он привязывается к импорту листов с определенным именем. Если в экспортируемом файле название листов отличается, то макрос не работает!
К сообщению приложен файл: 7247036.xlsm (55.1 Kb) · 9809822.xlsm (8.4 Kb)


Всем удачного дня!
 
Ответить
СообщениеВсем доброго дня.
Задача следующая. Есть файл в который импортируются листы прайса, нужно чтобы перед импортом из файла удалялись все листы кроме 3 определенных, после этого копировались все листы из экспортируемого файла. Делал это через рекодер, но он привязывается к импорту листов с определенным именем. Если в экспортируемом файле название листов отличается, то макрос не работает!

Автор - VIDEO56
Дата добавления - 27.07.2015 в 13:24
SLAVICK Дата: Понедельник, 27.07.2015, 13:35 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Не понятно, какие листы нужно оставить...
Так?
[vba]
Код
Sub i()
Dim Sh As Worksheet, s$
Application.DisplayAlerts = False
      For Each Sh In ThisWorkbook.Sheets
          s = Sh.Name
          If s = "Общий график монтажей" Xor s = "Бригада 1" Xor s = "Бригада 2" Then Else Sh.Delete
      Next
Application.DisplayAlerts = True
End Sub
[/vba]

Делал это через рекодер, но он привязывается к импорту листов с определенным именем

Если нужно удалять по порядковому номеру листа - тогда что - то вроде
[vba]
Код
Sheets(1).Delete
[/vba]
где 1 - порядковый номер листа в книге
К сообщению приложен файл: 2752512.xlsm (61.5 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 27.07.2015, 13:40
 
Ответить
СообщениеНе понятно, какие листы нужно оставить...
Так?
[vba]
Код
Sub i()
Dim Sh As Worksheet, s$
Application.DisplayAlerts = False
      For Each Sh In ThisWorkbook.Sheets
          s = Sh.Name
          If s = "Общий график монтажей" Xor s = "Бригада 1" Xor s = "Бригада 2" Then Else Sh.Delete
      Next
Application.DisplayAlerts = True
End Sub
[/vba]

Делал это через рекодер, но он привязывается к импорту листов с определенным именем

Если нужно удалять по порядковому номеру листа - тогда что - то вроде
[vba]
Код
Sheets(1).Delete
[/vba]
где 1 - порядковый номер листа в книге

Автор - SLAVICK
Дата добавления - 27.07.2015 в 13:35
VIDEO56 Дата: Понедельник, 27.07.2015, 13:41 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, да первая часть вопроса закрыта.


Всем удачного дня!
 
Ответить
СообщениеSLAVICK, да первая часть вопроса закрыта.

Автор - VIDEO56
Дата добавления - 27.07.2015 в 13:41
SLAVICK Дата: Понедельник, 27.07.2015, 13:43 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
SLAVICK, да первая часть вопроса закрыта.

Так а что и куда копировать? - не понятно %)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
SLAVICK, да первая часть вопроса закрыта.

Так а что и куда копировать? - не понятно %)

Автор - SLAVICK
Дата добавления - 27.07.2015 в 13:43
VIDEO56 Дата: Понедельник, 27.07.2015, 13:43 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, А как скопировать все листы из другого файла. Путь я написал а вот дальше затык


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

Автор - VIDEO56
Дата добавления - 27.07.2015 в 13:43
VIDEO56 Дата: Понедельник, 27.07.2015, 13:45 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Dim MyPath As String
      Dim wb1 As String
      Dim wb2 As String
      Application.ScreenUpdating = False
      Application.CutCopyMode = False
      wb1 = "Прайс новый.xls"
      wb2 = "Заявка дилера.xlsm"
      MyPath = ThisWorkbook.Path & "\" & wb1
      Workbooks.Open Filename:=MyPath
[/vba]


Всем удачного дня!

Сообщение отредактировал VIDEO56 - Понедельник, 27.07.2015, 13:46
 
Ответить
Сообщение[vba]
Код
Dim MyPath As String
      Dim wb1 As String
      Dim wb2 As String
      Application.ScreenUpdating = False
      Application.CutCopyMode = False
      wb1 = "Прайс новый.xls"
      wb2 = "Заявка дилера.xlsm"
      MyPath = ThisWorkbook.Path & "\" & wb1
      Workbooks.Open Filename:=MyPath
[/vba]

Автор - VIDEO56
Дата добавления - 27.07.2015 в 13:45
VIDEO56 Дата: Понедельник, 27.07.2015, 13:46 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
И из файла прайс скопировать все листы


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

Автор - VIDEO56
Дата добавления - 27.07.2015 в 13:46
SLAVICK Дата: Понедельник, 27.07.2015, 13:52 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
После открытия книг(wb1,wb2): :D

[vba]
Код
With Workbooks(wb1)
.Sheets.Copy Before:=ThisWorkbook.Sheets(1)
End With
[/vba]


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 27.07.2015, 15:19
 
Ответить
СообщениеПосле открытия книг(wb1,wb2): :D

[vba]
Код
With Workbooks(wb1)
.Sheets.Copy Before:=ThisWorkbook.Sheets(1)
End With
[/vba]

Автор - SLAVICK
Дата добавления - 27.07.2015 в 13:52
VIDEO56 Дата: Понедельник, 27.07.2015, 13:58 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
Да то что нужно. А как импортируемы файлы после этого скрыть?


Всем удачного дня!
 
Ответить
СообщениеДа то что нужно. А как импортируемы файлы после этого скрыть?

Автор - VIDEO56
Дата добавления - 27.07.2015 в 13:58
SLAVICK Дата: Понедельник, 27.07.2015, 14:11 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
А как импортируемы файлы после этого скрыть?

Скрыть или закрыть?
Если закрыть, то :
[vba]
Код
Workbooks(wb1).Close False
[/vba]


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
А как импортируемы файлы после этого скрыть?

Скрыть или закрыть?
Если закрыть, то :
[vba]
Код
Workbooks(wb1).Close False
[/vba]

Автор - SLAVICK
Дата добавления - 27.07.2015 в 14:11
VIDEO56 Дата: Понедельник, 27.07.2015, 14:45 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, прошу прощения не правильно выразился ИМПОРТИРУЕМЫЕ ИЗ ПРАЙСА ЛИСТЫ в файле заявка скрыть!


Всем удачного дня!
 
Ответить
СообщениеSLAVICK, прошу прощения не правильно выразился ИМПОРТИРУЕМЫЕ ИЗ ПРАЙСА ЛИСТЫ в файле заявка скрыть!

Автор - VIDEO56
Дата добавления - 27.07.2015 в 14:45
SLAVICK Дата: Понедельник, 27.07.2015, 15:10 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
[vba]
Код
    With Workbooks(wb1)
          n = .Sheets.Count
          .Sheets.Copy Before:=ThisWorkbook.Sheets(1)
          .Close False
      End With
      For t = 1 To n: ThisWorkbook.Sheets(t).Visible = 2: Next
[/vba]


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Понедельник, 27.07.2015, 15:19
 
Ответить
Сообщение[vba]
Код
    With Workbooks(wb1)
          n = .Sheets.Count
          .Sheets.Copy Before:=ThisWorkbook.Sheets(1)
          .Close False
      End With
      For t = 1 To n: ThisWorkbook.Sheets(t).Visible = 2: Next
[/vba]

Автор - SLAVICK
Дата добавления - 27.07.2015 в 15:10
VIDEO56 Дата: Понедельник, 27.07.2015, 15:32 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 262
Репутация: 23 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, спасибо огромное.


Всем удачного дня!
 
Ответить
СообщениеSLAVICK, спасибо огромное.

Автор - VIDEO56
Дата добавления - 27.07.2015 в 15:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление и импорт листов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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