Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Проблема большого размера макроса
 
Желание есть.... Знаний ни каких.
А сделать надо (для диссертации), но времени на изучение языка VBA уже нет (сроки).
Вопрос тот же как конкретно заставить предложенный макрос работать на заданном диапазоне. Строка Do While j1 < 225 казалось бы должна ограничивать работу двух кодов (Protect_for_User_Non_for_VBA и Get_Value_From_Close_Book) до 225 листа, но макрос Галины выдает ошибку на 226-ом (где его работа вообще не нежна). Может дело в строке j1 = j1 + 1
Проблема большого размера макроса
 
Цитата
Алексей пишет:
Приведенный макрос будет работать не далее 225 листа
В том то и дело, что в моей книге чуть больше листов и начиная с 226-го два кода (Protect_for_User_Non_for_VBA и Get_Value_From_Close_Book) по задумке не должны выполняться. А при работе макроса предложенного Галиной Ехсеl выдает ошибку (ругается что не может применить макрос  "Protect_for_User_Non_for_VBA" к листу 226, а он его и не применит посколку для данного листа данный макрос не записан).
Предлагаемый вами вариант с формой в которой надо указывать последний обрабатываемый лист работает, но для моего случая не подходит (пользоваться программой будут другие люди и для них надо максимально все упрощать)
Проблема большого размера макроса
 
Спасибо,  Галина. Ваш макрос работает.
Подскажите как сделать чтобы данный макрос работал толлько до определенного листа (в моем случае до 225-го)
Проблема большого размера макроса
 
Суть проблемы: имеется сводная книга excel в которой 225 листов. Для каждого листа написано по 2-а почти одинаковых кода VBA (они нужны для получения данных из других закрытых книг на каждый из 225 листов после предварительного снятия парольной защиты с последних). Для автоматизации последовательного переноса данных на все листы был записан весьма объемный макрос и "повешен" на кнопку (фрагмент макроса приведен в прикрепленном текстовом файле). Данный макрос получился большого размера и его отказывается обрабатывать excel (т.е. если заставить макрос последовательно выполнять по два кода на лист до 214-того листа включительно - работает, но если больше - пишет, что не может обработать более 64 Кб). Подскажите как можно решить данную проблему (может возможно ужать текст макроса или проблема в переполнении оперативной памяти?).
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
{quote}{login=LightZ}{date=26.02.2012 12:32}{thema=}{post}Ммм... не пойму чего ходить вокруг да около - можно лицезреть файл?  
*90811*{/post}{/quote}  
А вот это уже сложнее в первую очередь из-за размера. А если еще книги с которых переносятся данные прикладывать то ващщще!!! Кроме того не совсем понятно зачем.
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
{quote}{login=Hugo}{date=25.02.2012 11:49}{thema=}{post}22 практически одинаковых кода?{/post}{/quote}  
Повторюсь на каждый файл данные переносятся из своей книги. Следовательно коды действительно практически схожи за исключением адреса книги
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
Попытка заменить [A1] на Range("A1") ничего не дала.
Отдельные модули я не создавал. Для каждого из листов книги (их всех 22), как и для того, который рассматривается в качестве примера, записан свой код и данные каждый лист получает из своей закрытой книги (их тоже 22-е почти с теми же названиями, что и у листов)
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
Да действительно накосячил. Вписывая название листа в ту часть кода которую вы посоветовали допустил опечатку.  
После того как набрал название листа правильно ситуация следующая:  
Для лист2 (02 Оз. пшеница) вбит код:  
 
Sub Get_Value_From_Close_Book()  
   Dim sShName As String, sAddress As String, vData  
   'Отключаем обновление экрана  
   Application.ScreenUpdating = False  
   Workbooks.Open "C:\Documents and Settings\Контурно-экологические севообороты\1 Пограмма расчета КЭЭ\02 Озимая пшеница.xls"  
   sAddress = "A1:V300"  
   'получаем значение  
   vData = Sheets("ПКЭэ").Range(sAddress).Value  
   ActiveWorkbook.Close False  
   'Записываем данные на активный лист книги,  
   'с которой запустили макрос  
   If IsArray(vData) Then  
