Уважаемые VBA-умеющие, подмогните, плз, неумеющему. В файле листы АА и ББ содержат прайсы по разным договорам, формирующиеся из других листов. Другие листы содержат информацию по большому числу клиентов. Поэтому, перед отправкой прайса одному клиенту нужно убрать информацию о других. Т.е. На листах АА и ББ необходимо оставить только область прайса которая может изменяться по количеству строк (в примере, на листе АА нужно оставить область B1:H22). Соответственно убрать формулы, список (М2) и поле (М7), а также листы База и Скидка. С большой заранее-благодарностью!))
Уважаемые VBA-умеющие, подмогните, плз, неумеющему. В файле листы АА и ББ содержат прайсы по разным договорам, формирующиеся из других листов. Другие листы содержат информацию по большому числу клиентов. Поэтому, перед отправкой прайса одному клиенту нужно убрать информацию о других. Т.е. На листах АА и ББ необходимо оставить только область прайса которая может изменяться по количеству строк (в примере, на листе АА нужно оставить область B1:H22). Соответственно убрать формулы, список (М2) и поле (М7), а также листы База и Скидка. С большой заранее-благодарностью!))pabchek
А по каким критериям формируются списки позиций на этих листах? Или их менять не нужно - а просто создать отдельный файл для клиента состоящий из одного листа без формул?
А по каким критериям формируются списки позиций на этих листах? Или их менять не нужно - а просто создать отдельный файл для клиента состоящий из одного листа без формул?SLAVICK
Да, нужно создать отдельный файл без формул и ссылок но с сохранением оформления (только не с одним, а с двумя листами АА и ББ). А в оригинале у меня и формулы другие и собираются данные из 7 листов, но это я уж сам попробую адаптировать.
Да, нужно создать отдельный файл без формул и ссылок но с сохранением оформления (только не с одним, а с двумя листами АА и ББ). А в оригинале у меня и формулы другие и собираются данные из 7 листов, но это я уж сам попробую адаптировать.pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Sub test() Sheets(Array("АА", "ББ")).Copy Cells.Copy Cells.PasteSpecial Paste:=xlPasteValues Columns("I:W").Delete Shift:=xlToLeft Sheets("АА").Shapes.Range(Array("ComboBox21")).Delete End Sub
[/vba]
Ну вот простенький макрос: [vba]
Код
Sub test() Sheets(Array("АА", "ББ")).Copy Cells.Copy Cells.PasteSpecial Paste:=xlPasteValues Columns("I:W").Delete Shift:=xlToLeft Sheets("АА").Shapes.Range(Array("ComboBox21")).Delete End Sub
Вот так вроде с новой книгой работает (на основе кода от SLAVICK) [vba]
Код
Private Sub Убрать_Click() Application.ScreenUpdating = 0 Sheets(Array("АА", "ББ")).Copy For i = 1 To 2 With Sheets(i) .Cells.Copy .Cells.PasteSpecial Paste:=xlPasteValues .Columns("I:W").Delete .Range("A1").Select On Error Resume Next .Shapes.Range(Array("ComboBox21")).Delete .Shapes.Range(Array("Убрать")).Delete End With Next i End Sub
[/vba]
Вот так вроде с новой книгой работает (на основе кода от SLAVICK) [vba]
Код
Private Sub Убрать_Click() Application.ScreenUpdating = 0 Sheets(Array("АА", "ББ")).Copy For i = 1 To 2 With Sheets(i) .Cells.Copy .Cells.PasteSpecial Paste:=xlPasteValues .Columns("I:W").Delete .Range("A1").Select On Error Resume Next .Shapes.Range(Array("ComboBox21")).Delete .Shapes.Range(Array("Убрать")).Delete End With Next i End Sub
Sub Сохранить() Dim rn&, rk&, iPath$, I& With Application.FileDialog(msoFileDialogFolderPicker) .ButtonName = "Выбрать" .Title = "Выберите и откройте папку для сохранения файлов." .InitialFileName = iPath If .Show = False Then Exit Sub iPath = .SelectedItems(1) & "\" End With Application.ScreenUpdating = False Application.DisplayAlerts = False
Sheets(Array("АА", "ББ")).Copy For I = 1 To 2 With Sheets(I) .Cells.Copy .Cells.PasteSpecial Paste:=xlPasteValues .UsedRange.Value = .UsedRange.Value On Error Resume Next .Columns("I:W").Delete .Buttons.Delete 'Удаляем кнопки .DrawingObjects.Delete 'Удаляем все элеме .Range("A1").Select End With Next I With Sheets("АА") rn = .Range("B" & Rows.Count).End(xlUp).Row rk = .Range("H" & Rows.Count).End(xlUp).Row Range("A" & rn & ":H" & rk).Clear End With
ActiveWorkbook.SaveAs iPath & "ААББ.xls" ActiveWorkbook.Close False Application.DisplayAlerts = True: Application.ScreenUpdating = True MsgBox "Готово! Ищем в " & iPath & "ААББ.xls" End Sub
[/vba]
Я думаю надо именно так:
[vba]
Код
Sub Сохранить() Dim rn&, rk&, iPath$, I& With Application.FileDialog(msoFileDialogFolderPicker) .ButtonName = "Выбрать" .Title = "Выберите и откройте папку для сохранения файлов." .InitialFileName = iPath If .Show = False Then Exit Sub iPath = .SelectedItems(1) & "\" End With Application.ScreenUpdating = False Application.DisplayAlerts = False
Sheets(Array("АА", "ББ")).Copy For I = 1 To 2 With Sheets(I) .Cells.Copy .Cells.PasteSpecial Paste:=xlPasteValues .UsedRange.Value = .UsedRange.Value On Error Resume Next .Columns("I:W").Delete .Buttons.Delete 'Удаляем кнопки .DrawingObjects.Delete 'Удаляем все элеме .Range("A1").Select End With Next I With Sheets("АА") rn = .Range("B" & Rows.Count).End(xlUp).Row rk = .Range("H" & Rows.Count).End(xlUp).Row Range("A" & rn & ":H" & rk).Clear End With
ActiveWorkbook.SaveAs iPath & "ААББ.xls" ActiveWorkbook.Close False Application.DisplayAlerts = True: Application.ScreenUpdating = True MsgBox "Готово! Ищем в " & iPath & "ААББ.xls" End Sub
Wasilic, чувствую, что так и надо))). Но, к сожалению не смог адаптировать для себя - знаний не хватает. Попытаюсь со временем разобраться. Так или иначе спасибо большое! Плюсую
Wasilic, чувствую, что так и надо))). Но, к сожалению не смог адаптировать для себя - знаний не хватает. Попытаюсь со временем разобраться. Так или иначе спасибо большое! Плюсуюpabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Надеюсь, что тема возродится и я получу ответ или консультацию
и так, есть отчёт который выгружает данные по разным брендам в разные книги, получается много книг с одним листом. вопрос решил, теперь файл объединяет несколько книг в одну
но осталась проблема, во всех листах остаются лишние строки и столбцы, гугление кодов не помогло
вложил файл и жёлтым выделил то, что хотелось бы удалять с листов, их может быть до 20-ти так же есть пара нюансов: 1. в месяцах, где 30 дней столбцы AI-AO сдвигаются на один влево 2. строки 243-257 - так же могут меняться из раза в раз из на разных листах могут быть на разном месте
можно ли это решить?
спасибо!
Всем, привет!
Надеюсь, что тема возродится и я получу ответ или консультацию
и так, есть отчёт который выгружает данные по разным брендам в разные книги, получается много книг с одним листом. вопрос решил, теперь файл объединяет несколько книг в одну
но осталась проблема, во всех листах остаются лишние строки и столбцы, гугление кодов не помогло
вложил файл и жёлтым выделил то, что хотелось бы удалять с листов, их может быть до 20-ти так же есть пара нюансов: 1. в месяцах, где 30 дней столбцы AI-AO сдвигаются на один влево 2. строки 243-257 - так же могут меняться из раза в раз из на разных листах могут быть на разном месте