Страницы: 1
RSS
ошибка 400
 
Всем доброго времени суток !  
При нажатии кнопок запуска макроса появляется ошибка 400 (.    
Как ее убрать? Заранее благодарю.Файл должен работать при защищенном листе.Сам пароль устанавливать не обязательно, это просто защита формул.
 
1. Удаляем все ваши макросы  
 
2. Вставляем на их место один, универсальный, макрос:  
 
 
Sub УниверсальныйМакрос()  
   ActiveSheet.Unprotect "ВашПароль"    ' временно снимаем пароль  
   Application.ScreenUpdating = False    ' отключаем обновление экрана  
   Столбец% = Shapes(Application.Caller).TopLeftCell.Column  
   For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row  
       If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Столбец%).Copy Cells(i, Столбец%)  
   Next  
   ActiveSheet.Protect "ВашПароль"    ' ставим пароль обратно  
End Sub  
 
 
3. Назначаем всем кнопкам этот макрос  
 
4. Меняем в коде "ВашПароль" на настоящий пароль  
 
5. Убеждаемся в отсутствии ошибок
 
Да пребудет с Вами сила, учитель.  
 
37739
Я сам - дурнее всякого примера! ...
 
{quote}{login=EducatedFool}{date=01.11.2010 02:19}{thema=}{post}1. Удаляем все ваши макросы  
 
2. Вставляем на их место один, универсальный, макрос:  
 
 
Sub УниверсальныйМакрос()  
   ActiveSheet.Unprotect "ВашПароль"    ' временно снимаем пароль  
   Application.ScreenUpdating = False    ' отключаем обновление экрана  
   Столбец% = Shapes(Application.Caller).TopLeftCell.Column  
   For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row  
       If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Столбец%).Copy Cells(i, Столбец%)  
   Next  
   ActiveSheet.Protect "ВашПароль"    ' ставим пароль обратно  
End Sub  
 
 
3. Назначаем всем кнопкам этот макрос  
 
4. Меняем в коде "ВашПароль" на настоящий пароль  
 
5. Убеждаемся в отсутствии ошибок{/post}{/quote}  
 
Спасибо все отлично работает, но, первой кнопке я назначил    
Sub УниверсальныйМакрос2() поскольку в этом столбце формула в 5 строке являются переходящей.  
Вот что получилось:  
Sub ÓíèâåðñàëüíûéÌàêðîñ()  
ActiveSheet.Unprotect "1111" ' âðåìåííî ñíèìàåì ïàðîëü  
Application.ScreenUpdating = False ' îòêëþ÷àåì îáíîâëåíèå ýêðàíà  
Ñòîëáåö% = Shapes(Application.Caller).TopLeftCell.Column  
For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row  
If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Ñòîëáåö%).Copy Cells(i, Ñòîëáåö%)  
Next  
ActiveSheet.Protect "1111" ' ñòàâèì ïàðîëü îáðàòíî  
End Sub  
Sub ÓíèâåðñàëüíûéÌàêðîñ2()  
ActiveSheet.Unprotect "1111" ' âðåìåííî ñíèìàåì ïàðîëü  
Application.ScreenUpdating = False ' îòêëþ÷àåì îáíîâëåíèå ýêðàíà  
Ñòîëáåö% = Shapes(Application.Caller).TopLeftCell.Column  
For i = 6 To Cells(Rows.Count, 3).End(xlUp).Row  
If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Ñòîëáåö%).Copy Cells(i, Ñòîëáåö%)  
Next  
ActiveSheet.Protect "1111" ' ñòàâèì ïàðîëü îáðàòíî  
End Sub  
 
Спасибо огромное за помошь!
 
{quote}{login=EducatedFool}{date=01.11.2010 02:19}{thema=}{post}1. Удаляем все ваши макросы  
 
2. Вставляем на их место один, универсальный, макрос:  
 
 
Sub УниверсальныйМакрос()  
   ActiveSheet.Unprotect "ВашПароль"    ' временно снимаем пароль  
   Application.ScreenUpdating = False    ' отключаем обновление экрана  
   Столбец% = Shapes(Application.Caller).TopLeftCell.Column  
   For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row  
       If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Столбец%).Copy Cells(i, Столбец%)  
   Next  
   ActiveSheet.Protect "ВашПароль"    ' ставим пароль обратно  
End Sub  
 
 
3. Назначаем всем кнопкам этот макрос  
 
4. Меняем в коде "ВашПароль" на настоящий пароль  
 
5. Убеждаемся в отсутствии ошибок{/post}{/quote}  
 
ps что-то со шрифтами  
 
Спасибо все отлично работает, но, первой кнопке я назначил    
Sub УниверсальныйМакрос2() поскольку в этом столбце формула в 5 строке являются переходящей.  
Вот что получилось:  
 
Sub УниверсальныйМакрос()  
ActiveSheet.Unprotect "1111" ' временно снимаем пароль  
Application.ScreenUpdating = False ' отключаем обновление экрана  
Столбец% = Shapes(Application.Caller).TopLeftCell.Column  
For i = 5 To Cells(Rows.Count, 3).End(xlUp).Row  
If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Столбец%).Copy Cells(i, Столбец%)  
Next  
ActiveSheet.Protect "1111" ' ставим пароль обратно  
End Sub  
Sub УниверсальныйМакрос2()  
ActiveSheet.Unprotect "1111" ' временно снимаем пароль  
Application.ScreenUpdating = False ' отключаем обновление экрана  
Столбец% = Shapes(Application.Caller).TopLeftCell.Column  
For i = 6 To Cells(Rows.Count, 3).End(xlUp).Row  
If Not IsEmpty(Cells(i, 3)) Then Cells(i - 1, Столбец%).Copy Cells(i, Столбец%)  
Next  
ActiveSheet.Protect "1111" ' ставим пароль обратно  
End Sub  
Спасибо огромное за помошь!
 
Возникла другая проблема (  
При редактировании ячеек (белая заливка)  
значения обнуляются.?  
Приходится запоминать что было и заносить вновь?  
Прикрепляю файл.  
Выручайте...  
Заранее благодарен.
Страницы: 1
Читают тему
Наверх