Страницы: 1
RSS
Перенос данных, их печать, замена на последующие
 
Мне не хватает знаний. Мне необходимо определённые ячейки из строки, перенести на другую страницу. И так 4 раза, в разные ячейки(лист а4, разбит на 4 карточки, в которые вносятся данные). Потом распечатать это всё, взять следующие ячейки из следующих 4 строк, и так по новой (значений может быть до 1000)
На данный момент получается так:
Sub Макрос1 ()
Dim ss As String
Dim sf As String
Dim sd As String
Dim sq As String
Dim sw As String
Dim sy As String
For a = 2 To 40 'Это тестовое число-может быть другим
Sheets ("С ФИО оф").Select
ss = ""
sf = ""
sd = ""
sa = ""
sb = ""
sq = ""
sw = ""
sy = ""
ss = Cells(a,2).Value
sf = Cells(a,23).Value
sd = Cells(a,26).Value
sa = Cells(a,27).Value
sb = Cells(a,28).Value
sq = Cells(a,31).Value
sw = Cells(a,32).Value
sy = Cells(a,33).Value
If ss <> "" And sf <> "" And sd <> "" And sa <> "" And sb <> "" And sq <> "" And sw <> "" And sy <> "" Then
Sheets ("Для макроса").Select
i = 1
If i = 1 Then Range ("B1").Value = ss
...
If i = 1 Then Range ("B8").Value = sy
i = i+1
If i = 2 Then i = 1
End if
Тут стоит команда на печать активной страницы
Next a
End Sub
Это только на 1 карточку на странице, а надо 4. Что посоветуете?
 
Добрый день,
В данном случае неплохо бы было привести пример
Вся проблема сложных программ, целых томов кодов и состоит в несоблюдении принципа лезвия Оккама: «Не следует множить сущее без необходимости». Вся гениальность в простоте.
 
Попробую подробнее объяснить (не имею доступ к компьютеру с интернетом). Есть таблица. В ней данные тысячи человек. Из всех данных, мне необходимо выбрать определённые, затем перенести их на другую страницу в ячейки заготовки карточек (4 карточки на лист А4). Далее-распечатать получившуюся страницу и заменить данные в этих заготовках, на следующие 4 человека и печать. Описанный выше макрос делает это только для 1 заготовки. Как дополнить код, чтоб он это мог  сделать не в 1, а во всех 4?
Изменено: Dakuras - 23.04.2018 17:45:42
 
Dakuras,
Если не придиратся технически, к всяким .select то по идее  надо понять что вы хотите и что нужно для 3х других карточек.

Короче , без примера, действительно сложно помочь.

Правда уже сейчас очень интересует блок,
Код
If i = 1 Then Range("B1").Value = ss
...
If i = 1 Then Range("B8").Value = sy
i = i + 1
If i = 2 Then i = 1
как по стилю многократного использования If i = 1 , так и последним аккордом If i = 2 Then i = 1 . Так у вас всегда i=1 будет.
По вопросам из тем форума, личку не читаю.
 
А i и так всегда изначально будет равно 1, зачем вообще её (переменную) как-то изменять, если изменения не используются?
 
Создать две темы и ни одного файла-примера
На такую элементарщину во втором посте получили-бы ответ
Все пытаются Вам помочь а никто не знает куда данные заносить
 
Концептуально Вам необходимо переходить к циклам, чтобы сократить код в десятки раз
Вся проблема сложных программ, целых томов кодов и состоит в несоблюдении принципа лезвия Оккама: «Не следует множить сущее без необходимости». Вся гениальность в простоте.
 
Спасибо Hugo.Твой комментарий надвинул на идею и я докумекал.Код длинный вышел, примитивный, но рабочий
 
Dakuras, у нас на форуме к незнакомым людям принято обращаться на ВЫ.
И зачем Вы создали две одинаковых темы?
 
Юрий М, Ну чисто по сути, две темы ТС разные . То что результат должен быть одинаков - это тонкости. :-)
По вопросам из тем форума, личку не читаю.
 
Это только названия разные )
Страницы: 1
Наверх