Цикл копирования с транспонированием двух таблиц
Tarassov_Egor
Дата: Пятница, 23.07.2021, 13:45 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Добрый день! Прошу помочь с макросом Необходимо скопировать данные с листа на другой лист, как показано в примере. С использованием цикла. Недавно начал осваивать VBA, пока зелен в этом. Т.е. с листа данные взять поставщиков (подписаны как А,Б,В и тд.), вставить на лист "Что получится" так, чтобы на каждую дату были скопированы, % по поставщикам, и "итого по рынку" (в примере сделал как должно быть в итоге) Во вложении все необходимые данные, и пример того что должно получится. Заранее спасибо!
Добрый день! Прошу помочь с макросом Необходимо скопировать данные с листа на другой лист, как показано в примере. С использованием цикла. Недавно начал осваивать VBA, пока зелен в этом. Т.е. с листа данные взять поставщиков (подписаны как А,Б,В и тд.), вставить на лист "Что получится" так, чтобы на каждую дату были скопированы, % по поставщикам, и "итого по рынку" (в примере сделал как должно быть в итоге) Во вложении все необходимые данные, и пример того что должно получится. Заранее спасибо! Tarassov_Egor
Ответить
Сообщение Добрый день! Прошу помочь с макросом Необходимо скопировать данные с листа на другой лист, как показано в примере. С использованием цикла. Недавно начал осваивать VBA, пока зелен в этом. Т.е. с листа данные взять поставщиков (подписаны как А,Б,В и тд.), вставить на лист "Что получится" так, чтобы на каждую дату были скопированы, % по поставщикам, и "итого по рынку" (в примере сделал как должно быть в итоге) Во вложении все необходимые данные, и пример того что должно получится. Заранее спасибо! Автор - Tarassov_Egor Дата добавления - 23.07.2021 в 13:45
Erjoma1981
Дата: Пятница, 23.07.2021, 15:33 |
Сообщение № 2
Группа: Проверенные
Ранг: Участник
Сообщений: 66
Репутация:
25
±
Замечаний:
0% ±
Excel 2010, 2019
Здравствуйте. [vba]Код
Public Sub СкопироватьДанные() Dim НомерКопируемойСтроки As Integer For НомерКопируемойСтроки = 0 To 13 Sheets("Данные").Range("A" & CStr(4 + НомерКопируемойСтроки)).Copy Sheets("Макрос").Range("A" & CStr(2 + 15 * НомерКопируемойСтроки) & ":A" & CStr(16 + 15 * НомерКопируемойСтроки)) Sheets("Макрос").Range("B" & CStr(2 + 15 * НомерКопируемойСтроки) & ":B" & CStr(7 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("C2:H2")) Sheets("Макрос").Range("B" & CStr(8 + 15 * НомерКопируемойСтроки) & ":B" & CStr(16 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("N2:V2")) Sheets("Данные").Range("B" & CStr(4 + НомерКопируемойСтроки)).Copy Sheets("Макрос").Range("C" & CStr(2 + 15 * НомерКопируемойСтроки) & ":C" & CStr(16 + 15 * НомерКопируемойСтроки)) Sheets("Макрос").Range("D" & CStr(2 + 15 * НомерКопируемойСтроки) & ":D" & CStr(7 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("C" & CStr(4 + НомерКопируемойСтроки) & ":H" & CStr(4 + НомерКопируемойСтроки))) Sheets("Макрос").Range("D" & CStr(8 + 15 * НомерКопируемойСтроки) & ":D" & CStr(16 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("N" & CStr(4 + НомерКопируемойСтроки) & ":V" & CStr(4 + НомерКопируемойСтроки))) Next НомерКопируемойСтроки End Sub
[/vba]
Здравствуйте. [vba]Код
Public Sub СкопироватьДанные() Dim НомерКопируемойСтроки As Integer For НомерКопируемойСтроки = 0 To 13 Sheets("Данные").Range("A" & CStr(4 + НомерКопируемойСтроки)).Copy Sheets("Макрос").Range("A" & CStr(2 + 15 * НомерКопируемойСтроки) & ":A" & CStr(16 + 15 * НомерКопируемойСтроки)) Sheets("Макрос").Range("B" & CStr(2 + 15 * НомерКопируемойСтроки) & ":B" & CStr(7 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("C2:H2")) Sheets("Макрос").Range("B" & CStr(8 + 15 * НомерКопируемойСтроки) & ":B" & CStr(16 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("N2:V2")) Sheets("Данные").Range("B" & CStr(4 + НомерКопируемойСтроки)).Copy Sheets("Макрос").Range("C" & CStr(2 + 15 * НомерКопируемойСтроки) & ":C" & CStr(16 + 15 * НомерКопируемойСтроки)) Sheets("Макрос").Range("D" & CStr(2 + 15 * НомерКопируемойСтроки) & ":D" & CStr(7 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("C" & CStr(4 + НомерКопируемойСтроки) & ":H" & CStr(4 + НомерКопируемойСтроки))) Sheets("Макрос").Range("D" & CStr(8 + 15 * НомерКопируемойСтроки) & ":D" & CStr(16 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("N" & CStr(4 + НомерКопируемойСтроки) & ":V" & CStr(4 + НомерКопируемойСтроки))) Next НомерКопируемойСтроки End Sub
[/vba] Erjoma1981
Сообщение отредактировал Erjoma2335 - Пятница, 23.07.2021, 15:42
Ответить
Сообщение Здравствуйте. [vba]Код
Public Sub СкопироватьДанные() Dim НомерКопируемойСтроки As Integer For НомерКопируемойСтроки = 0 To 13 Sheets("Данные").Range("A" & CStr(4 + НомерКопируемойСтроки)).Copy Sheets("Макрос").Range("A" & CStr(2 + 15 * НомерКопируемойСтроки) & ":A" & CStr(16 + 15 * НомерКопируемойСтроки)) Sheets("Макрос").Range("B" & CStr(2 + 15 * НомерКопируемойСтроки) & ":B" & CStr(7 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("C2:H2")) Sheets("Макрос").Range("B" & CStr(8 + 15 * НомерКопируемойСтроки) & ":B" & CStr(16 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("N2:V2")) Sheets("Данные").Range("B" & CStr(4 + НомерКопируемойСтроки)).Copy Sheets("Макрос").Range("C" & CStr(2 + 15 * НомерКопируемойСтроки) & ":C" & CStr(16 + 15 * НомерКопируемойСтроки)) Sheets("Макрос").Range("D" & CStr(2 + 15 * НомерКопируемойСтроки) & ":D" & CStr(7 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("C" & CStr(4 + НомерКопируемойСтроки) & ":H" & CStr(4 + НомерКопируемойСтроки))) Sheets("Макрос").Range("D" & CStr(8 + 15 * НомерКопируемойСтроки) & ":D" & CStr(16 + 15 * НомерКопируемойСтроки)) = Application.WorksheetFunction.Transpose(Sheets("Данные").Range("N" & CStr(4 + НомерКопируемойСтроки) & ":V" & CStr(4 + НомерКопируемойСтроки))) Next НомерКопируемойСтроки End Sub
[/vba] Автор - Erjoma1981 Дата добавления - 23.07.2021 в 15:33
Tarassov_Egor
Дата: Понедельник, 26.07.2021, 04:57 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Erjoma1981, спасибо, хорошо, я немного не точно описал задачу, жедательно было бы сделать так: Даты и итого по рынку транспонировать, а далее если поставщик А то доля такая то, просто иногда бывает такое что не 13 строк к примеру, или вместо поставщика А появляется новый поставщик. Если кто может помочь, буду премного благодарен.
Erjoma1981, спасибо, хорошо, я немного не точно описал задачу, жедательно было бы сделать так: Даты и итого по рынку транспонировать, а далее если поставщик А то доля такая то, просто иногда бывает такое что не 13 строк к примеру, или вместо поставщика А появляется новый поставщик. Если кто может помочь, буду премного благодарен. Tarassov_Egor
Ответить
Сообщение Erjoma1981, спасибо, хорошо, я немного не точно описал задачу, жедательно было бы сделать так: Даты и итого по рынку транспонировать, а далее если поставщик А то доля такая то, просто иногда бывает такое что не 13 строк к примеру, или вместо поставщика А появляется новый поставщик. Если кто может помочь, буду премного благодарен. Автор - Tarassov_Egor Дата добавления - 26.07.2021 в 04:57
Tarassov_Egor
Дата: Понедельник, 26.07.2021, 07:59 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Всем спасибо, изучил циклы, самостоятельно написал что хотел
Всем спасибо, изучил циклы, самостоятельно написал что хотел Tarassov_Egor
Ответить
Сообщение Всем спасибо, изучил циклы, самостоятельно написал что хотел Автор - Tarassov_Egor Дата добавления - 26.07.2021 в 07:59