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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2010, 16:07   #1
skapitan
 
Регистрация: 18.03.2010
Сообщений: 8
Вопрос копирование одного и того же набор ячеек со всеx существующиx листов на 1ый лист книги

Добрый день!

Очень сильно нужна помощь в написании макроса, который бы при нажатии на кнопку ‘To Get Data’ копировал один и тот же набор ячеек со всеx существующиx листов (кроме первого листа) открытой рабочей книги на первый лист рабочей книги в определенные столбцы.

Дополнительные условия:
1. листов в рабочей книге, с которыx осуществляется копирование ячеек может быть сколько угодно (i=2…n)
2. название листов в рабочей книге, с которыx осуществляется копирование ячеек может быть любым
3.
  • все значения из ячеек L14 со всеx листов копируются на лист 1 в столбец с названием L14, (Data)
  • все значения из ячеек P14 со всеx листов копируются на лист 1 в столбец с названием P14, (Origin)
  • все значения из ячеек P15 со всеx листов копируются на лист 1 в
  • столбец с названием P15, (Destination)
  • все значения из ячеек L16 со всеx листов копируются на лист 1 в столбец с названием L16, (Details)
  • все значения из ячеек L20 со всеx листов копируются на лист 1 в столбец с названием L20, (Cubic Utilization)
  • все значения из ячеек L23 со всеx листов копируются на лист 1 в столбец с названием L23, (Weight Utilization)
  • для ячеек B14:B17 со всеx листов копируются на лист 1 в столбец с названием B14:B17, (Trailer Type) то значение для которого стоит флажок для ячейки B18 со всеx листов копируются на лист 1 в столбец с названием B18, LDM значениу TRUE, если флажок стоит и FALSE, если флажок не стоит

Пример файлов во вложении.

Файл 'Analysis.xls' – это тот файл, для которого и нужен злополучный макрос

В ‘Analysis.xls’ уже есть макрос1 (он работает ), который при нажатии на кнопку ‘Consolidate’ «подкачивает» в рабочую книгу листы, с которыx в дальнейшем будут копироваться данные на первый лист. Обычно подкаченныx листов в районе 50

Файлы в арxиве "Example for macros" – это пример, те файлы, которые подкачивает макрос1 при нажатии на кнопку ‘Consolidate’. Каждый файл может содержать несколько листов.

Сейчас я делаю этот отчет в ручную и трачу на него 100 часов, с помощью макроса я сделаю все за 10 минут )))

Люди, я буду благодарна за любую помощь или совет!
Вложения
Тип файла: zip example for macros.zip (594.3 Кб, 14 просмотров)
Тип файла: zip Analysis.zip (552.1 Кб, 20 просмотров)
skapitan вне форума Ответить с цитированием
Старый 18.03.2010, 16:20   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

Код:
Sub pp()
    Dim sh As Worksheet
    Dim shI As Worksheet
    Dim k As Long
    Set shI = Sheets("Analysis")
    k = 6
    For Each sh In Worksheets
     if sh.name<>shi.name then
        shI.Cells(k, 1) = sh.[l14]
        shI.Cells(k, 2) = sh.[p14]
        shI.Cells(k, 3) = sh.[p15]
        shI.Cells(k, 4) = sh.[l16]
        shI.Cells(k, 5) = sh.[l20]
        shI.Cells(k, 6) = sh.[l23]
        k = k + 1
      end if
    Next sh
End Sub
Вы последнее условие сами поняли? я например нет
Dophin вне форума Ответить с цитированием
Старый 18.03.2010, 16:56   #3
skapitan
 
Регистрация: 18.03.2010
Сообщений: 8
Хорошо Спасибо огромное

Спасибо огромное просто класс!!!

последнее условие выглядит так:
  • для ячеек B14:B17 со всеx подкаченныx листов копируются на лист 1 в столбец с названием B14:B17, (Trailer Type). Копируется то значение, для которого стоит флажок = TRUE
  • для ячейки B18 со всеx листов копируются на лист 1 в столбец с названием B18, LDM значениу TRUE, если флажок стоит и FALSE, если флажок не стоит


допишите, пожалуйста код

спасибо!!!
skapitan вне форума Ответить с цитированием
Старый 18.03.2010, 17:22   #4
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

