Страницы: 1 2 След.
RSS
Копировать-вставить со сдвигом всех строк таблицы
 
Доборого времени дня уважаемые форумчане! Не могу сообразить как решить такого рода вроде элементарную задачу. Если несложно уделите немного времени! Заранее спаибо! В общем суть в следующем. Есть две таблицы (во вложении на листе ИсходныеДанные и на листе Результат). Тблица на листе Результат представляет собой пустографку, в которую необходимо вставить определенные значения (Наименование, Кол-во, Цена) из ИсходныхДанных.Что я делаю:1.Копирую перечень товаров из ИсходныхДанных, вставляю (как значение, это важно)в пустографку, вижу что нватает строк (в примере 2-ух строк); 2. Делаю шаг назад (отменить) 3. Вот таким кодом:  
Sub ДобавитьСтроку()  
Dim vrowCol  
vrowCol = InputBox("Сколько строк добавить?", "Ввод значений")  
vrowCol = Val(vrowCol): If vrowCol = 0 Then Exit Sub  
With ActiveCell  
Application.ScreenUpdating = False  
Rows(.Row).Copy  
.Offset(1).Resize(vrowCol).EntireRow.Insert  
Application.ScreenUpdating = True  
End With  
End Sub  
Добавляю необходимое количество строк;  
4. Вставляю все необходимые данные, т.к. необходимое кло-во строк уже добавлено.  
Подскажите уважаемые форумчане, можно как нибудь обойтись при всавке значений без моих танцев с бубнами?! Буду очень признателен, ато добавлять приходится иной раз по 200-300 строк, а таблицы расположены одна под другой и порой начинается путаница! Помогите пожалуйста!
 
Вот, попробуйте. Карандаш - кнопка.
 
Nilem, спаисбо!  
На сколько я понял все расчеты выполняются в теле макроса! Однако в примере я привел упрощенную табличку, именно для понимания что мне хотелось бы реализовать. В оригинале в таблице 49 столбцов и возможно порядка 300-700 строк ( в каждой таблице) И формулы в ней используются для примера вот такие:    
=СУММПРОИЗВ((($R$10:$AV$10>=Условия!$G$8)*($R$10:$AV$10<=Условия!$H$8)*($R14:$AV14)/60)) или =ЕСЛИОШИБКА(ИНДЕКС(CPM!$C$1:$C$449;ПОИСКПОЗ($DD$505&$DE$505;CPM!$A$1:$A$449&CPM!$B$1:$B$449;0));""). Мне кажется сложно будет реализовать такие вычисления в макросе+ко всему до кучи и условное форматирование. О как! Хотя это может мне пока сложно, но учусь постепенно. ВО МНОГОМ БЛАГОДАРЯ УВАЖАЕМЫМ ФОРУМЧАНАМ!!!!! Может все таки попробывать реализовать изначальную задачу со вставкой згачений в результирующую со сдвигом всех строк таблицы и копированием всех форматов и формул?
 
Ну нарисуйте Вашу табличку (49 столбцов. 3-4 строчки, при необходимости- заархивируйте).  
И покажите что хотите получить...
 
Конечно! Минутку!
 
Вот собственно та табличка, но увы всю инфу не могу раскрыть. Но все таблицы по количеству столбцов одинаковы. Там было еще порядка 30 листов. (пришлось удалить :(  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Ой! Файл велик! Прошу прощения!!!! Вот!
 
А вставить нужно вот что.
 
Все же, имхо, копирование не есть хорошо. Вот вариант: переносим значения, скрываем лишние строки. И формулы, и УФ остаются на месте.
 
Сейчас посмотрел новые примеры. Мне кажется, подойдет вариант со скрытыми строками, только диапазоны переназначить.
 
nilem, Еще раз спасибо! Однако смотрю код и не монимаю, ну вот как он берет значения из Исходных данных, какой строкой (ами)? В принципе как вариант возможно, но как быть если в результирующей таблице под одной находится другая таблица. И сколько их будет в следующем месяце я не знаю. Может результирующая будет одна, может пять? И исходных данных сегодня может быть 200 строк, а в следующем месяце 800 или 1500? Че та я не понимаю пока! В данном примере (с яблоками) вся инфа в одной книге, а в жизни результат в одной книге, а Исходники в другом (их) файлах. Предложенное Вами будет работать при таких условиях?  
Спасибо!
 
{quote}{login=sergio76}{date=15.02.2011 03:18}{thema=Re: }{post}...Предложенное Вами будет работать при таких условиях?{/post}{/quote}  
Боюсь, что нет. Там еще куча формул, оказывается. Если, например, 5 таблиц по 1500 строк  - это будут десятки тысяч формул, в т.ч. массивных. Большой вес и долгий пересчет... В общем, нужно что-то другое.  
Да, с огурцами попроще :)
 
Дааа, с огурцами всегда так :) Я вот сколько не кумекал, ну не выходит у меня каменный цветок! :) Мне кажется, всё таки, что нужно с копи-пастом что либо думать. Опять же как мне кажется проще реализовать. Хотя как знать.... У меня не получается. Может форумчане подсобят.  
Nilem, а все таки как работает макрос, если не сложно опишите пожалуйста. (который второй)  
Спасибо!
 
