Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/объединить два макроса на одном листе в исходном тексте - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » объединить два макроса на одном листе в исходном тексте (макросы надо объединить на безконфликтную работу)
объединить два макроса на одном листе в исходном тексте
Лехаа Дата: Среда, 08.08.2012, 10:17 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 4 ±
Замечаний: 0% ±

вопрос наверное совсем дилетанский но я на нем встал smile
как объединить эти два макроса пытаюсь засунуть в исходный текст одного листа
surprised помогите пожалуйста...

вот 1й:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 7 Or Target.Column = 8 Then
Application.EnableEvents = 0
Target = WorksheetFunction.Proper(Target)
End If
Application.EnableEvents = 1
End Sub
[/vba]

вот 2й:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
Application.EnableEvents = False
Dim c As Range
For Each c In Target
If c Like "изолента*" Then
c.Offset(, 32) = "-"
c.Offset(, 33) = Now
Else
c.Offset(, 32).Resize(, 2).ClearContents
End If
Next c
Application.EnableEvents = True
End Sub
[/vba]
 
Ответить
Сообщениевопрос наверное совсем дилетанский но я на нем встал smile
как объединить эти два макроса пытаюсь засунуть в исходный текст одного листа
surprised помогите пожалуйста...

вот 1й:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 7 Or Target.Column = 8 Then
Application.EnableEvents = 0
Target = WorksheetFunction.Proper(Target)
End If
Application.EnableEvents = 1
End Sub
[/vba]

вот 2й:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
Application.EnableEvents = False
Dim c As Range
For Each c In Target
If c Like "изолента*" Then
c.Offset(, 32) = "-"
c.Offset(, 33) = Now
Else
c.Offset(, 32).Resize(, 2).ClearContents
End If
Next c
Application.EnableEvents = True
End Sub
[/vba]

Автор - Лехаа
Дата добавления - 08.08.2012 в 10:17
Формуляр Дата: Среда, 08.08.2012, 10:46 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Примерно так:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Count > 1 Then Exit Sub
     Application.EnableEvents = False
     If Target.Column = 7 Or Target.Column = 8 Then
         Target = WorksheetFunction.Proper(Target)
     ElseIf Target.Column <> 3 Then Exit Sub
         Dim c As Range
         For Each c In Target
             If c Like "изолента*" Then
                 c.Offset(, 32) = "-"
                 c.Offset(, 33) = Now
             Else
                 c.Offset(, 32).Resize(, 2).ClearContents
             End If
         Next c
     End If
     Application.EnableEvents = True
End Sub
[/vba]


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Среда, 08.08.2012, 10:47
 
Ответить
СообщениеПримерно так:
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Count > 1 Then Exit Sub
     Application.EnableEvents = False
     If Target.Column = 7 Or Target.Column = 8 Then
         Target = WorksheetFunction.Proper(Target)
     ElseIf Target.Column <> 3 Then Exit Sub
         Dim c As Range
         For Each c In Target
             If c Like "изолента*" Then
                 c.Offset(, 32) = "-"
                 c.Offset(, 33) = Now
             Else
                 c.Offset(, 32).Resize(, 2).ClearContents
             End If
         Next c
     End If
     Application.EnableEvents = True
End Sub
[/vba]

Автор - Формуляр
Дата добавления - 08.08.2012 в 10:46
Лехаа Дата: Среда, 08.08.2012, 11:00 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 4 ±
Замечаний: 0% ±

1 й работает на ура а вот второй не срабатывает... в чем может быть загвоздка?
 
Ответить
Сообщение1 й работает на ура а вот второй не срабатывает... в чем может быть загвоздка?

Автор - Лехаа
Дата добавления - 08.08.2012 в 11:00
Формуляр Дата: Среда, 08.08.2012, 11:22 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Да в чём угодно!
Никто же, кроме вас, не знает как он должен работать.
Отлаживайте.
Ставьте СТОПы, смотрите значения переменных ...
Это основная часть работы с макросами.


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеДа в чём угодно!
Никто же, кроме вас, не знает как он должен работать.
Отлаживайте.
Ставьте СТОПы, смотрите значения переменных ...
Это основная часть работы с макросами.

Автор - Формуляр
Дата добавления - 08.08.2012 в 11:22
RAN Дата: Среда, 08.08.2012, 12:31 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Cells.Count > 1 Then Exit Sub
      If Target.Column = 3 Then
          Application.EnableEvents = False
          Target.Offset(, 32).Resize(, 2).ClearContents
          If Target Like "изолента*" Then: Target.Offset(, 32) = "-": Target.Offset(, 33) = Now
      ElseIf Target.Column = 7 Or Target.Column = 8 Then
          Application.EnableEvents = False
          Target = StrConv(Target, 3)
      End If
      Application.EnableEvents = True
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 08.08.2012, 12:43
 
Ответить
Сообщение[vba]
Code
Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Cells.Count > 1 Then Exit Sub
      If Target.Column = 3 Then
          Application.EnableEvents = False
          Target.Offset(, 32).Resize(, 2).ClearContents
          If Target Like "изолента*" Then: Target.Offset(, 32) = "-": Target.Offset(, 33) = Now
      ElseIf Target.Column = 7 Or Target.Column = 8 Then
          Application.EnableEvents = False
          Target = StrConv(Target, 3)
      End If
      Application.EnableEvents = True
End Sub
[/vba]

Автор - RAN
Дата добавления - 08.08.2012 в 12:31
Лехаа Дата: Среда, 08.08.2012, 12:52 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 4 ±
Замечаний: 0% ±

Огромное Спасибо!
 
Ответить
СообщениеОгромное Спасибо!

Автор - Лехаа
Дата добавления - 08.08.2012 в 12:52
Формуляр Дата: Среда, 08.08.2012, 13:10 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Лехаа,
виноват!
Сам невнимательно код перенёс.
Quote (Формуляр)
    ElseIf Target.Column <> 3 Then Exit Sub


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеЛехаа,
виноват!
Сам невнимательно код перенёс.
Quote (Формуляр)
    ElseIf Target.Column <> 3 Then Exit Sub

Автор - Формуляр
Дата добавления - 08.08.2012 в 13:10
Мир MS Excel » Вопросы и решения » Вопросы по Excel » объединить два макроса на одном листе в исходном тексте (макросы надо объединить на безконфликтную работу)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!