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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование строк в закрытую книгу по условию в столбце - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование строк в закрытую книгу по условию в столбце (Макросы/Sub)
Копирование строк в закрытую книгу по условию в столбце
managerauto Дата: Вторник, 21.02.2017, 12:49 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
[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 - Вторник, 21.02.2017, 13:58
 
Ответить
Сообщение[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
Дата добавления - 21.02.2017 в 12:49
китин Дата: Вторник, 21.02.2017, 13:28 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Напримр есть Лист1

осмелюсь спросить ГДЕ?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
Напримр есть Лист1

осмелюсь спросить ГДЕ?

Автор - китин
Дата добавления - 21.02.2017 в 13:28
managerauto Дата: Вторник, 21.02.2017, 13:41 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Если это событие в модуле листа с которого копировать на (Например Лист1) нужен файл пример? просто в книге много листов и много разной информации, выложить нет возможности.
Листы от куда копируем и куда идентичные.


Сообщение отредактировал managerauto - Вторник, 21.02.2017, 13:52
 
Ответить
СообщениеЕсли это событие в модуле листа с которого копировать на (Например Лист1) нужен файл пример? просто в книге много листов и много разной информации, выложить нет возможности.
Листы от куда копируем и куда идентичные.

Автор - managerauto
Дата добавления - 21.02.2017 в 13:41
K-SerJC Дата: Вторник, 21.02.2017, 13:50 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
нужно в отдельный лист копировать только те

это отдельный код надо делать...


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Вторник, 21.02.2017, 13:55
 
Ответить
Сообщение
нужно в отдельный лист копировать только те

это отдельный код надо делать...

Автор - K-SerJC
Дата добавления - 21.02.2017 в 13:50
managerauto Дата: Вторник, 21.02.2017, 17:41 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
это отдельный код надо делать...

почему? он копирует инфо на закрытый лист, просто криво.
 
Ответить
Сообщение
это отдельный код надо делать...

почему? он копирует инфо на закрытый лист, просто криво.

Автор - managerauto
Дата добавления - 21.02.2017 в 17:41
Wasilich Дата: Вторник, 21.02.2017, 17:56 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Копирование строк в закрытую книгу по условию в столбце

что бы вся строка копировалась по условию в столбце AA в закрытый лист
Так все таки, куда копировать надо?
 
Ответить
Сообщение
Копирование строк в закрытую книгу по условию в столбце

что бы вся строка копировалась по условию в столбце AA в закрытый лист
Так все таки, куда копировать надо?

Автор - Wasilich
Дата добавления - 21.02.2017 в 17:56
managerauto Дата: Вторник, 21.02.2017, 18:08 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Так все таки, куда копировать надо?

копировать надо в туже книгу на скрытый лист!


Сообщение отредактировал managerauto - Вторник, 21.02.2017, 19:14
 
Ответить
Сообщение
Так все таки, куда копировать надо?

копировать надо в туже книгу на скрытый лист!

Автор - managerauto
Дата добавления - 21.02.2017 в 18:08
Perfect2You Дата: Вторник, 21.02.2017, 18:55 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Как я понял:
При открытии файла виден один лист.
При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника.
Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.

Как нужно?

В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.


Сообщение отредактировал Perfect2You - Вторник, 21.02.2017, 18:57
 
Ответить
СообщениеКак я понял:
При открытии файла виден один лист.
При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника.
Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.

Как нужно?

В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.

Автор - Perfect2You
Дата добавления - 21.02.2017 в 18:55
managerauto Дата: Вторник, 21.02.2017, 19:12 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Как я понял:
При открытии файла виден один лист.
При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника.
Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.

Как нужно?

В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.


это уже стёб :D
нужно всего лишь копировать с листа на лист если с в столбце AA "ИСТИНА" :D


Сообщение отредактировал managerauto - Вторник, 21.02.2017, 19:16
 
Ответить
Сообщение
Как я понял:
При открытии файла виден один лист.
При выборе ячейки с именем сотрудника создается новый лист, на который должны скопироваться все строки из скрытого файла данных, у которых в столбце AA имя этого сотрудника.
Или как вариант виден еще один лист с оперативными данными. При выборе на листе сотрудников нового сотрудника на оперативном листе стираются все бывшие там строки и загружаются строки вновь выбранного.

Как нужно?

В идеале состряпать файл-пример с названиями нужных листов и хотя бы флудовыми данными. С готовой структурой творить проще.


это уже стёб :D
нужно всего лишь копировать с листа на лист если с в столбце AA "ИСТИНА" :D

Автор - managerauto
Дата добавления - 21.02.2017 в 19:12
Perfect2You Дата: Вторник, 21.02.2017, 19:27 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Цитата
это уже стёб :D

Не ожидал, что так воспримете.

Жаль, мысли не читаю...
 
Ответить
Сообщение
Цитата
это уже стёб :D

Не ожидал, что так воспримете.

Жаль, мысли не читаю...

Автор - Perfect2You
Дата добавления - 21.02.2017 в 19:27
Perfect2You Дата: Вторник, 21.02.2017, 21:09 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 237
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Впрочем, а вдруг...
Попробую понять тупо. По-машинному.
Вот код, копирующий строку по условию 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]

Вдруг попал?
Буду рад, если помог...


Сообщение отредактировал Perfect2You - Вторник, 21.02.2017, 21:10
 
Ответить
СообщениеВпрочем, а вдруг...
Попробую понять тупо. По-машинному.
Вот код, копирующий строку по условию 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]

Вдруг попал?
Буду рад, если помог...

Автор - Perfect2You
Дата добавления - 21.02.2017 в 21:09
Wasilich Дата: Вторник, 21.02.2017, 22:08 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
он копирует инфо на закрытый лист, просто криво.
Так в чем кривизна?
И в чем проблема, создать пример листа с точной копией таблицы и десятком строк для копирования и таблицы на закрытом листе. Сколько можно в гадалки играть?
 
Ответить
Сообщение
он копирует инфо на закрытый лист, просто криво.
Так в чем кривизна?
И в чем проблема, создать пример листа с точной копией таблицы и десятком строк для копирования и таблицы на закрытом листе. Сколько можно в гадалки играть?

Автор - Wasilich
Дата добавления - 21.02.2017 в 22:08
K-SerJC Дата: Среда, 22.02.2017, 08:34 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
в вашем коде вот эта строка:
[vba]
Код
Range("B" & i & ":" & "C" & i).Copy Destination:=Worksheets("Клиенты").Range("B" & 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)
[/vba]


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Среда, 22.02.2017, 09:15
 
Ответить
Сообщениев вашем коде вот эта строка:
[vba]
Код
Range("B" & i & ":" & "C" & i).Copy Destination:=Worksheets("Клиенты").Range("B" & 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)
[/vba]

Автор - K-SerJC
Дата добавления - 22.02.2017 в 08:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование строк в закрытую книгу по условию в столбце (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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