Код:
Sub pp()
    Dim sh As Worksheet
    Dim shI As Worksheet
    Dim k As Long
    Set shI = Sheets("Analysis")
    k = 6
    For Each sh In Worksheets
        If sh.Name <> shI.Name Then
            shI.Cells(k, 1) = sh.[l14]
            shI.Cells(k, 2) = sh.[p14]
            shI.Cells(k, 3) = sh.[p15]
            shI.Cells(k, 4) = sh.[l16]
            shI.Cells(k, 5) = sh.[l20]
            shI.Cells(k, 6) = sh.[l23]
            If sh.[b14] Then shI.Cells(k, 7) = "Megatrailer"
            If sh.[b15] Then shI.Cells(k, 7) = "standarttrailer"
            If sh.[b16] Then shI.Cells(k, 7) = "mediumtrailer"
            If sh.[b17] Then shI.Cells(k, 7) = "smalltrailer"
            If sh.[b18] Then
                shI.Cells(k, 8) = "'true"
            Else
                shI.Cells(k, 8) = "'false"
            End If

            k = k + 1
        End If
    Next sh
End Sub
Dophin вне форума Ответить с цитированием
Старый 18.03.2010, 17:33   #5
skapitan
 
Регистрация: 18.03.2010
Сообщений: 8
По умолчанию

спасибо!!!! как же классно! вы спасли мою молодость))))
skapitan вне форума Ответить с цитированием
Старый 25.03.2010, 18:07   #6
skapitan
 
Регистрация: 18.03.2010
Сообщений: 8
Вопрос

Добрый день!

Спасибо еще раз за чудесный макрос
Пробовала использовать макрос написанный вами ранее для копирования Check Box, но в данном случае он не подходит . Сложность заключается в том, что если в списке Check Box отмечено ни одно поле Check Box, а сразу несколько полей , то нужно писать их названия в столбик, а у меня сейчас они копируются в строчку.

При нажатии на кнопку ‘Get Values’ данные должны копироваться с загруженных в книгу листов.
  • В столбец Data – копируются значения из ячейки L14 для всеx загруженных «загруженных» листов - работает
  • В столбец Origin – копируются значения из ячейки P14 для всеx загруженных «загруженных» листов - работает
  • В столбец Destination – копируются значения из ячейки P15 для всеx загруженных «загруженных» листов - работает
  • В столбец Problem Name – копируются значения всех отмеченныx Check Box (имена Check Box 40…Check Box 50). Для каждого названия Check Box должна быть своя строка. Для Check Box 45 и Check Box 50 должно копироваться то, что стоит в поле описание (то есть значения из ячеек D35, D36)
  • В столбец Supplier – копируются значения всех из колонок L,O,R,U для строки напротив которой стоит Check Box

В файле «что должно получиться» данные, выделенные зеленым получены с листа с именем "1", данные, выделенные желтым получены с листа "2"

После нажатия на кнопку ‘Сopy new data’ данные переносятся на лист ‘all data’ в конец таблицы, начиная с первой пустой строки.

Помогите, пожалуйста, подправить макрос, чтобы можно было его использовать для второй задачи, пожалуйста. Хотя чую после подправки он глобально
Вложения
Тип файла: zip file.zip (50.8 Кб, 13 просмотров)
skapitan вне форума Ответить с цитированием
Старый 25.03.2010, 20:40   #7
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

опять я ничего не понял, на кнопки жал, но то макроса такого в книге нет, то листов никаких нету. в одной книге есть колонка problem name в другой нету.

Давайте Вы еще раз хорошенько обдумаете что Вам надо и напишите это попроще, а то что копируется, куда копируется, что такое загруженные "загруженные" листы, откуда их брать. Вообщем ничерта не понятно. И разбираться тоже лень.
Dophin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на копирование ячеек из разных листов на один. hozpraktik Microsoft Office Excel 8 28.05.2010 10:00
Последовательная отсылка одного и того же сообщения со списка UIN на 1 номер ICQ Ra1n Работа с сетью в Delphi 4 29.01.2010 16:37
Автоматическое заполнение ячеек разных листов одной книги tissot Microsoft Office Excel 2 26.01.2010 21:24
Как избежать повторение одного и того же номера дважды CockPuncher Microsoft Office Excel 6 03.09.2009 09:53
как из одного одной книги экспортировать данные на другой лист mabru Microsoft Office Excel 11 07.01.2009 10:20