Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 00:11   #1
siglindo
 
Регистрация: 18.05.2010
Сообщений: 8
По умолчанию Перемещение значения ячейки на неактивном листе

Помогите создать несколько макросов. Попытаюсь сформулировать порядок действий:

1. Выполняется переход на лист ДАННЫЕ, производится поиск " Х " в столбце А, значение ячейки с Х переходит на строку выше, обратный переход на лист с бланком на ячейку скажем А5

2. Как в предыдущем, только значение с Х переходит на ячейку ниже

3. Заменяет пустые ячейки (лист ДАННЫЕ) на ячейки с пробелом (убирая на бланке нули)

Если эти макросы возможны к выполнению без мелькания листов БЛАНК-ДАННЫЕ-БЛАНК буду безмерно благодарен!!!

Заранее благодарю за помощь!!!
Вложения
Тип файла: rar paevik.rar (35.4 Кб, 8 просмотров)
siglindo вне форума Ответить с цитированием
Старый 24.05.2010, 01:06   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Вопрос 1

Код:
Sub task1()
Dim datash As Object, sh As Object
Application.ScreenUpdating = False: Set sh = Sheets("Paevik"): Set datash = Sheets("Данные")
With datash: .Select: [a:a].Find("x").Offset(-1, 0).Activate: End With
With sh: .Select: [a5].Select: End With: Application.ScreenUpdating = True: End Sub
Вопрос 2

Код:
Sub task2()
Dim datash As Object, sh As Object
Application.ScreenUpdating = False: Set sh = Sheets("Paevik"): Set datash = Sheets("Данные")
With datash: .Select: [a:a].Find("x").Offset(1, 0).Activate: End With
With sh: .Select: [a5].Select: End With: Application.ScreenUpdating = True: End Sub
Вопрос 3

Непонятен

Последний раз редактировалось EugeneS; 24.05.2010 в 01:14.
EugeneS вне форума Ответить с цитированием
Старый 25.05.2010, 00:31   #3
siglindo
 
Регистрация: 18.05.2010
Сообщений: 8
По умолчанию

Спасибо большое!!

Упущен один момент значение ячейки с Х не переходит на вышестоящую ячейку. Если не трудно поправьте.

Пункт №3 я записал по последовательности команд - странно но работает
siglindo вне форума Ответить с цитированием
Старый 25.05.2010, 01:43   #4
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Вопрос 1

Код:
Sub task1()
Dim datash As Object, sh As Object
Application.ScreenUpdating = False: Set sh = Sheets("Paevik"): Set datash = Sheets("Данные")
With datash: .Select: [a:a].Find("x").Offset(-1, 0).Value = [a:a].Find("x").Value: End With
With sh: .Select: [a5].Select: End With: Application.ScreenUpdating = True: End Sub
Вопрос 2

Код:
Sub task2()
Application.ScreenUpdating = False: Set sh = Sheets("Paevik"): Set datash = Sheets("Данные")
With datash: .Select: [a:a].Find("x").Offset(1, 0).Value = [a:a].Find("x").Value: End With
With sh: .Select: [a5].Select: End With: Application.ScreenUpdating = True: End Sub
Вопрос 3

надо понимать неактуален
EugeneS вне форума Ответить с цитированием
Старый 25.05.2010, 18:07   #5
siglindo
 
Регистрация: 18.05.2010
Сообщений: 8
По умолчанию

Данный макрос не работает - выставляет X-ы в вышестоящую ячейку, образовывая несколько значений Х-ов, что не допустимо!!! Фактически необходима команда Драг анд Дроп ячейки с Х в вышестоящую (нижестоящую ячейку)

Надеюсь еще не слишком надоел????
siglindo вне форума Ответить с цитированием
Старый 25.05.2010, 18:17   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вообще, прочитав только задачу, я не вижу необходимости вообще мелькать листами. Т.е. всякие Select и Activate не нужны.
Сперва в коде через Set= задать объекты, затем работать с ними.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 25.05.2010, 23:45   #7
siglindo
 
Регистрация: 18.05.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Вообще, прочитав только задачу, я не вижу необходимости вообще мелькать листами. Т.е. всякие Select и Activate не нужны.
Сперва в коде через Set= задать объекты, затем работать с ними.
Может подскажите как прописать данный макрос???????
siglindo вне форума Ответить с цитированием
Старый 26.05.2010, 00:04   #8
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

Вопрос 1

Код:
Sub task1()
Dim datash As Object, sh As Object
Application.ScreenUpdating = False: Set sh = Sheets("Paevik"): Set datash = Sheets("Данные")
With datash: .Select: [a:a].Find("x").Cut Destination:=[a:a].Find("x").Offset(-1, 0): End With
With sh: .Select: [a5].Select: End With: Application.ScreenUpdating = True: End Sub
Вопрос 2

Код:
Sub task2()
Dim datash As Object, sh As Object
Application.ScreenUpdating = False: Set sh = Sheets("Paevik"): Set datash = Sheets("Данные")
With datash: .Select: [a:a].Find("x").Cut Destination:=[a:a].Find("x").Offset(1, 0): End With
With sh: .Select: [a5].Select: End With: Application.ScreenUpdating = True: End Sub

Последний раз редактировалось EugeneS; 26.05.2010 в 00:07.
EugeneS вне форума Ответить с цитированием
Старый 26.05.2010, 00:45   #9
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

насколько понял идею (к кнопкам "Предыдущий" и "Следующий" подвязаны макросы), см. вложение
Вложения
Тип файла: zip paevik.zip (22 байт, 128 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 26.05.2010, 08:41   #10
siglindo
 
Регистрация: 18.05.2010
Сообщений: 8
По умолчанию

Спасибо большое!!! Сейчас все работает корректно!!!!
siglindo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение на другом листе и подставить значение следующей ячейки ElenaNTro Microsoft Office Excel 12 11.02.2019 12:44
Перемещение абзацев внутри ячейки piatka Microsoft Office Word 6 18.05.2010 18:57
Поиск в листе Excel одного значения несколько раз Andr3000 Microsoft Office Excel 2 23.04.2010 10:24
Событие Worksheet_Change не "ловится" на неактивном листе... Олег* Microsoft Office Excel 4 08.01.2010 00:43
Изменить значение ячейки на залоченом листе zavhoz Microsoft Office Excel 3 31.03.2009 09:50