Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.02.2009, 20:25   #1
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию Помогите с копированием столбцов.

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

Огромное спасибо.....
Вложения
Тип файла: rar 1022009.rar (20.4 Кб, 15 просмотров)
sergiksergik вне форума
Старый 01.02.2009, 20:50   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Так подойдёт?
Вложения
Тип файла: rar 1022009.rar (19.9 Кб, 21 просмотров)
EducatedFool вне форума
Старый 01.02.2009, 21:40   #3
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

огромное спасибо...
Так подойдет....
Но еще вопросик..что мне изменить в макросе что бы все это можно было делать еще на одной кнопке и на другой лист (допусти 1234)???
Спасибо...
sergiksergik вне форума
Старый 01.02.2009, 21:49   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот, собственно, весь макрос:
Код:
Sub ПереносДанных()
    Dim Источник As Worksheet: Set Источник = ThisWorkbook.Worksheets("Печать")
    Dim СК As Worksheet: Set СК = ThisWorkbook.Worksheets("ск")

    Dim Столбец As Range: Set Столбец = СК.Cells(5, СК.Columns.Count).End(xlToLeft).Next.EntireColumn
    With Столбец
        .Cells(5) = Источник.[c6]
        .Cells(6) = Источник.[f6]
        .Cells(7) = Источник.[a6]

        For i = 9 To 21
            v = Источник.Cells(i, 5): If Val(v) > 0 Then .Cells(i) = v
        Next
    End With
End Sub
В строках
Dim Источник As Worksheet: Set Источник = ThisWorkbook.Worksheets("Печать")
Dim СК As Worksheet: Set СК = ThisWorkbook.Worksheets("ск")

определяются листы - с какого листа и на какой копировать данные.

В строке Set Столбец = СК.Cells(5, СК.Columns.Count).End(xlToLeft).Nex t.EntireColumn
цифра 5 определяет, по какой строке производится поиск последнего заполненного столбца.


Будет проще, если Вы прикрепите к сообщению пример файла с этими листами, и также подробно укажите, что и куда надо копировать.
EducatedFool вне форума
Старый 01.02.2009, 21:59   #5
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Этот же файл... просто там будет еще 6 листов и для каждого листа будет своя кнопка.
Не всегда значения будут копироваться на один и тот же лист...
sergiksergik вне форума
Старый 01.02.2009, 22:07   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну так создайте несколько копий этого макроса - одну за другой.
В этих копиях изменяйте названия макроса (обязательно, например, ПереносДанных, ПереносДанных2, ПереносДанных3 и т.п.), и, при необходимости, названия листов.

Каждой кнопке назначьте соответствующий макрос.

Если первую строку макроса:
Код:
Dim Источник As Worksheet: Set Источник = ThisWorkbook.Worksheets("Печать")
записать в виде
Код:
Dim Источник As Worksheet: Set Источник = activesheet
то копирование данных будет производиться с активного листа (того, с которого запускался макрос).
Тогда не нужно будет изменять имя этого листа.

По идее, можно сделать запрос листа, на который требуется копировать данные - тогда макрос получится универсальным (один для всех листов).
Но проще сделать 2 - 3 копии исходного макроса.
EducatedFool вне форума
Старый 01.02.2009, 22:11   #7
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Я уже разобрался... и даже сделал еще лист...
Все очень подробно.. описано....
Огромное спасибо за советы....
sergiksergik вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
помогите с копированием Romuald Microsoft Office Excel 5 11.01.2009 21:27
помогите с копированием фаилов 1234 Общие вопросы Delphi 4 12.09.2008 17:00
Помогите пожалуйста с копированием файла ==Spider== Общие вопросы Delphi 2 21.05.2008 10:54
Проблема с копированием Ronni10 Операционные системы общие вопросы 1 29.04.2008 09:39