Nilem, Да получается так, что макрос 2 затирает все имеющиеся формулы в результирующей таблице, а ее к сожалению никак нельзя переделывать. :(
 
Доброго дня!  
Ну что уважаемые форумчане? Есть какие либо мысли и задумки по данному вопросу?
 
Nilem, или другие форумчание, подскажите, как мне в макросе:  
Sub АрхангельскПервый1()  
Dim x, y(1 To 513, 1 To 48), i As Long  
x = Range("A3").CurrentRegion.Offset(1).Value  
 
For i = 1 To UBound(x, 1) - 1  
   y(i, 1) = x(i, 1): y(i, 2) = x(i, 2): y(i, 3) = x(i, 3)  
     
Next i  
 
With Sheets("Архангельск").[A13:B512]
   .EntireRow.Hidden = False: .Value = y  
   .SpecialCells(4).EntireRow.Hidden = True  
End With: Sheets("Архангельск").Activate  
End Sub  
 
Задать значения Х не явным образом, а что бы предположим сначала найти (к примеру) Архангельск а от ячейки архангельск отступить (предположим вниз 3 строки) и вот это уже и будет    
x = Range("A3").CurrentRegion.Offset(1).Value  
Подскажите пожалуйста!  
Спасибо!
 
Вот, смотрите. Со вставкой строк.  
В архиве 2 файла: шаблон и источник (имейте в виду: имя файла-источника используется в коде).  
Сейчас на листе в шаблоне 6 таблиц. Можно накопировать сколько угодно.  
Зеленые столбцы и столбцы с датами заполняются программно, синие - формулами. Формулы немного изменил, проверьте.  
Оба файла д.б. в одной папке.  
 
Вряд ли это точно соответствует общей задаче (пример у нас урезан), но для начала можно использовать.
 
Nelim,  
Спасибо, сечас позмотрю! Надеюсь разберусь :)
 
Nelim,  
Я просто в шоке! Вот это да! Правда, сколько я с кодом разбираться буду, вот это вопрос! Но врямя вроде как позволяет, буду вникать! Это вообще анриал!!!!!! Браво!!!!!  
Спасибо!!!
 
