Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Автозаполнения форм внутри книги, с последующей выгрузкой
 
Доброго времени суток, уважаемые знатоки Excel и кодинга VB. Ситуация следующая:

Существует журнал регистрации, внутри которого находятся формы(журнал регистрации 1 лист, остальные листы - формы).
Необходимо чтобы значения активной ячейки и соответствующего столбца копировались в формы, и, в идеале, хотелось бы чтобы эти формы автоматически сохранялись в определенной папке. "Теги" в формах расставлены в рандомном порядке( [1],[2],[3],[4]. Для меня сейчас самое главное это алгоритм(кое-какое понимание конечно есть) и по-максимуму вникнуть в синтаксис.

Алгоритм практически идентичен плагину Filldocuments.
Надеюсь объяснил понятно. Файл прикрепляю во вложение.
Спасибо заранее, надеюсь на вашу помощь!
 
к сожалению, ничего не понял...
"значения активной ячейки и соответствующего столбца копировались в формы"
вот я выбрал ячейку B2, она стала активной. В ней - "Куприянова Л.А.", и столбец соответствующий выходит что второй
Куда должна скопироваться Куприянова, в какую форму и по какому принципу? а со столбцом вообще в растерянности...
Покажите на примере, что Вы хотите получить. Выбрали вот эту ячейку, получили вот в этой форме вот это.
 
В качестве примера можно использовать плагин Filldocuments. Если на словах:

1) Мы встаем на ячейку в столбце "№" - так мы определим строку из которой будут браться данные.
2) В формах расставлены  "тэги" в квадратных скобках - [ ], по этим тэгам мы определим столбец с данными

Строка(активная ячейка в столбце "№") + столбец(по тэгу) = значение ячейки, которое необходимо подставить в соответствующую форму(опять же по "тэгу").
 
Код
Sub test()
rw = ActiveCell.Row
ar = Application.Transpose(Application.Transpose(Range(Cells(rw, 1), Cells(rw, 154))))
For Each x In ThisWorkbook.Worksheets
If Left(x.Name, 5) = "Форма" Then
    For i = 1 To 9
        For j = 1 To 39
            If x.Cells(j, i).Value <> "" Then
            x.Cells(j, i).Value = ar(Mid(x.Cells(j, i).Value, 2, Len(x.Cells(j, i).Value) - 2))
            End If
        Next
    Next
End If
Next x
End Sub

а сохранение форм в отдельные файлы - посмотрите, недавно была вроде тема сохранения листа в отдельный файл
Изменено: yoozhik - 4 Сен 2015 10:03:04
 
Цитата
CrazyKingKong написал: плагин Filldocuments
просто любопытно - я один такой тёмный и не знаю, что это такое? :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, Вы что?! Это же продукт от гуру экселя с аватарой по мотивам звёздных войн. :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
FillDocuments - надстройка, которая предназначена для формирования (подготовки) документов по шаблонам, с заполнением созданных файлов данными из текущей книги Excel, с возможностью отправки писем. В качестве шаблонов могут выступать следующие типы файлов: ......
Статус Условно-бесплатная, Разработчик ExcelVBA.ru .

Цитата
ikki написал: просто любопытно - я один такой тёмный и не знаю, что это такое?
Вам знать про такой продукт необязательно, Ваших знаний в этой области хватит, чтобы написать собственный код для любого шаблона.  :)
Изменено: TSN - 4 Сен 2015 12:04:06
Страницы: 1
Читают тему (гостей: 1)
Наверх