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

Вход

Регистрация

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

 

= Мир MS Excel/LOG изменений на отделном листе. Как исправить для листа - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
LOG изменений на отделном листе. Как исправить для листа
qshin1980 Дата: Пятница, 18.10.2013, 13:45 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
Добрый день,

Подскажите, пожалуйста, как изменить код написанный для книги, на код для конкретного листа. Вообщем, нужно чтобы данный код работал только для определенного листа, например для "Лист 1".

[vba]
Код
Sub Work_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     If Sh.Name = "LOG" Then Exit Sub
     Dim sLastValue As String
     Dim lLastRow As Long
   
With Sheets("LOG")
         lLastRow = .Cells.SpecialCells(xlLastCell).Row + 1
         If lLastRow = Rows.Count Then Exit Sub
         Application.ScreenUpdating = False: Application.EnableEvents = False
         .Cells(lLastRow, 1) = CreateObject("wscript.network").UserName
         .Cells(lLastRow, 2) = Target.Address(0, 0)
         .Cells(lLastRow, 3) = Format(Now, "dd.mm.yyyy HH:MM:SS")
         .Cells(lLastRow, 4) = Sh.Name
         .Cells(lLastRow, 5).NumberFormat = "@"
         .Cells(lLastRow, 5) = sValue
         If Target.Count > 1 Then
             Dim rCell As Range, rRng As Range
             On Error Resume Next
             Set rRng = Intersect(Target, Sh.UsedRange): On Error GoTo 0
             If Not rRng Is Nothing Then
                 For Each rCell In rRng
                     If Not IsError(Target) Then sLastValue = sLastValue & "," & rCell Else sLastValue = sLastValue & "," & "Err"
                 Next rCell
                 sLastValue = Mid(sLastValue, 2)
             Else
                 sLastValue = ""
             End If
         Else
             If Not IsError(Target) Then sLastValue = Target.Value Else sLastValue = "Err"
         End If
         .Cells(lLastRow, 6).NumberFormat = "@"
         .Cells(lLastRow, 6) = sLastValue
     End With
     Application.ScreenUpdating = True: Application.EnableEvents = True
End Sub
   
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     If Sh.Name = "LOG" Then Exit Sub
     If Target.Count > 1 Then
         Dim rCell As Range, rRng As Range
         On Error Resume Next
         Set rRng = Intersect(Target, Sh.UsedRange): On Error GoTo 0
         If rRng Is Nothing Then Exit Sub
         For Each rCell In rRng
             If Not IsError(rCell) Then sValue = sValue & "," & rCell Else sValue = sValue & "," & "Err"
         Next rCell
         sValue = Mid(sValue, 2)
     Else
         If Not IsError(Target) Then sValue = Target.Value Else sValue = "Err"
     End If
End Sub
[/vba]

Спасибо
 
Ответить
СообщениеДобрый день,

Подскажите, пожалуйста, как изменить код написанный для книги, на код для конкретного листа. Вообщем, нужно чтобы данный код работал только для определенного листа, например для "Лист 1".

[vba]
Код
Sub Work_SheetChange(ByVal Sh As Object, ByVal Target As Range)
     If Sh.Name = "LOG" Then Exit Sub
     Dim sLastValue As String
     Dim lLastRow As Long
   
With Sheets("LOG")
         lLastRow = .Cells.SpecialCells(xlLastCell).Row + 1
         If lLastRow = Rows.Count Then Exit Sub
         Application.ScreenUpdating = False: Application.EnableEvents = False
         .Cells(lLastRow, 1) = CreateObject("wscript.network").UserName
         .Cells(lLastRow, 2) = Target.Address(0, 0)
         .Cells(lLastRow, 3) = Format(Now, "dd.mm.yyyy HH:MM:SS")
         .Cells(lLastRow, 4) = Sh.Name
         .Cells(lLastRow, 5).NumberFormat = "@"
         .Cells(lLastRow, 5) = sValue
         If Target.Count > 1 Then
             Dim rCell As Range, rRng As Range
             On Error Resume Next
             Set rRng = Intersect(Target, Sh.UsedRange): On Error GoTo 0
             If Not rRng Is Nothing Then
                 For Each rCell In rRng
                     If Not IsError(Target) Then sLastValue = sLastValue & "," & rCell Else sLastValue = sLastValue & "," & "Err"
                 Next rCell
                 sLastValue = Mid(sLastValue, 2)
             Else
                 sLastValue = ""
             End If
         Else
             If Not IsError(Target) Then sLastValue = Target.Value Else sLastValue = "Err"
         End If
         .Cells(lLastRow, 6).NumberFormat = "@"
         .Cells(lLastRow, 6) = sLastValue
     End With
     Application.ScreenUpdating = True: Application.EnableEvents = True
End Sub
   
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     If Sh.Name = "LOG" Then Exit Sub
     If Target.Count > 1 Then
         Dim rCell As Range, rRng As Range
         On Error Resume Next
         Set rRng = Intersect(Target, Sh.UsedRange): On Error GoTo 0
         If rRng Is Nothing Then Exit Sub
         For Each rCell In rRng
             If Not IsError(rCell) Then sValue = sValue & "," & rCell Else sValue = sValue & "," & "Err"
         Next rCell
         sValue = Mid(sValue, 2)
     Else
         If Not IsError(Target) Then sValue = Target.Value Else sValue = "Err"
     End If
End Sub
[/vba]

Спасибо

Автор - qshin1980
Дата добавления - 18.10.2013 в 13:45
SkyPro Дата: Пятница, 18.10.2013, 14:15 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Добавить вверху строчку:[vba]
Код
If Not Sh.Name = "Лист 1" Then Exit Sub
[/vba]


skypro1111@gmail.com
 
Ответить
СообщениеДобавить вверху строчку:[vba]
Код
If Not Sh.Name = "Лист 1" Then Exit Sub
[/vba]

Автор - SkyPro
Дата добавления - 18.10.2013 в 14:15
qshin1980 Дата: Пятница, 18.10.2013, 14:49 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 26
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
SkyPro, спасибо

Все ок.
 
Ответить
СообщениеSkyPro, спасибо

Все ок.

Автор - qshin1980
Дата добавления - 18.10.2013 в 14:49
  • Страница 1 из 1
  • 1
Поиск:

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