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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2014, 13:25   #1
Kraimon
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 44
По умолчанию Объединить два макроса

Добрый день. Подкажите как объдинить два макроса
Код HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr&
lr = Sheets("âûáûëè").Cells.Find(What:=" *", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
With Me
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [a:a]) Is Nothing And Target.Value = " " Then
.Rows(Target.Row).Copy Sheets("âûáûëè").Rows(lr)
.Rows(Target.Row).Delete
End If
End With
End Sub
Код HTML:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Me.Cells(Target.Row, 11) = Date
End Sub
Kraimon вне форума Ответить с цитированием
Старый 24.02.2014, 13:45   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

никому не известно, что Вы пытаетесь добиться этими макросами, но, думаю, если сунуть строку из второго макроса в середину первого будет в самый раз.
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lr&
  lr = Sheets("âûáûëè").Cells.Find(What:=" *", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
  With Me
    If Target.Count > 1 Then Exit Sub
    Me.Cells(Target.Row, 11) = Date
    If Not Intersect(Target, [a:a]) Is Nothing And Target.Value = " " Then
      .Rows(Target.Row).Copy Sheets("âûáûëè").Rows(lr)
      .Rows(Target.Row).Delete
    End If
  End With
End Sub
и вот это немного смущает ... .Cells.Find(What:=" *", ..., Вы уверены, что там нужен пробел перед *?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 24.02.2014 в 13:47.
IgorGO вне форума Ответить с цитированием
Старый 24.02.2014, 13:51   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
        Application.EnableEvents = False
        Me.Cells(Target.Row, 11) = Date
        Application.EnableEvents = True
Чтоб лишнее не бегало по кругу...
Кстати, а почему оно вообще не зацикливается?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.02.2014, 14:13   #4
Kraimon
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 44
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr&
lr = Sheets("âûáûëè").Cells.Find(What:=" *", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
With Me
If Target.Count > 1 Then Exit Sub
Me.Cells(Target.Row, 11) = Date
If Not Intersect(Target, [a:a]) Is Nothing And Target.Value = " " Then
.Rows(Target.Row).Copy Sheets("âûáûëè").Rows(lr)
.Rows(Target.Row).Delete
End If
End With
End Sub
Пишет:
run-time error '-2147417848 (80010108)
Automation error
Kraimon вне форума Ответить с цитированием
Старый 24.02.2014, 15:11   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

У меня не пишет. Но меня Вы игнорируете
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.02.2014, 15:20   #6
Kraimon
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 44
По умолчанию

я не понял куда писать )
Код:
Application.EnableEvents = False
Me.Cells(Target.Row, 11) = Date
Application.EnableEvents = True
Kraimon вне форума Ответить с цитированием
Старый 24.02.2014, 15:23   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вместо одной строки, которую вписал я, гораздо корректнее вписать 3 строки, как предложил Hugo121

удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.02.2014, 15:32   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вообще у меня работатло и с одной строкой, только дольше. Возможно работало потому, что Ваши каракули "âûáûëè" я заменил на индекс существующего листа.
Проверять с каракулями не хочу.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 24.02.2014, 15:41   #9
Kraimon
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 44
По умолчанию

Действительно работает) Спасибо
Kraimon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить два скрипта Mick_20 JavaScript, Ajax 1 28.08.2013 11:13
Объединить два кода в один c++\noob Общие вопросы C/C++ 3 08.03.2011 11:21
Объединить 2 макроса в 1 1134 Microsoft Office Excel 5 07.07.2010 16:09
Объединить два макроса KOSTIK1 Microsoft Office Excel 3 06.03.2010 22:09
Объединить два Макроса. Работа с БД. MobServis Microsoft Office Excel 0 30.01.2010 20:26