Крутыш
Дата: Понедельник, 27.10.2014, 12:45 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Есть код Восток, который делает определенные действия, таких кодов есть 6, для разных регионов страны. В них стоят MSXBOXы в начале и в конце Вот код [vba]Код
Sub Восток() MsgBox "Выбран дивизион ""Восток""" Sheets("План-факт").Select Sheets("План-факт").Copy Before:=Sheets(2) Sheets("План-факт (2)").Select Sheets("План-факт (2)").Name = "Восток" Sheets("Восток").Select With ActiveWorkbook.Sheets("Восток").Tab .Color = 15773696 .TintAndShade = 0 End With Удаление Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Columns("AT:BF").Select Selection.Delete Shift:=xlToLeft Columns("X:AO").Select Range("AO1").Activate Selection.Delete Shift:=xlToLeft Columns("G:W").Select Range("W1").Activate Selection.Delete Shift:=xlToLeft Range("O430").Select Sheets("Восток").Select Sheets("Восток").Move MsgBox "Готово" End Sub
[/vba] Мне нужен макрос, который бы попеременно выполнял эти макросы для регионов, но игнорировал MSGBOXы. Вот например: [vba]Код
Sub Все() On Error Resume Next Восток Workbooks("План факт продаж").Activate Север Workbooks("План факт продаж").Activate Центр End Sub
[/vba] Подскажите что вписать или может чтобы автоматически после MSGBOXа нажималась кнопка ОК (Она там единственная)
Есть код Восток, который делает определенные действия, таких кодов есть 6, для разных регионов страны. В них стоят MSXBOXы в начале и в конце Вот код [vba]Код
Sub Восток() MsgBox "Выбран дивизион ""Восток""" Sheets("План-факт").Select Sheets("План-факт").Copy Before:=Sheets(2) Sheets("План-факт (2)").Select Sheets("План-факт (2)").Name = "Восток" Sheets("Восток").Select With ActiveWorkbook.Sheets("Восток").Tab .Color = 15773696 .TintAndShade = 0 End With Удаление Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Columns("AT:BF").Select Selection.Delete Shift:=xlToLeft Columns("X:AO").Select Range("AO1").Activate Selection.Delete Shift:=xlToLeft Columns("G:W").Select Range("W1").Activate Selection.Delete Shift:=xlToLeft Range("O430").Select Sheets("Восток").Select Sheets("Восток").Move MsgBox "Готово" End Sub
[/vba] Мне нужен макрос, который бы попеременно выполнял эти макросы для регионов, но игнорировал MSGBOXы. Вот например: [vba]Код
Sub Все() On Error Resume Next Восток Workbooks("План факт продаж").Activate Север Workbooks("План факт продаж").Activate Центр End Sub
[/vba] Подскажите что вписать или может чтобы автоматически после MSGBOXа нажималась кнопка ОК (Она там единственная) Крутыш
Сообщение отредактировал Крутыш - Понедельник, 27.10.2014, 12:46
Ответить
Сообщение Есть код Восток, который делает определенные действия, таких кодов есть 6, для разных регионов страны. В них стоят MSXBOXы в начале и в конце Вот код [vba]Код
Sub Восток() MsgBox "Выбран дивизион ""Восток""" Sheets("План-факт").Select Sheets("План-факт").Copy Before:=Sheets(2) Sheets("План-факт (2)").Select Sheets("План-факт (2)").Name = "Восток" Sheets("Восток").Select With ActiveWorkbook.Sheets("Восток").Tab .Color = 15773696 .TintAndShade = 0 End With Удаление Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Columns("AT:BF").Select Selection.Delete Shift:=xlToLeft Columns("X:AO").Select Range("AO1").Activate Selection.Delete Shift:=xlToLeft Columns("G:W").Select Range("W1").Activate Selection.Delete Shift:=xlToLeft Range("O430").Select Sheets("Восток").Select Sheets("Восток").Move MsgBox "Готово" End Sub
[/vba] Мне нужен макрос, который бы попеременно выполнял эти макросы для регионов, но игнорировал MSGBOXы. Вот например: [vba]Код
Sub Все() On Error Resume Next Восток Workbooks("План факт продаж").Activate Север Workbooks("План факт продаж").Activate Центр End Sub
[/vba] Подскажите что вписать или может чтобы автоматически после MSGBOXа нажималась кнопка ОК (Она там единственная) Автор - Крутыш Дата добавления - 27.10.2014 в 12:45
UltrasRW
Дата: Понедельник, 27.10.2014, 13:01 |
Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация:
5
±
Замечаний:
0% ±
счеты деревянные
Крутыш , можно добавить параметр и смотреть на него, например: [vba]Код
Sub Восток(showMSG As Boolean) If showMSG Then MsgBox "Выбран дивизион ""Восток""" End If 'далее ваш код End Sub 'запуск Sub Все() On Error Resume Next Восток False Workbooks("План факт продаж").Activate 'далее ваш код End Sub
[/vba]
Крутыш , можно добавить параметр и смотреть на него, например: [vba]Код
Sub Восток(showMSG As Boolean) If showMSG Then MsgBox "Выбран дивизион ""Восток""" End If 'далее ваш код End Sub 'запуск Sub Все() On Error Resume Next Восток False Workbooks("План факт продаж").Activate 'далее ваш код End Sub
[/vba]UltrasRW
Ответить
Сообщение Крутыш , можно добавить параметр и смотреть на него, например: [vba]Код
Sub Восток(showMSG As Boolean) If showMSG Then MsgBox "Выбран дивизион ""Восток""" End If 'далее ваш код End Sub 'запуск Sub Все() On Error Resume Next Восток False Workbooks("План факт продаж").Activate 'далее ваш код End Sub
[/vba]Автор - UltrasRW Дата добавления - 27.10.2014 в 13:01
Крутыш
Дата: Понедельник, 27.10.2014, 14:50 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Немного не то, теперь не работает, если я пытаюсь запустить конкретный макрос, например ВОСТОК. Он не выдает меседж
Немного не то, теперь не работает, если я пытаюсь запустить конкретный макрос, например ВОСТОК. Он не выдает меседж Крутыш
Ответить
Сообщение Немного не то, теперь не работает, если я пытаюсь запустить конкретный макрос, например ВОСТОК. Он не выдает меседж Автор - Крутыш Дата добавления - 27.10.2014 в 14:50
Alex_ST
Дата: Понедельник, 27.10.2014, 15:23 |
Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация:
609
±
Замечаний:
0% ±
2003
[vba]
Код
Sub Vostok() Call SheetsCopy("Vostok", True) End Sub Sub Zapad() Call SheetsCopy("Zapad", True) End Sub Sub Zapad_Vostok() Call SheetsCopy("Zapad") Call SheetsCopy("Vostok") End Sub Sub SheetsCopy(sDiv$, Optional bShow As Boolean) Dim sWbk$: sWbk = ThisWorkbook.Name If bShow Then MsgBox "Выбран дивизион """ & sDiv$ & """" Workbooks(sWbk).Sheets("План-факт").Copy ActiveSheet.Name = sDiv With ActiveSheet .Tab.Color = 15773696 .UsedRange.Value = .UsedRange.Value 'Удаление формул .Columns("AT:BF").Delete Shift:=xlToLeft .Columns("X:AO").Delete Shift:=xlToLeft .Columns("G:W").Delete Shift:=xlToLeft End With If Not bShow Then Workbooks(sWbk).Activate If bShow Then MsgBox "Готово" End Sub
[/vba]
[vba]
Код
Sub Vostok() Call SheetsCopy("Vostok", True) End Sub Sub Zapad() Call SheetsCopy("Zapad", True) End Sub Sub Zapad_Vostok() Call SheetsCopy("Zapad") Call SheetsCopy("Vostok") End Sub Sub SheetsCopy(sDiv$, Optional bShow As Boolean) Dim sWbk$: sWbk = ThisWorkbook.Name If bShow Then MsgBox "Выбран дивизион """ & sDiv$ & """" Workbooks(sWbk).Sheets("План-факт").Copy ActiveSheet.Name = sDiv With ActiveSheet .Tab.Color = 15773696 .UsedRange.Value = .UsedRange.Value 'Удаление формул .Columns("AT:BF").Delete Shift:=xlToLeft .Columns("X:AO").Delete Shift:=xlToLeft .Columns("G:W").Delete Shift:=xlToLeft End With If Not bShow Then Workbooks(sWbk).Activate If bShow Then MsgBox "Готово" End Sub
[/vba]
Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Понедельник, 27.10.2014, 15:25
Ответить
Сообщение
[vba]
Код
Sub Vostok() Call SheetsCopy("Vostok", True) End Sub Sub Zapad() Call SheetsCopy("Zapad", True) End Sub Sub Zapad_Vostok() Call SheetsCopy("Zapad") Call SheetsCopy("Vostok") End Sub Sub SheetsCopy(sDiv$, Optional bShow As Boolean) Dim sWbk$: sWbk = ThisWorkbook.Name If bShow Then MsgBox "Выбран дивизион """ & sDiv$ & """" Workbooks(sWbk).Sheets("План-факт").Copy ActiveSheet.Name = sDiv With ActiveSheet .Tab.Color = 15773696 .UsedRange.Value = .UsedRange.Value 'Удаление формул .Columns("AT:BF").Delete Shift:=xlToLeft .Columns("X:AO").Delete Shift:=xlToLeft .Columns("G:W").Delete Shift:=xlToLeft End With If Not bShow Then Workbooks(sWbk).Activate If bShow Then MsgBox "Готово" End Sub
[/vba]
Автор - Alex_ST Дата добавления - 27.10.2014 в 15:23