Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Office Excel - передача данных между листами (http://forum.oszone.net/showthread.php?t=318909)

Strinteijer 18-09-2016 18:20 2669898

Office Excel - передача данных между листами
 
Добрый день! Подскажите кто-нибудь возможно ли сделать так, чтобы данные со второго листа передавались на первый, фишка в том, чтобы именно на втором листе были формулы, а на первом только данные. Первый лист получается основной.
Спасибо заранее за ответ, ну или какие альтернативные варианты можете предложить.

Iska 18-09-2016 19:21 2669912

Цитата:

Цитата Strinteijer
возможно ли сделать так, чтобы данные со второго листа передавались на первый, фишка в том, чтобы именно на втором листе были формулы, а на первом только данные. »

Нет, нельзя. Любые ссылки из ячейки куда-то — это формулы.

Цитата:

Цитата Strinteijer
ну или какие альтернативные варианты можете предложить. »

1. Ручками выделить данные на втором листе, скопировать в буфер обмена, переключиться на первый лист, сделать Специальную вставку, указав вставлять только данные.
2. То же самое, только макросом.
3. Написать функцию рабочего листа, которая будет вызываться при каждом изменении/пересчёте данных и будет делать указанное в первом пункте.

Вы не написали главного — зачем Вам такой серфинг в извращённой форме это?

Strinteijer 18-09-2016 22:14 2669977

Скажем так, чтобы мое начальство отправляло "чистый лист" только с данными своим верхам=)

Strinteijer 18-09-2016 22:33 2669983

Цитата:

Цитата Iska
1. Ручками выделить данные на втором листе, скопировать в буфер обмена, переключиться на первый лист, сделать Специальную вставку, указав вставлять только данные.
2. То же самое, только макросом.
3. Написать функцию рабочего листа, которая будет вызываться при каждом изменении/пересчёте данных и будет делать указанное в первом пункте. »

Подумаю над этими вариантами.... В принципе может и покатит первый вариант для них.... за совет спасибо))

Просто хочется сделать так, чтобы потом из-за этой ерунды не вызывали помочь разобраться, что начальник делает не так.... P.S. они у меня совсем далеки от компьютеров

Iska 18-09-2016 22:55 2669992

Цитата:

Цитата Strinteijer
Скажем так, чтобы мое начальство отправляло "чистый лист" только с данными своим верхам »

Тогда есть смысл сделать им «Одну кнопку», нажатием на которую будет запускаться макрос, который из создаст новый документ в определённом месте под определённым именем, скопирует туда содержимое значений ячеек текущего листа активного документа. Как Вам такое?

Сразу скажите — в Вашей версии Office сохранилась возможность добавлять свои кнопки на панели инструментов и привязывать к ним макросы (у меня Office 2003)?

okshef 18-09-2016 23:34 2669999

Strinteijer, выделите диапазон с данными, скопируйте, на нужном листе через специальную вставку вставьте "Связанный рисунок". Классная вещь!
Обновляются данные - обновляется рисунок. Если же меняются параметры диапазона (кол-во строк или столбцов), то на рисунке достаточно исправить параметры диапазона

Strinteijer 19-09-2016 00:09 2670006

Цитата:

Цитата okshef
скопируйте, на нужном листе через специальную вставку вставьте "Связанный рисунок". Классная вещь! »

в вашем варианте я так полагаю если его отделить от файла то в рисунке данные превратятся в нули.... или же все таки нет?

Цитата:

Цитата Iska
Сразу скажите — в Вашей версии Office сохранилась возможность добавлять свои кнопки на панели инструментов и привязывать к ним макросы (у меня Office 2003) »

У меня Office 2007 и я уже не помню даже как это делается, сам этим занимался раньше на 2003)

Iska 19-09-2016 00:26 2670009

Цитата:

Цитата Strinteijer
У меня Office 2007 »

А категория указана — 2010 ;).

Strinteijer 19-09-2016 00:29 2670010

А нее покопался нашел где это)

Ой ошибся чутка)))

В общем, а само тело кнопки как должно выглядеть, чтобы оно перезаписало данные с этого листа и создавало новую книгу для сохранения?

