Помогите плиз, как сделать так чтобы макрос копировал только значения, а не формулы из желтого столбца и одной кнопкой на первом листе значения вставлялись на нескольких заданных листах, если по ячейкам все таблицы совпадают?
Сейчас макрос копирует вместе с формулами все что находится в желтом столбце и вставляет столбец согласно текущей дате.
Заранее огромное спасибо!
Доброго всем вечера!
Помогите плиз, как сделать так чтобы макрос копировал только значения, а не формулы из желтого столбца и одной кнопкой на первом листе значения вставлялись на нескольких заданных листах, если по ячейкам все таблицы совпадают?
Сейчас макрос копирует вместе с формулами все что находится в желтом столбце и вставляет столбец согласно текущей дате.
Большое спасибо! Работает! А как сделать так чтобы этот макрос работал на нескольких листах и делал тоже самое но по нажатию одной кнопки(чтобы не размещать на каждом листе по кнопке)?
Большое спасибо! Работает! А как сделать так чтобы этот макрос работал на нескольких листах и делал тоже самое но по нажатию одной кнопки(чтобы не размещать на каждом листе по кнопке)?Bugizavr
А можно чуть поподробнее , я только начинаю все понимать) Вот что у меня:
[vba]
Код
Sub CopyData()
Dim lc As Integer Dim rngDate As Range
lc = Cells(4, Columns.Count).End(xlToLeft).Column Set rngDate = Range("C4", Cells(4, lc)).Find(Day(Now)) If Not rngDate Is Nothing Then Range("B5:B" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If
End Sub
[/vba]
А можно чуть поподробнее , я только начинаю все понимать) Вот что у меня:
[vba]
Код
Sub CopyData()
Dim lc As Integer Dim rngDate As Range
lc = Cells(4, Columns.Count).End(xlToLeft).Column Set rngDate = Range("C4", Cells(4, lc)).Find(Day(Now)) If Not rngDate Is Nothing Then Range("B5:B" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If
Dim lc As Integer, i& Dim rngDate As Range For i = 1 to thisworkbook.sheets.count With sheets(i) lc = .Cells(4, .Columns.Count).End(xlToLeft).Column Set rngDate = .Range("C4", .Cells(4, lc)).Find(Day(Now)) If Not rngDate Is Nothing Then .Range("B5:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If end with next
Dim lc As Integer, i& Dim rngDate As Range For i = 1 to thisworkbook.sheets.count With sheets(i) lc = .Cells(4, .Columns.Count).End(xlToLeft).Column Set rngDate = .Range("C4", .Cells(4, lc)).Find(Day(Now)) If Not rngDate Is Nothing Then .Range("B5:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If end with next
Sub CopyData() Dim lc As Integer, i& Dim rngDate As Range For i = 1 To ThisWorkbook.Sheets.Count With Sheets(i) lc = .Cells(4, .Columns.Count).End(xlToLeft).Column Set rngDate = .Range("C4", .Cells(4, lc)).Find(Date) If Not rngDate Is Nothing Then .Range("B5:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If End With Next End Sub
[/vba]
[vba]
Код
Sub CopyData() Dim lc As Integer, i& Dim rngDate As Range For i = 1 To ThisWorkbook.Sheets.Count With Sheets(i) lc = .Cells(4, .Columns.Count).End(xlToLeft).Column Set rngDate = .Range("C4", .Cells(4, lc)).Find(Date) If Not rngDate Is Nothing Then .Range("B5:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If End With Next End Sub
А для общего развития, сейчас прописано применять на каждой странице макрос, а как сделать чтобы применять только на определенных страницах с разными названиями?
SkyPro, большое спасибо!
А для общего развития, сейчас прописано применять на каждой странице макрос, а как сделать чтобы применять только на определенных страницах с разными названиями?Bugizavr
Как же мне все таки прописать так, чтобы макрос работал только на определенных листах, например на первом и третьем. Код макроса выше через одно сообщение.
Помоги, заранее спасибо!
Еще раз добрый день!
Как же мне все таки прописать так, чтобы макрос работал только на определенных листах, например на первом и третьем. Код макроса выше через одно сообщение.
Sub CopyData() Dim lc As Integer, i& Dim rngDate As Range For i = 1 To ThisWorkbook.Sheets.Count if i = 1 or i = 3 then 'вот тут через "or" можно добавить номера листов. With Sheets(i) lc = .Cells(4, .Columns.Count).End(xlToLeft).Column Set rngDate = .Range("C4", .Cells(4, lc)).Find(Date) If Not rngDate Is Nothing Then .Range("B5:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If End With end if Next End Sub
[/vba]
[vba]
Код
Sub CopyData() Dim lc As Integer, i& Dim rngDate As Range For i = 1 To ThisWorkbook.Sheets.Count if i = 1 or i = 3 then 'вот тут через "or" можно добавить номера листов. With Sheets(i) lc = .Cells(4, .Columns.Count).End(xlToLeft).Column Set rngDate = .Range("C4", .Cells(4, lc)).Find(Date) If Not rngDate Is Nothing Then .Range("B5:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(5, rngDate.Column).PasteSpecial Paste:=xlValues End If End With end if Next End Sub
Но есть еще вопрос, а как сделать так чтобы работало так же, но таблица располагалась как после транспонирования (пример во вложении). Действия те же самые, строка выделенная желтым копируется в строку согласно текущей дате.
Заранее спасибо.
Добрый день! Я наверно уже достал Вас)
Но есть еще вопрос, а как сделать так чтобы работало так же, но таблица располагалась как после транспонирования (пример во вложении). Действия те же самые, строка выделенная желтым копируется в строку согласно текущей дате.