Sheets("02 Оз. пшеница").[A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
Else  
Sheets("02 Оз. пшеница").[A1] = vData
End If  
   'Включаем обновление экрана  
   Application.ScreenUpdating = True  
End Sub  
 
Проблема изложенная мной в первом посте осталась, т.е. пока лист открыт данные на него переностся, как только я его скрыл комп выдает при запуске макроса с 1-го листа: Run-time error 1004  
Метод Select из класса Worksheet завершен неверно
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
Да, защита листа здесь действительно ни причем. Проблема в перенесении данных из закрытых книг на листы (часть из которых надо скрыть) при том, что данные последовательные действия записаны макрорекодером и "повешены" на кнопку
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
{quote}{login=The_Prist}{date=25.02.2012 08:20}{thema=}{post} Что надо сделать для того, чтобы данные переносились и на скрытые листы я уже написал.    
А теперь прошу разъяснения КОНКРЕТНОЙ задачи: Вам что откуда и куда надо перенести? Причем тут защита листа?{/post}{/quote}  
Как вы и советовали я указал, к ячейкам каких листов обращаемся:  
If IsArray(vData) Then  
Sheets("Лист2").[A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
Else  
Sheets("Лист2").[A1] = vData
End If  
Это совсем ничего не дало. После того как скрываю 2-ой лист (формат-лист-скрыть) проблема остается, т.е. марос переносит данные из отдельной закрытой книги на первый лист, а на втором останавливается и вадает Run-time error 1004  
Метод Select из класса Worksheet завершен неверно.  
Причем даже если я лист 2 отображаю до доходя до него макрос после предложенных вами изменений пишет Run-time error 9: Subscript out of range
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
Добавил примо в ваш файл свои цифры, закрашивает только из тех цифр которые были и выдает ошибку:  
If Range(Cells(i, j), Cells(i, j)).Value = [iPoisk] Then
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
Поскольку этот код я записал для каждого листа отдельно (на каждый лист данные переносятся из отдельной книги-программы), он работает без указания листа, а для активного в данный момент листа. Записью через макрорекодер удалось добиться поочередного перенесения данных на листы нажатием одной кнопки. А вот на скрытых листах это по прежнему не действует.  
В нете нашел код для вносения изменений с помощью кода на защищенные листы:  
 
Если выполнить ниже приведенную строчку кода, то пользователю невозможно будет изменить данные на листе(кроме тех, которые Вы сами разрешите), однако код VBA(макрос) сможет преспокойно вносить любые изменения, не снимая защиту.  
 
Sub Protect_for_User_Non_for_VBA()  
   ActiveSheet.Protect Password:="1111", UserInterfaceOnly:=True  
End Sub  
 
В коде выше в качестве примера взят активный лист, но можно указать любой:    
 
Sub Protect_for_User_Non_for_VBA()  
   Sheets(2).Protect Password:="1111", UserInterfaceOnly:=True  
   Sheets("Лист1").Protect Password:="1111", UserInterfaceOnly:=True  
End Sub  
 
Конечно, приведенный код можно модернизировать и разрешить пользователю хоть какие-то действия. Например использование автофильтра:  
 
Sub Protect_for_User_Non_for_VBA()  
   Sheets(2).Protect Password:="1111", UserInterfaceOnly:=True  
   'на лист "Лист1" поставим защиту и разрешим пользоваться фильтром  
   Sheets("Лист1").Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True  
End Sub  
 
может можно переделать для скрытых листов?
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
К сожалению не подходит, но все равно спасибо.
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
{quote}{login=Hugo}{date=25.02.2012 06:35}{thema=}{post}С именем.{/post}{/quote}  
Hugo, плюсы вашей версии: ищет быстро, окрашивает в одинаковый приемлемый цвет.  
Минусы - заливка после следующего ввода значения на прежних ячейках не остается, а надо что бы оставалась. И требуется, что бы поиск осуществлялся только по ячейкам с текстовым форматом.  
И я не смог посмотреть ваш основной код. Как это сделать? В предыдущем случае (в варианте от LightZ) я то же не понял как и куда он вбит, но вызывал его вводя в форму поиска заведомо большее число чем есть в таблице и затем нажимая кнопку Debug (Я еще весьма тёмен в этих делах)
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
LightZ, ваш последний код отлично работает, большое спасибо.    
Вчера не смог отписаться поскольку были проблемы с выходом в интернет.    
Если можно ещё один вопрос: у меня ячейка выделяется черным цветом. Это самый не подходящий вариант, поскольку тогда не видно значения в ячейке. Как можно в коде задать другой цвет заливки?
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
Искать пробовал. Перерыл все. Если бы не искал не нашел бы тот аналог, на который давал ссылку (там код закрыт). Больше ничего хоть сколько нибудь похожего не нашел.    
Макрорекодером пробовал. На записи открыл форму "Найти и заменить", открыл расширенные параметры, проставил все форматы, указал на что должно заменяться вводимое значение. Дамал что при воспроизведении макроса будет отрываться форма с заданными мною параметрами, однако ничего подобного.  
Вообще не понимаю за что я впал в такую не милость.    
Просматривая форум, можно понять, что в большинстве случаев общение выглядит так: человек излагает проблему, если у кого то есть в копилке готовое решение в виде макроса или идея где посмотреть хоть что-то подобное - делятся по доброте душевной (как мне кажется ;-)). Я ни у вас не прошу для меня что-то делать. Потратили на меня время и на том спасибо!
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
Написал последнее сообщение только потому, что в предпоследнем не прописался пользователь и я подумал, что из общей формы с темами не видно, что в теме что-то поменялось.  
То, что сегодня праздник прекрасно понимаю (кстати всех от души поздравляю!!!) С дргой стороны вроде бы во всех постах был достаточно вежлив в просьбе помочь и ни от кого ничего гневно не требовал.  
В своих "объяснялках" изложил все как мог (хотя если перейте по ссылке http://excelvba.ru/programmes/SearchExcel в первом же моем посте станет ясно чего я хочу - тот же функционал, но что бы на листе искались и закрашивались значения вводимые в поле поиска)    
А то, что выложил "лысый" файл, не потрудившись хоть часть своих усилий приложить(создать ТекстБокс или еще что) так я просто не умею этого (2-е недели назад узнал что такое макрос).
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
Ау! Кто-нубудь!
Как сделать чтобы макрос для копирования данных из закрытых книг работал на скрытых листах
 
Здраствуйте. Используя макрос  
 
Sub Get_Value_From_Close_Book()  
   Dim sShName As String, sAddress As String, vData  
   'Отключаем обновление экрана  
   Application.ScreenUpdating = False  
   Workbooks.Open "C:\Documents and Settings\Книга1.xls"  
   sAddress = "A1:C100" 'или одна ячейка - "A1"  
   'получаем значение  
   vData = Sheets("Лист1").Range(sAddress).Value  
   ActiveWorkbook.Close False  
   'Записываем данные на активный лист книги,  
   'с которой запустили макрос  
   If IsArray(vData) Then  
       [A1].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
   Else  
       [A1] = vData
   End If  
   'Включаем обновление экрана  
   Application.ScreenUpdating = True  
End Sub  
 
для переноса на листы данных из закратых книг столкнулся с такой проблемой: записал макрорекодером процесс последовательного переноса данных на десяток листов активной книги и "повесил" данный макрос на кнопку. После чего потребовалось скрыть последние листы. Но макрос по переносу данных перестал действовать на скрытых листах. Что делать? Подскажите!
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
Вот тот файл, в котором я работаю.    
 
<EM><STRONG>Файл удален</STRONG> - велик размер и, как сказал GIG_ant, ничего не понятно. - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>  
<EM><FONT color=#99000><STRONG>Автору настоятельно рекомендована пилюля:</STRONG></FONT><STRONG></STRONG></EM>  
<EM>http://www.planetaexcel.ru/forum.php?thread_id=8735</EM>
Форма для поиска заданного текста на текущем листе Excel с возможностью его окраски
 
Здравствуйте, уважаемые.    
Необходима форма для поиска заданного текста на текущем листе Excel с возможностью его окраски. Что-то подобное есть здесь http://excelvba.ru/programmes/SearchExcel, но мне бы хотелось быстро (без использования стандартной формы «Найти и заменить») искать и выделять (например, цветом) в очень большом двухмерном массиве ячейки с числами, точно совпадающими с теми, которые будут вводиться в созданную форму. Пожалуйста, помогите кто чем может.
Макрос для мигание ячейки, которая выделяется цветом посредством условного форматирования
 
{quote}{login=KL}{date=03.02.2012 06:23}{thema=}{post}Насколько я понимаю, у вас Excel2003 или ранее. Там в именованной формуле использована функция из надстройки "Пакет Инструментов для Анализа", которая должна быть включена и по-моему, сейчас уже не помню точно, в версиях 97-2003 даже нужно было вручную перевводить функцию на языке локали при смене таковой (у меня английская).  
Чтобы не заморачиваться с этой надстройкой, исправьте формулу в имени Timer на следующую:  
=ОСТАТ(СЕКУНДЫ(ТДАТА());2)=0  
 
В ячейке [D1] число, по достижении которого, ячейка [A1] должна начать мигать.
 
Я читал где-то, что для эпилептиков не столь важен цвет, сколь частота мигания. Сам это решение никогда не использую.{/post}{/quote}  
KL, Большое вам спасибо.Я разобрался. Все отлично работает. Насчет проблем с открытием файла не знаю у меня вроде открывает.
Макрос для мигание ячейки, которая выделяется цветом посредством условного форматирования
 
KL помоему как раз вы и в силах мне помочь. В теме форума "Мигание ячейки по условию" от 14.04.2010 вы выкладывали пример (post_117315.xls) с использованием именованной формулы Timer. Alex_ST еще отмечал, что будет очень удобно в некоторых случаях использовать УФ с "мигалкой". Это помоему как раз то, что я ищу, но с именованными формулами я сталкиваюсь впервые и не понял как сделать, что бы ячейка A1 все таки замигала. И заменял значение в ячейке D1 на 101 и применял к ячейкам макрос посредством комбинации (Alt+F8), и заменял в УФ <>0 на <>1 (думал может это интервал или количество миганий), но воно так и не мигает. Помогите пожалуйста разобраться.  
Кстати, если серьёзно говорить о возмоности эпилептического приступа, то насколько я знаю его провоцирует именно мигание красного света, так что применю другой цвет.
Макрос для мигание ячейки, которая выделяется цветом посредством условного форматирования
 
{quote}{login=vikttur}{date=02.02.2012 11:49}{thema=}{post}Мало Вам заливки?    
Можно представить какофонию "бибикалок", если закрашенных ячеек будет несколько десятков. Хотя, если нормально настроить, можно слушать "Полет шмеля" или "Турецкий марш" :)  
Может быть, пойти другим путем? Например, формировать отдельный диапазон.{/post}{/quote}  
На самом деле в програмке которую я разрабатываю одновременно может случиться только одна ошибка, т.е. будет залита только одна ячейка. Кроме того, бибикалки в принципе не обязательны, т.к. не факт, что потенциальные пользователи будут работать с включенными колонками. А вот мигание ячейки очень желательно. Поскольку предполагается, что рабочая область, которая будет доступна для изменений пользователя, будет занимать все окно (для удобства работы), то вариант с дополнительными диапазонами не подходит
Макрос для мигание ячейки, которая выделяется цветом посредством условного форматирования
 
Здравствуйте, уважаемые! Помогите, пожалуйста, решить следующую задачу. В качестве индикации нежелательных решений пользователя на листе используется прием заливки соответствующих ячеек красным цветом (посредством условного форматирования). С целью привлечения большего внимания (поскольку практика показывает, что при долгой работе с большим массивом данных можно это пропустить) хотелось бы, чтобы все красные ячейки не просто заливались данным цветом, а мигали. (Если подскажете еще и про звуковую индикацию таких событий будет вообще здорово).
Макрос автоматического копирования одного диапазона формул в другой
 
{quote}{login=GeoX}{date=29.01.2012 05:15}{thema=}{post}Все работает!!!{/post}{/quote}  
Отошел от стола, подумал и решил, что не совсем все. То есть, как я говорил процесс расчетов нужно максимально автоматизировать, а где-то растусововать пользователям про Alt+F8 и выполнение макроса не совсем то, что надо. Что посоветуете? Цеплять на кнопку "Пересчитать по всем листам" макрос или может есть другой путь для еще большей автоматизации процесса.
Макрос автоматического копирования одного диапазона формул в другой
 
Огромное спасибо, уважаемые гость и Юрий М!!! Все работает!!!
Макрос автоматического копирования одного диапазона формул в другой
 
{quote}{login=гость}{date=29.01.2012 04:42}{thema=}{post}Вот - тот самый макрос  
 
Sub procCopyPaste()  
   Dim rngCount As Integer  
   Dim i As Integer  
   Dim rngName As String  
   rngName = "Z7"  
     
   rngCount = ActiveWorkbook.Sheets.Count  
   Sheets(1).Activate  
   Range(rngName).Select  
   Range(Selection, Selection.End(xlDown)).Copy  
   For i = 2 To rngCount  
       Sheets(i).Activate  
       Range(rngName).Select  
       ActiveSheet.Paste  
   Next  
   Sheets(1).Activate  
   Application.CutCopyMode = False  
End Sub{/post}{/quote}  
 
Простите за мою дремучесть, но, стыдно признаться, не могу опробовать макрос раньше когда вставлял макрос через "Редактор Visual Basic-Insert-Modules" после повторного открытия файла, выбора категории функций "определенные пользователем" и выбора нужной появлялась соответствующая форма. Все просто и понятно ;-). А теперь насколько я понял надо в ячейку после знака равно вбивать название функции и ее аргументы. Если да то, что и как вбивать? Ещё раз сори за дремучесть!
Макрос автоматического копирования одного диапазона формул в другой
 
