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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2015, 17:36   #1
Perova irina
 
Регистрация: 18.01.2015
Сообщений: 6
По умолчанию Перенос данных с ячейки в ячейку по условию

Доброе время суток уважаемые!
Все действия на одном листе.
Необходимо переносить автоматически данные.
В ручную муторно и долго. Помогите решить задачку.
В прикрепленном файле:
1 таблица - как выгружается
2 таблица - как в итоге должно получиться
Спасибо.
Вложения
Тип файла: rar Перенос1.rar (9.0 Кб, 38 просмотров)
Perova irina вне форума Ответить с цитированием
Старый 18.01.2015, 18:52   #2
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Можно так попробовать.
Вложения
Тип файла: rar Перенос1.rar (5.5 Кб, 30 просмотров)
gling вне форума Ответить с цитированием
Старый 19.01.2015, 01:36   #3
Perova irina
 
Регистрация: 18.01.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от gling Посмотреть сообщение
Можно так попробовать.
Спасибо за участие, попробую применить и пощелкать на большом массиве.
Perova irina вне форума Ответить с цитированием
Старый 19.01.2015, 16:57   #4
Perova irina
 
Регистрация: 18.01.2015
Сообщений: 6
Печаль

не...не получается, не переносит...
точнее переносит, но не то, что нужно
Perova irina вне форума Ответить с цитированием
Старый 19.01.2015, 18:47   #5
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

В файле два варианта, оба не правильно переносят? Может в реальном файле фамилия не только Иванов?
gling вне форума Ответить с цитированием
Старый 20.01.2015, 15:59   #6
Perova irina
 
Регистрация: 18.01.2015
Сообщений: 6
По умолчанию

Там не только Иванов, но есть еще Петров, Сидоров и еще 11 человек...
А что тут через личку общения не предусмотрено?
Perova irina вне форума Ответить с цитированием
Старый 20.01.2015, 16:07   #7
Perova irina
 
Регистрация: 18.01.2015
Сообщений: 6
Печаль

Цитата:
Сообщение от gling Посмотреть сообщение
В файле два варианта, оба не правильно переносят? Может в реальном файле фамилия не только Иванов?
Проблема 1 варианта:
Отдельно прописывать 1;2;3 и т.д. на 300-400 строк - не вижу смысла, т.к.
увеличивается тем самым кликоманство

как выслать файл?
Perova irina вне форума Ответить с цитированием
Старый 20.01.2015, 19:50   #8
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Может тогда так?
Вложения
Тип файла: rar Перенос1.rar (5.9 Кб, 21 просмотров)
gling вне форума Ответить с цитированием
Старый 21.01.2015, 17:47   #9
Perova irina
 
Регистрация: 18.01.2015
Сообщений: 6
Печаль

Дорогой друг! Спасибки конечно, но увы...
У Вас добавлен столбец Н, который в свою очередь зашит в формулу...
если убирать Н - то формула не считает
если не убирать Н, а прописывать вручную, то что там зашито,
то по времени что прописывать, что перетягивать цифиры одинаково...
экономию трудозатрат не вижу?

Спасибо еще раз, но не той дорогой мы пошли, надо искать другое решение...
Perova irina вне форума Ответить с цитированием
Старый 21.01.2015, 20:01   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вариант без перемещений макросом:
Код:
Sub tt()
    Dim a(), i&, ii&
    Application.ScreenUpdating = False
    
    a = [a1].CurrentRegion.Value
    With CreateObject("scripting.dictionary"): .comparemode = 1
        For i = 2 To UBound(a)
            t = a(i, 1) & "|" & a(i, 2)
            If Not .exists(t) Then .Add t, New Collection
            .Item(t).Add a(i, 3)
        Next

        Set Sh = Workbooks.Add.Sheets(1)
        Sh.Cells(1) = "Ф.И.О."
        Sh.Cells(2) = "Вход"
        Sh.Cells(3) = "Выход"
        Sh.Cells(4) = "Время нахождения"
        Sh.Cells(5) = "Время перемещения"
        ii = 1
        For Each el In .keys
            If InStr(el, "|Вход") Then
                For i = 1 To .Item(el).Count
                    ii = ii + 1
                    Sh.Cells(ii, 1) = Replace(el, "|Вход", "")
                    Sh.Cells(ii, 2) = .Item(el)(i)
                    Sh.Cells(ii, 3) = .Item(Replace(el, "|Вход", "|Выход"))(i)
                    Sh.Cells(ii, 4).NumberFormat = "[$-F400]h:mm:ss AM/PM"
                    Sh.Cells(ii, 4) = "=C" & ii & "-B" & ii
                Next
            End If
        Next
    End With
    Sh.UsedRange.Columns.AutoFit

    Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматическое заполнение ячейки при вводе данных в другую ячейку. Julie Khvostova Microsoft Office Excel 10 18.07.2019 12:08
Перенос данных с одного листа на другой по условию MickMick Microsoft Office Excel 1 11.01.2015 17:33
Перенос диапазона данных по условию на новый лист с сохранением заголовков luex Microsoft Office Excel 1 07.08.2014 21:53
Перенос данных из закрытой книги по условию strannick Microsoft Office Excel 14 14.12.2013 16:29
Перенос данных из ListBox в ячейку and150382 Microsoft Office Excel 7 02.04.2013 12:33