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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.01.2009, 22:39   #1
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию перенос данных

Добрый вечер!
Помогите плз, решить следующую задачу при помощи макроса.

Необходимо из файла "данные.xls" распределить результаты колонок "Прослушка" и "Тест" в соответсвующие колонки согласно фамилиям в файле "Контроль по бонусам.xls"

Премного благодарен!
Вложения
Тип файла: rar Perenos.rar (4.9 Кб, 16 просмотров)
Viento вне форума
Старый 15.01.2009, 22:56   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Заготовки есть, а как должен выглядеть результат? Приложи.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 15.01.2009, 23:12   #3
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

Повторно отправляю архив с файлами с вписанными исходными данными.
Вложения
Тип файла: rar Perenos.rar (4.9 Кб, 16 просмотров)
Viento вне форума
Старый 15.01.2009, 23:14   #4
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

Результат это колонки "прослушка и тест" они должны переместиться в файл "контроль по бонусам" в соответствии с фамилиями.
Viento вне форума
Старый 15.01.2009, 23:17   #5
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

положи файл в одну папку с файлом "данные.xls", или открой этот файл откуда угодно. потом запусти то, что вложено.
при открытии запускается макрос, который ищет среди открытых книгу "данные.xls", если не находит то открывает. ищет совпадения фамилий и копирует нужное при найденных совпадениях.
Вложения
Тип файла: rar Контроль по бонусам.rar (11.6 Кб, 26 просмотров)
tolikman вне форума
Старый 15.01.2009, 23:32   #6
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

а можно чтобы не при открытии файла он начинал работать а запускался в ручную?
Viento вне форума
Старый 15.01.2009, 23:49   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от Viento Посмотреть сообщение
а можно чтобы не при открытии файла он начинал работать а запускался в ручную?
Да не вопрос. Убери из модуля «ЭтаКнига» эту процедуру, или закомментируй ее, чтобы не жалеть. А вдруг пригодится?
Код:
Private Sub WorkBook_Open()
    modul.getData
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 15.01.2009, 23:57   #8
Viento
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 53
По умолчанию

Покажи плз где именно? Я не въезжаю.

Sub getData()
Dim dataFile As String
Dim book As Workbook
Dim sht As Worksheet, curSht As Worksheet
Dim rng As Range, findedRng As Range
Dim i As Long, a As Long
Dim test As Boolean
test = True
For i = 1 To Workbooks.Count
If Workbooks(i).Name = "данные.xls" Then test = False
Exit For
Next i
dataFile = ThisWorkbook.Path & "\" & "данные.xls"
If test Then Set book = Workbooks.Open(dataFile) Else Set book = Workbooks(i)
Set sht = book.Sheets("1 смена")
Set curSht = ThisWorkbook.Sheets("1 смена")
i = 3
Do While curSht.Cells(i, 2) <> Empty
i = i + 1
Loop
i = i - 1
If i = 2 Then Exit Sub
Set rng = curSht.Range("B2:B" & i)
i = 3
Do While sht.Cells(i, 2) <> Empty
Set findedRng = rng.Find(sht.Cells(i, 2))
If Not findedRng Is Nothing Then
a = findedRng.Row
curSht.Cells(a, 7) = sht.Cells(i, 3)
curSht.Cells(a, 8) = sht.Cells(i, 4)
End If
Set findedRng = Nothing
i = i + 1
Loop
End Sub
Viento вне форума
Старый 16.01.2009, 00:03   #9
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от Viento Посмотреть сообщение
Покажи плз где именно? Я не въезжаю.…
Здесь.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 16.01.2009, 00:06   #10
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

хм, у viter.alex по лучше будет..))
внимательно смотри интерфейс редактора VBA: слева, над модулями, показаны листы книги и сама книга (см untitled.JPG), выбери книгу и проанализируй.

Последний раз редактировалось tolikman; 16.01.2009 в 00:08. Причина: разминулись с viter.alex'ом
tolikman вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных Nesta1384 Microsoft Office Excel 4 19.01.2009 02:28
Перенос данных из ячеек gavrylyuk Microsoft Office Excel 2 05.08.2008 14:24
Сравнение и перенос данных miheus Microsoft Office Excel 1 29.11.2007 16:42
Перенос данных. Victor Microsoft Office Excel 8 01.09.2007 21:02
перенос база данных asale БД в Delphi 2 21.06.2007 11:35