Дело в том, что формулы то как раз и не стабильны. Каждый год они будут изменяться на первом листе (поскольку будут изменяться предшественники культур) в колонке с синими цифрами. Поэтому просьба та же. Пожалуйста, нужен макрос для точного копирования массивов формул с листа на лист.{/post}{/quote}  
Возможно надо еще пояснение (как ни старался в первом посте так всего и не растусовал). Малый массив (из трех колонок) это то что я собираюсь сделать доступным для обработки пользователям. И проблема как раз в колонке №3 (с синими цифрами) куда как предполагается пользователи будут раз в год забивать простейшую формулу (ставить в ячейку "=" и тыкать на ячейку с нужной красной циферкой). Эта формула в аналогичных столбцах на следующих листах должна копироваться для выбора в ячейку из того жеместа большого массива, но уже с другими цифрами, поскольку это будет другой лист и другой большой массив.
Макрос автоматического копирования одного диапазона формул в другой
 
{quote}{login=Z}{date=29.01.2012 03:49}{thema=}{post}Простите, GeoX, но из ваших "много букв" понял одно - можно создать файл шаблон со стабильной структурой и стабильными, насколько понял, формулами... И это позволит отказаться от непонятнозачемпопирования... А если уж гложат сомнения в способностях работников, то... дайте им Access, точнее формы, и пусть их заполняют, и не суются куда непопадя...  
-82104-{/post}{/quote}  
Дело в том, что формулы то как раз и не стабильны. Каждый год они будут изменяться на первом листе (поскольку будут изменяться предшественники культур) в колонке с синими цифрами. Поэтому просьба та же. Пожалуйста, нужен макрос для точного копирования массивов формул с листа на лист.
Страницы: 1 2 След.
Наверх