Private Sub Worksheet_Change(ByVal Target As Range) Dim myCntrlRng As Range Dim i As Long, iRow As Long
Application.ScreenUpdating = False
Set myCntrlRng = Range("AA9:AA1636") If Selection.Count > 1 Then Exit Sub If Not Intersect(Target, myCntrlRng) Is Nothing Then If Target = "Андрей" Then i = Target.Row iRow = Worksheets("Клиенты").Cells(Rows.Count, 2).End(xlUp).Row + 1 Range("B" & i & ":" & "C" & i).Copy Destination:=Worksheets("Клиенты").Range("B" & iRow) End If End If Application.ScreenUpdating = True End Sub
[/vba]
Подскажите пожалуйста, что нужно дописать, или исправить, для того что бы вся строка копировалась по условию в столбце AA в закрытый лист начиная с определенной строки (строка 6 напримр) с учетом УФ по порядку без пропусков строк: Напримр есть Лист1 в нём информация о всех клиентах, нужно в отдельный лист копировать только те строки которые прикреплены к определенному сотруднику, имя сотрудника в стобце АА. Хотелось бы в дальнейшем сделать для каждого сотрудника свой лист только с их клиентами.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim myCntrlRng As Range Dim i As Long, iRow As Long
Application.ScreenUpdating = False
Set myCntrlRng = Range("AA9:AA1636") If Selection.Count > 1 Then Exit Sub If Not Intersect(Target, myCntrlRng) Is Nothing Then If Target = "Андрей" Then i = Target.Row iRow = Worksheets("Клиенты").Cells(Rows.Count, 2).End(xlUp).Row + 1 Range("B" & i & ":" & "C" & i).Copy Destination:=Worksheets("Клиенты").Range("B" & iRow) End If End If Application.ScreenUpdating = True End Sub
[/vba]
Подскажите пожалуйста, что нужно дописать, или исправить, для того что бы вся строка копировалась по условию в столбце AA в закрытый лист начиная с определенной строки (строка 6 напримр) с учетом УФ по порядку без пропусков строк: Напримр есть Лист1 в нём информация о всех клиентах, нужно в отдельный лист копировать только те строки которые прикреплены к определенному сотруднику, имя сотрудника в стобце АА. Хотелось бы в дальнейшем сделать для каждого сотрудника свой лист только с их клиентами.managerauto
Сообщение отредактировал managerauto - Вторник, 21.02.2017, 13:58
Если это событие в модуле листа с которого копировать на (Например Лист1) нужен файл пример? просто в книге много листов и много разной информации, выложить нет возможности. Листы от куда копируем и куда идентичные.
Если это событие в модуле листа с которого копировать на (Например Лист1) нужен файл пример? просто в книге много листов и много разной информации, выложить нет возможности. Листы от куда копируем и куда идентичные.managerauto
Сообщение отредактировал managerauto - Вторник, 21.02.2017, 13:52
Как я понял: При открытии файла виден один лист. При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника. Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.
Как нужно?
В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.
Как я понял: При открытии файла виден один лист. При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника. Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.
Как нужно?
В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.Perfect2You
Сообщение отредактировал Perfect2You - Вторник, 21.02.2017, 18:57
Как я понял: При открытии файла виден один лист. При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника. Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.
Как нужно?
В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.
это уже стёб нужно всего лишь копировать с листа на лист если с в столбце AA "ИСТИНА"
Как я понял: При открытии файла виден один лист. При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника. Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.
Как нужно?
В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.
это уже стёб нужно всего лишь копировать с листа на лист если с в столбце AA "ИСТИНА" managerauto
Сообщение отредактировал managerauto - Вторник, 21.02.2017, 19:16
Впрочем, а вдруг... Попробую понять тупо. По-машинному. Вот код, копирующий строку по условию AA15 = логическая истина с листа "Лист1" на лист "Лист2". Имена листов и номер строки заданы переменными. [vba]
Код
Sub RWC() Dim strOk As Long Dim sh1 As String, sh2 As String
sh1 = "Лист1" sh2 = "Лист2" strOk = 15
If ThisWorkbook.Sheets(sh1).Range("AA" & strOk).Value = True Then ThisWorkbook.Sheets(sh1).Rows(strOk).Copy ThisWorkbook.Sheets(sh2).Rows(strOk)
End Sub
[/vba]
Вдруг попал? Буду рад, если помог...
Впрочем, а вдруг... Попробую понять тупо. По-машинному. Вот код, копирующий строку по условию AA15 = логическая истина с листа "Лист1" на лист "Лист2". Имена листов и номер строки заданы переменными. [vba]
Код
Sub RWC() Dim strOk As Long Dim sh1 As String, sh2 As String
sh1 = "Лист1" sh2 = "Лист2" strOk = 15
If ThisWorkbook.Sheets(sh1).Range("AA" & strOk).Value = True Then ThisWorkbook.Sheets(sh1).Rows(strOk).Copy ThisWorkbook.Sheets(sh2).Rows(strOk)
Так в чем кривизна? И в чем проблема, создать пример листа с точной копией таблицы и десятком строк для копирования и таблицы на закрытом листе. Сколько можно в гадалки играть?
Так в чем кривизна? И в чем проблема, создать пример листа с точной копией таблицы и десятком строк для копирования и таблицы на закрытом листе. Сколько можно в гадалки играть?Wasilich
[/vba] копирует ячейки из столбцов В и С и из строки на которой стоял фокус при запуске макроса на лист "Клиенты" в тот же столбец и строку ("B" & iRow) (первая свободная) условие у вас задано в строке [vba]
Код
If Target = "Андрей" Then
[/vba] добавьте строку условия из поста 11, только привязку к своим переменным делайте, как пример: [vba]
Код
If ThisWorkbook.Sheets(sh1).Range("AA" & i).Value = True Then ThisWorkbook.ActiveSheets.Rows(i).Copy ThisWorkbook.Sheets("Клиенты").Rows(iRow)
[/vba] копирует ячейки из столбцов В и С и из строки на которой стоял фокус при запуске макроса на лист "Клиенты" в тот же столбец и строку ("B" & iRow) (первая свободная) условие у вас задано в строке [vba]
Код
If Target = "Андрей" Then
[/vba] добавьте строку условия из поста 11, только привязку к своим переменным делайте, как пример: [vba]
Код
If ThisWorkbook.Sheets(sh1).Range("AA" & i).Value = True Then ThisWorkbook.ActiveSheets.Rows(i).Copy ThisWorkbook.Sheets("Клиенты").Rows(iRow)