Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автозаполнение форм по объединенным ячейкам. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автозаполнение форм по объединенным ячейкам. (Макросы/Sub)
Автозаполнение форм по объединенным ячейкам.
CrazyKingKong Дата: Понедельник, 14.09.2015, 08:17 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток! Имеется исходный файл: "Журнал регистрации". В нем 6 форм(на самом деле 11 - макс размер файла 100 кб поэтому удалил). При запуске заполняются формы.
Наполнение ячейки зависит от тега в квадратных скобках. Значение в квадратных скобках соответствует строка-активная ячейка, столбец- пронумерованные ячейки из 5 строки.
Что необходимо сделать: 1) Ячейки в определенных частях имеют многострочный формат, т.е. изначально ячейка была одна(объединенная) и в частях с 55 по 62 и с 90 по 154 они уже не объединены. Теги сейчас вставлены внутрь ячейки. И вот по этим тегам информация должна попадать в формы.
2) Нужно сделать так. чтобы формы с 1 по 11 сохранялись в какой-нибудь директории.
3) После выполнения макроса формы должны принимать исходный вид - вид шаблона с тэгами.
Код:

[vba]
Код
Const xLen = 154
Const yTitle = 4
Const stName = "Журнал регистрации"

Sub test()
'Dim stSheet As Sheet
'
y0 = ActiveCell.Row
x0 = ActiveCell.Column
'Set stSheet = ThisWorkbook.Sheets("Журнал регистрации")
'
ar = Application.Transpose(Application.Transpose(Range(Cells(yTitle, 1), Cells(yTitle, 154))))
For Each x In ThisWorkbook.Worksheets
If Left(x.Name, 5) = "Форма" Then
For i = 1 To 100
For j = 1 To 150
s = x.Cells(j, i).Value
If Left(s, 1) = "[" Then
s2 = Trim(Mid(s, 2, Len(s) - 2))
'x.Cells(j, i).Value = ar(Mid(x.Cells(j, i).Value, 2, Len(x.Cells(j, i).Value) - 1))
k = 1
While (Trim(ar(k)) <> s2) And (k < xLen)
k = k + 1
Wend
MsgBox k
sF = ThisWorkbook.Sheets(stName).Cells(y0, k).Value
x.Cells(j, i).Value = sF
End If
Next
Next
End If
Next x
'
End Sub
[/vba]
[moder]Оформляйте коды тегами (кнопка #). На первый раз сделала за Вас[/moder]
К сообщению приложен файл: ___XL-3.xlsx-.xlsm (95.6 Kb)


Сообщение отредактировал Pelena - Понедельник, 14.09.2015, 08:38
 
Ответить
СообщениеДоброго времени суток! Имеется исходный файл: "Журнал регистрации". В нем 6 форм(на самом деле 11 - макс размер файла 100 кб поэтому удалил). При запуске заполняются формы.
Наполнение ячейки зависит от тега в квадратных скобках. Значение в квадратных скобках соответствует строка-активная ячейка, столбец- пронумерованные ячейки из 5 строки.
Что необходимо сделать: 1) Ячейки в определенных частях имеют многострочный формат, т.е. изначально ячейка была одна(объединенная) и в частях с 55 по 62 и с 90 по 154 они уже не объединены. Теги сейчас вставлены внутрь ячейки. И вот по этим тегам информация должна попадать в формы.
2) Нужно сделать так. чтобы формы с 1 по 11 сохранялись в какой-нибудь директории.
3) После выполнения макроса формы должны принимать исходный вид - вид шаблона с тэгами.
Код:

[vba]
Код
Const xLen = 154
Const yTitle = 4
Const stName = "Журнал регистрации"

Sub test()
'Dim stSheet As Sheet
'
y0 = ActiveCell.Row
x0 = ActiveCell.Column
'Set stSheet = ThisWorkbook.Sheets("Журнал регистрации")
'
ar = Application.Transpose(Application.Transpose(Range(Cells(yTitle, 1), Cells(yTitle, 154))))
For Each x In ThisWorkbook.Worksheets
If Left(x.Name, 5) = "Форма" Then
For i = 1 To 100
For j = 1 To 150
s = x.Cells(j, i).Value
If Left(s, 1) = "[" Then
s2 = Trim(Mid(s, 2, Len(s) - 2))
'x.Cells(j, i).Value = ar(Mid(x.Cells(j, i).Value, 2, Len(x.Cells(j, i).Value) - 1))
k = 1
While (Trim(ar(k)) <> s2) And (k < xLen)
k = k + 1
Wend
MsgBox k
sF = ThisWorkbook.Sheets(stName).Cells(y0, k).Value
x.Cells(j, i).Value = sF
End If
Next
Next
End If
Next x
'
End Sub
[/vba]
[moder]Оформляйте коды тегами (кнопка #). На первый раз сделала за Вас[/moder]

Автор - CrazyKingKong
Дата добавления - 14.09.2015 в 08:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автозаполнение форм по объединенным ячейкам. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!