Nelim! ООочень заинтересовала эта тема, и как раз подходит для моего участка работы. Но на раб.ком-ре я не могу ничего обновлять и записывать((((. Пожалуйста скиньте версию вашего решения для 2003 офисза, если это возможно конечно. За ранее большое спасибо.
 
Nelim!  
Еще раз спасибо! А тема то заинтересовала форумчан(ок) :)! Мне кажется очень часто возникают у НАС (ПРОСТЫХ ЮЗЕРОВ) подобные проблеммы!!! Спасибо ПЛАНЕТЕ и Всем форумчанам, что не оставляете нас в одиночестве!!!  
Nelim, "мысли вслух", вот смотрите, ко мне сваливаются много исходных файлов и в них соответсвенно много листов, на каждом листе по одной таблице. По средством макроса (СПАСИБО ПЛАНЕТЕ  и отдельное спасибо автору: The_Prist) я могу листы книги собрать на одном листе и предположим ввести столбец (ну не знаю как его назвать - "идентификатор" предположим) и на листе1 у меня будет собрана информация предположим по каналам ДТВ И РЕнТВ по десятку городов. Вот как бы мне Вашему макросу объяснить, что нахожусь я в данном случае в шаблоне на листе "Самара" и интересует меня именно Самара из исходных данных и именно канал ДТВ, а после РенТВ и т.д.?  
Не много ли я захотел? :)
 
Для Sirgeo76. Давайте файлик, посмотрим. Заодно поясните смысл Ваших таблиц: на одном листе, напр. Архангельск, заполняются данные по всем каналам в городе за 1 месяц, и таблицы остаются неизменными, ну как архив. Так?  
 
Для Натальи. Вот в 2003, правда там некоторые формулы сделаны для таблиц 2007. Если нужны только коды, то пойдет.
 
Nelim, Доброе утро! (До сих пор удивляюсь как Вы это сделали!!! Здорово!!!)  
В файликах сделал примерно так как есть на самом деле. Правда листов с исходными окола 30 и соответсвтенно в шаблоне их то же не менее 30. Т.е. Мне сваливаются файлы похожего вида как в таблице "Исходная". Один лист один город один канал. Так выгружает программа и изменить нельзя. P.S. хорошо что вообще выгружает :). Мне нужно, что бы в шаблоне было все именно так, как организовано сейчас. Однако, каким образом я буду цеплять листы исходной? Например: Архангельск в шаблоне все каналы (и это правильно) в одном листе, но инфу для них он должен брать из исходных с нескольких листов. К стати листы называет человек, а может и не называлть, будет тогда Лист1, Лист2 и т.д. В исходных предположем Архангельск первый может быть на 1-ом листе а РТР на 25. В следующем месяце первый на 3-ем листе РТР на 8-ом и т.д. И так с каждым городом и каналом. Одингород+один канал=1-ин лист исходных данных.  
P.S. Подскажите как добавить дни недели в шаблоне в шапки на каждый канал?
 
Nelim, большое спасибо Вам! Буду разбираться.    
А можно к Вам обратиться еще с оной просьбочкой. Мне понравился Ваш пример с карандашом  - он был ранее 15.02.11 15:43 по этой теме(вроде простенький). Стараюсь переделать на свой лад - у меня ничего не получается. Я конечно в плане макросов еще новичок. Помогите, пожалуйста , сделать макрос на мой документ. Только мне еще нужно, чтобы в "Инвент" автоматически выводились порядковые номера и в конце таблицы прописью писалось кол-во порядковых номеров, кол-во всего в целых и тысячных и сумма прописью (в грн. один файлик на рус, другой на укр.)И еще те же саммы данные попадали не на один лист, а на два "Инвент" и "Слечит ".Большое Вам спасибо за ранее.
 
Для Натальи - массивы с карадашом :)  
Суммы прописью добавил те, которые оказались под рукой. Для числа прописью с тысячными долями тоже было, посмотрите здесь или на др. форумах.  
Будут вопросы - пишите в своей старой теме, она тут недалеко :)
 
Для Sergio76 - форма с кнопочками :)  
Раз уж листы названы беспорядочно, то придется выбирать вручную на форме.  
Кнопка на листе Шаблон, за один вызов формы вставляется одна таблица. Можно, конечно, сделать выбор и вставку всех таблиц, не закрывая форму. И авт-ки вставлять новые листы, если таковых не найдется в файле-шаблоне. Но это уже будет какой-то Скайнет, как в Терминатор-3. :) А оно нам надо, зная к чему это приводит :)
 
Nelim!  
Неее, нам скайнет не нужен, что мы терминаторы что ли, зачем нам скайнет!!! :) Подняли настроение к концу рабочего дня!!! Спасибо!!! :) Сейчас буду смотреть на Ваше ПРОИЗВЕДЕНИЕ!!!  
Спасибо!!!
 
Nelim!  
Очередной раз БРАВО!!! Фактически то что нужно!!!! В принципе как я себе и представлял!!!    
Однако есть несколько вопросов:  
1. Для чего нужен лист СРМ, на сколько я понимаю только для автоматического выбора СРМ в шаблоне, так? В смысле так и нужно! Просто уточняю.  
2. Как все таки вставить дни недели под датами, а вернее каким образом это осуществить? Вставлять нужно только в лист "Шаблон"?  
3. В моем первоначальном файле было еще одно условное форматирование, которое скрывало (открывало) лишние графы в зависимости от того сколько дней в месяце? Как это можно реализовать здесь? Просто те формулы которые у меня в УФ были, в таком виде не хотят работать.  
4. Если я внес предположим Сургут первый канал, потом пытаюсь его еще раз внести, ну указал ошибочно не тот лист-источник или в источнике что либо поменялось, то он выдает сообщение что этот канал и город с данными. Я их удаляю, выделил- Del, все кроме формул. Пытаюсь повторить Сургут первый канал, а он все равно выдает что этот город и канал уже заполнены! Как мне действовать, чтоб он не ругался? Или что и как удалять?  
 
СПАСИБО! ВЫ ПРОСТО МОЛОДЧИНА!!!
 
... Чтобы удалить некую незавершенность :)  
Последняя версия с текстовой и видео- инструкцией здесь (3,9 МБ):  
http://ifolder.ru/21955502  
Дальше, видимо, не стоит развивать, иначе точно Скайнет получится :)
 
Спасибо огромное!!! Полностью согласен с Вами!!! Очень помогли!!! Единственное что хотел еще узнать!!! Как с Вами связаться? Моя почта: Solhovoi@gmail.com отправьте пожалуйста мне сообщение!
Страницы: 1 2 След.
Читают тему
Наверх