okshef 19-09-2016 00:53 2670013

Strinteijer, что вы имеете в виду под "отделить от файла"?
Как я понял эту "отвязку": со связанным рисунком с данными, находящимися в другом файле, я не экспериментировал. Но вы и не говорили о разных файлах.

P.S. Сменил категорию

Strinteijer 19-09-2016 21:08 2670289

Цитата:

Цитата okshef
Но вы и не говорили о разных файлах »

Да извиняюсь что данного в самом начале не указал, но и саму тему на скорую руку сочинял....
Цитата:

Цитата Iska
Тогда есть смысл сделать им «Одну кнопку», нажатием на которую будет запускаться макрос »

Вот вроде сделал макросс, но как чтоб чисто данные копировал, пока только вышло скопировать ячейки

Sub Сохранить()
Range("A3:BL34").Select
Selection.Copy
ChDir "C:\Users\Алексей\Desktop"
Workbooks.Open Filename:="Основной.xlsx"
Range("A3:BL34").Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Strinteijer 19-09-2016 23:17 2670313

Считай сделал макрос, но мне нужна некоторая помощь, подскажите как выбрать книгу, которую нужно закрыть? запарился чет)

Strinteijer 20-09-2016 01:34 2670332

Всё спасибо всем за советы, пару часов повозился и все таки сделал то, что хотел;) Вопрос решен... Всех благ вам=)

Iska 20-09-2016 03:03 2670336

Цитата:

Цитата Strinteijer
а само тело кнопки как должно выглядеть, чтобы оно перезаписало данные с этого листа и создавало новую книгу для сохранения? »

Примерно так:
Скрытый текст
Код:

Option Explicit

Sub Sample()
    Dim objWorksheet As Worksheet
    Dim i As Integer
   
    Set objWorksheet = ActiveWorkbook.ActiveSheet
   
    With Workbooks.Add
        objWorksheet.Copy Before:=.Worksheets.Item(1)
       
        Application.DisplayAlerts = False
        For i = .Worksheets.Count To 2 Step -1
            .Worksheets.Item(i).Delete
        Next i
        Application.DisplayAlerts = True
       
        With .Worksheets.Item(1)
            With .UsedRange
                .Copy
                .PasteSpecial Paste:=xlPasteValues
            End With
           
            .Range("A1").Select
        End With
       
        Application.DisplayAlerts = False
        .SaveAs Filename:="C:\Мои проекты\0009\Output Result.xls"
        Application.DisplayAlerts = True
       
        .Close
    End With
   
    Set objWorksheet = Nothing
End Sub


Макрос можно поместить в персональную книгу макросов и, например, привязать его вызов на комбинацию горячих клавиш.

Strinteijer 20-09-2016 16:44 2670529

Цитата:

Цитата Iska
For i = .Worksheets.Count To 2 Step -1
.Worksheets.Item(i).Delete
Next i »

А что этот цикл делает?
Цитата:

Цитата Iska
.SaveAs Filename:="C:\Мои проекты\0009\Output Result.xls" »

и да я помню как то можно делать с помощью всплывающего окна, т.е. выбирать куда сохранить и как обозвать

Ну а так я уже сделал макрос, правда другим способом

Iska 20-09-2016 17:11 2670552

Цитата:

Цитата Strinteijer
А что этот цикл делает? »

Удаляет все листы (пустые) из только что созданной Рабочей книги за исключением только что вставленного.

Цитата:

Цитата Strinteijer
и да я помню как то можно делать с помощью всплывающего окна, т.е. выбирать куда сохранить и как обозвать »

Там прямо в справке приведён пример (правда, кривой):
Код:

Set NewBook = Workbooks.Add
Do
    fName = Application.GetSaveAsFilename
Loop Until fName <> False
NewBook.SaveAs Filename:=fName


Strinteijer 20-09-2016 17:13 2670554

Ммм спасибки на заметку себе оставлю... Думаю еще пригодится и не раз=)


Время: 11:10.

Время: 11:10.
© OSzone.net 2001-