Добрый день друзья, Прошу немного поправить кодик, третий день копаю, никак, не хочет копировать Макрос запускается из файла, создает лист с датой, далее переходит на другой уже запущенный файл, в нем тоже создает такойже лист, расставляет фильтры на листе и копирует вот тут и не получается с синтаксисом закопался, помогите немного
Что делает: Лист создает и там и там, фильтры расставляет, но даты не ставит и не копирует....где накосячил не пойму
[vba]
Код
Dim k, i As Long, DayWeek As Integer Dim wsSh, sh As Worksheet
With Application
.ScreenUpdating = False: End With On Error Resume Next
DayWeek = DatePart("w", Date) 'создаем нов лист c проверкой на дубль If DayWeek = 6 Then 'если день недели-пятница strDate = Format(Now + 3, "dd.mm.yy") Else strDate = Format(Now + 1, "dd.mm.yy") End If On Error Resume Next Set wsSh = Sheets(strDate) If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = strDate
Windows("gor.xls").Activate 'идем в другую книгу Set wsSh = Sheets(strDate) If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = strDate 'создаем нов лист c проверкой на дубль
Set sh = Sheets("avtclav")
Worksheets("avtclav").Activate Windows("gor.xls").Activate sh.ShowAllData 'снимем все фильтры что враги наставили
Range("A5:bg5").AutoFilter 'фильтр в пятой строке шапка большая
With sh ' вот этого места начитнаются грабли
sh.UsedRange.AutoFilter 44, "АВТОКЛАВ" sh.UsedRange.AutoFilter 39, "<>" For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1 .Cells(i, 55) = Now Next
sh.UsedRange.AutoFilter 44, "АВТОКЛАВ" sh.UsedRange.AutoFilter 40, "<>" For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1 .Cells(i, 55) = Now Next
i = .Cells(.Rows.Count, 2).End(xlUp).Row sh.UsedRange.Offset(5).Resize(, 22).SpecialCells(12).Copy wsSh.[A&i]
MsgBox i Windows("gor.xls").Activate wsSh.Activate
'а в конце в столбике 55 проставить сегодняшнюю дату в каждой строчке 'и пеhеносит полученную таблицу в файл откуда запускается макрос, ну тут я думаю справлюсь
End With ScreenUpdating = True
[/vba] [moder]А конкретно что не получается?
Добрый день друзья, Прошу немного поправить кодик, третий день копаю, никак, не хочет копировать Макрос запускается из файла, создает лист с датой, далее переходит на другой уже запущенный файл, в нем тоже создает такойже лист, расставляет фильтры на листе и копирует вот тут и не получается с синтаксисом закопался, помогите немного
Что делает: Лист создает и там и там, фильтры расставляет, но даты не ставит и не копирует....где накосячил не пойму
[vba]
Код
Dim k, i As Long, DayWeek As Integer Dim wsSh, sh As Worksheet
With Application
.ScreenUpdating = False: End With On Error Resume Next
DayWeek = DatePart("w", Date) 'создаем нов лист c проверкой на дубль If DayWeek = 6 Then 'если день недели-пятница strDate = Format(Now + 3, "dd.mm.yy") Else strDate = Format(Now + 1, "dd.mm.yy") End If On Error Resume Next Set wsSh = Sheets(strDate) If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = strDate
Windows("gor.xls").Activate 'идем в другую книгу Set wsSh = Sheets(strDate) If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = strDate 'создаем нов лист c проверкой на дубль
Set sh = Sheets("avtclav")
Worksheets("avtclav").Activate Windows("gor.xls").Activate sh.ShowAllData 'снимем все фильтры что враги наставили
Range("A5:bg5").AutoFilter 'фильтр в пятой строке шапка большая
With sh ' вот этого места начитнаются грабли
sh.UsedRange.AutoFilter 44, "АВТОКЛАВ" sh.UsedRange.AutoFilter 39, "<>" For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1 .Cells(i, 55) = Now Next
sh.UsedRange.AutoFilter 44, "АВТОКЛАВ" sh.UsedRange.AutoFilter 40, "<>" For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1 .Cells(i, 55) = Now Next
i = .Cells(.Rows.Count, 2).End(xlUp).Row sh.UsedRange.Offset(5).Resize(, 22).SpecialCells(12).Copy wsSh.[A&i]
MsgBox i Windows("gor.xls").Activate wsSh.Activate
'а в конце в столбике 55 проставить сегодняшнюю дату в каждой строчке 'и пеhеносит полученную таблицу в файл откуда запускается макрос, ну тут я думаю справлюсь
разобрался с одним косяком, оказывается ексел путался в файлах так как видимо имена одинаковые он не знал куда копировать. остался вопрос как проставить дату в ТОЛЬКО ОТОБРАННЫЕ значения
у меня проставляет в весь столбец
[vba]
Код
Windows("gor.xls").Activate 'идем в другую книгу
DayWeek = DatePart("w", Date) 'создаем нов лист c проверкой на дубль If DayWeek = 6 Then 'если день недели-пятница strDate = Format(Now + 3, "dd.mm.yy") Else strDate = Format(Now + 1, "dd.mm.yy") End If On Error Resume Next Set wsSh = Sheets(strDate) If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = strDate 'создаем нов лист c проверкой на дубль
Set sh = Sheets("avtclav")
Worksheets("avtclav").Activate Windows("gor.xls").Activate sh.ShowAllData 'снимем все фильтры что враги наставили
Range("A5:bg5").AutoFilter 'фильтр в пятой строке шапка большая
sh.UsedRange.Offset(5).Columns(2).Resize(, 42).SpecialCells(12).Copy wsSh.Cells(r, 1) End With With wsSh wsSh.Activate r = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 End With
With wsSh wsSh.Activate r = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 End With
With sh [size=12][b] 'вот тут подскажите[/b][/size] sh.ShowAllData
sh.UsedRange.AutoFilter 44, "АВТОКЛАВ"
For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1 .Cells(i, 51) = Now + 1 Next End With
MsgBox r Windows("gor.xls").Activate wsSh.Activate
'а в конце в столбике 51 проставить сегодняшнюю дату в каждой строчке 'и пеhеносит полученную таблицу в файл откуда запускается макрос, ну тут я думаю справлюсь
ScreenUpdating = True
[/vba]
разобрался с одним косяком, оказывается ексел путался в файлах так как видимо имена одинаковые он не знал куда копировать. остался вопрос как проставить дату в ТОЛЬКО ОТОБРАННЫЕ значения
у меня проставляет в весь столбец
[vba]
Код
Windows("gor.xls").Activate 'идем в другую книгу
DayWeek = DatePart("w", Date) 'создаем нов лист c проверкой на дубль If DayWeek = 6 Then 'если день недели-пятница strDate = Format(Now + 3, "dd.mm.yy") Else strDate = Format(Now + 1, "dd.mm.yy") End If On Error Resume Next Set wsSh = Sheets(strDate) If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = strDate 'создаем нов лист c проверкой на дубль
Set sh = Sheets("avtclav")
Worksheets("avtclav").Activate Windows("gor.xls").Activate sh.ShowAllData 'снимем все фильтры что враги наставили
Range("A5:bg5").AutoFilter 'фильтр в пятой строке шапка большая
sh.UsedRange.Offset(5).Columns(2).Resize(, 42).SpecialCells(12).Copy wsSh.Cells(r, 1) End With With wsSh wsSh.Activate r = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 End With
With wsSh wsSh.Activate r = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 End With
With sh [size=12][b] 'вот тут подскажите[/b][/size] sh.ShowAllData
sh.UsedRange.AutoFilter 44, "АВТОКЛАВ"
For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 1 Step -1 .Cells(i, 51) = Now + 1 Next End With
MsgBox r Windows("gor.xls").Activate wsSh.Activate
'а в конце в столбике 51 проставить сегодняшнюю дату в каждой строчке 'и пеhеносит полученную таблицу в файл откуда запускается макрос, ну тут я думаю справлюсь
парни я чет вообще перестал понимать, беру 2 файла один с кодом и второй с которым он работает, переношу на домашний комп, запускаю все нормуль все работает, а на работе ни в какую, я вот думаю может админы чё нить пофиксили, мож библиотеку какую. скажите для SpecialCells(12). должна быть специальная библиотека?
парни я чет вообще перестал понимать, беру 2 файла один с кодом и второй с которым он работает, переношу на домашний комп, запускаю все нормуль все работает, а на работе ни в какую, я вот думаю может админы чё нить пофиксили, мож библиотеку какую. скажите для SpecialCells(12). должна быть специальная библиотека?31280