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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическое заполнение и создание листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автоматическое заполнение и создание листов (Формулы/Formulas)
Автоматическое заполнение и создание листов
letasm Дата: Пятница, 15.04.2016, 19:28 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Есть лист "Данные" нужно, чтобы для каждого названия в первом столбце (а,б,в) автоматически создавался лист с таким же названием, и в него переносились бы все данные "а", "б" и т. д .
в примере сделано с помощью копирования и фильтрации можно как-то облегчить задачу?
К сообщению приложен файл: 2476828.xlsx (9.9 Kb)


Сообщение отредактировал letasm - Пятница, 15.04.2016, 19:28
 
Ответить
СообщениеЕсть лист "Данные" нужно, чтобы для каждого названия в первом столбце (а,б,в) автоматически создавался лист с таким же названием, и в него переносились бы все данные "а", "б" и т. д .
в примере сделано с помощью копирования и фильтрации можно как-то облегчить задачу?

Автор - letasm
Дата добавления - 15.04.2016 в 19:28
Pelena Дата: Пятница, 15.04.2016, 19:44 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
И Вам здравствуйте.
Здесь есть готовое решение


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеИ Вам здравствуйте.
Здесь есть готовое решение

Автор - Pelena
Дата добавления - 15.04.2016 в 19:44
letasm Дата: Пятница, 15.04.2016, 20:33 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Pelena, спасибо большое!
 
Ответить
СообщениеPelena, спасибо большое!

Автор - letasm
Дата добавления - 15.04.2016 в 20:33
letasm Дата: Суббота, 16.04.2016, 11:37 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Pelena, Подскажите, а как сделать автофильтр, основанный на совпадениях 1ого столбца? что-то не выходит совсем(
И чтобы о работал для большего диапазона строк?
 
Ответить
СообщениеPelena, Подскажите, а как сделать автофильтр, основанный на совпадениях 1ого столбца? что-то не выходит совсем(
И чтобы о работал для большего диапазона строк?

Автор - letasm
Дата добавления - 16.04.2016 в 11:37
Pelena Дата: Суббота, 16.04.2016, 12:04 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Покажите в файле, что Вы уже сделали и поясните, что не получается


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПокажите в файле, что Вы уже сделали и поясните, что не получается

Автор - Pelena
Дата добавления - 16.04.2016 в 12:04
letasm Дата: Суббота, 16.04.2016, 12:31 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Pelena, макрос ertert112 он работает для 4 столбца, а мне надо чтобы на основании знаечений 1ого появлялись листы с отфильтрованными данными, простая замена с 4 на 1 столбе в коде не работает, подскажите что не так?
К сообщению приложен файл: 1919097.xlsm (28.4 Kb)


Сообщение отредактировал letasm - Суббота, 16.04.2016, 12:32
 
Ответить
СообщениеPelena, макрос ertert112 он работает для 4 столбца, а мне надо чтобы на основании знаечений 1ого появлялись листы с отфильтрованными данными, простая замена с 4 на 1 столбе в коде не работает, подскажите что не так?

Автор - letasm
Дата добавления - 16.04.2016 в 12:31
Pelena Дата: Суббота, 16.04.2016, 12:41 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Так попробуйте
[vba]
Код
Sub ertert112() 'то же, что и ertert111, но InStr вместо Dictionary
Dim s, r
Application.ScreenUpdating = False
With Sheets("Sheet4").Range("A1").CurrentRegion
    .Parent.AutoFilterMode = False
    For Each r In .Offset(1).Resize(.Rows.Count - 1).Columns(1).Value
        If InStr(s, r) = 0 Then
            If Not Evaluate("ISREF('" & r & "'!A1)") Then
                Sheets.Add(after:=Sheets(Sheets.Count)).Name = r
            Else
                Sheets(r).UsedRange.ClearContents
            End If
            .AutoFilter 1, r
            .Copy Sheets(r & "").Range("A1")
            s = s & r
        End If
        Columns("a:xx").EntireColumn.AutoFit
    Next
    .AutoFilter
End With: Application.ScreenUpdating = True
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеТак попробуйте
[vba]
Код
Sub ertert112() 'то же, что и ertert111, но InStr вместо Dictionary
Dim s, r
Application.ScreenUpdating = False
With Sheets("Sheet4").Range("A1").CurrentRegion
    .Parent.AutoFilterMode = False
    For Each r In .Offset(1).Resize(.Rows.Count - 1).Columns(1).Value
        If InStr(s, r) = 0 Then
            If Not Evaluate("ISREF('" & r & "'!A1)") Then
                Sheets.Add(after:=Sheets(Sheets.Count)).Name = r
            Else
                Sheets(r).UsedRange.ClearContents
            End If
            .AutoFilter 1, r
            .Copy Sheets(r & "").Range("A1")
            s = s & r
        End If
        Columns("a:xx").EntireColumn.AutoFit
    Next
    .AutoFilter
End With: Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Pelena
Дата добавления - 16.04.2016 в 12:41
letasm Дата: Суббота, 16.04.2016, 12:51 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Pelena, спасибо, работает!) Не подскажете, что делает эта строка? Copy Sheets(r & "").Range("A1") именно с кавычками?
 
Ответить
СообщениеPelena, спасибо, работает!) Не подскажете, что делает эта строка? Copy Sheets(r & "").Range("A1") именно с кавычками?

Автор - letasm
Дата добавления - 16.04.2016 в 12:51
letasm Дата: Суббота, 16.04.2016, 12:52 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
И почему они не нужны были в 1м случае?
 
Ответить
СообщениеИ почему они не нужны были в 1м случае?

Автор - letasm
Дата добавления - 16.04.2016 в 12:52
letasm Дата: Суббота, 16.04.2016, 12:54 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
И еще раз, спасибо)


Сообщение отредактировал letasm - Суббота, 16.04.2016, 13:05
 
Ответить
СообщениеИ еще раз, спасибо)

Автор - letasm
Дата добавления - 16.04.2016 в 12:54
Pelena Дата: Суббота, 16.04.2016, 13:02 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
почему они не нужны были в 1м случае
В первом случае r было текстовым значением и воспринималось нормально в качестве имени листа. А во втором случае r - это число, и [vba]
Код
Sheets(r)
[/vba] воспринимает r как индекс. Кавычки преобразуют его в текст.

если добавить строку новую, то код не работает
Проверила, работает. Новую строку с новым ID создаёте?

Кстати, там ещё в одном месте надо кавычки подставить
[vba]
Код
Sheets(r & "").UsedRange.ClearContents
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
почему они не нужны были в 1м случае
В первом случае r было текстовым значением и воспринималось нормально в качестве имени листа. А во втором случае r - это число, и [vba]
Код
Sheets(r)
[/vba] воспринимает r как индекс. Кавычки преобразуют его в текст.

если добавить строку новую, то код не работает
Проверила, работает. Новую строку с новым ID создаёте?

Кстати, там ещё в одном месте надо кавычки подставить
[vba]
Код
Sheets(r & "").UsedRange.ClearContents
[/vba]

Автор - Pelena
Дата добавления - 16.04.2016 в 13:02
letasm Дата: Суббота, 16.04.2016, 13:05 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Да, все работает) спасибо!) Вы меня очень выручили
 
Ответить
СообщениеДа, все работает) спасибо!) Вы меня очень выручили

Автор - letasm
Дата добавления - 16.04.2016 в 13:05
letasm Дата: Суббота, 16.04.2016, 13:21 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Можно я вас совсем замучаю?)
Как сделать чтобы созданные листы создавались в алфавитном порядке, а не так, как идут строки? Не хотелось бы первый лист сортировать по алфавиту, Pelena?


Сообщение отредактировал letasm - Суббота, 16.04.2016, 13:22
 
Ответить
СообщениеМожно я вас совсем замучаю?)
Как сделать чтобы созданные листы создавались в алфавитном порядке, а не так, как идут строки? Не хотелось бы первый лист сортировать по алфавиту, Pelena?

Автор - letasm
Дата добавления - 16.04.2016 в 13:21
Pelena Дата: Суббота, 16.04.2016, 13:33 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Забирать первый столбец в массив, сортировать, и уже элементы отсортированного массива использовать в качестве имён листов и критериев автофильтра.
Но это уже совсем другая тема.

Отдельные части решения можно найти здесь.


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗабирать первый столбец в массив, сортировать, и уже элементы отсортированного массива использовать в качестве имён листов и критериев автофильтра.
Но это уже совсем другая тема.

Отдельные части решения можно найти здесь.

Автор - Pelena
Дата добавления - 16.04.2016 в 13:33
letasm Дата: Суббота, 16.04.2016, 13:37 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Pelena, я разобралась ) Еще раз спасибо!)
 
Ответить
СообщениеPelena, я разобралась ) Еще раз спасибо!)

Автор - letasm
Дата добавления - 16.04.2016 в 13:37
letasm Дата: Суббота, 23.04.2016, 19:25 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
letasm, подскажите пожалуйста, почему не работает для такой таблицы? нужна сортировка по 5 колонке
пишет ошибку "13" несовпадение типов
К сообщению приложен файл: 2444641.xlsm (18.7 Kb)
 
Ответить
Сообщениеletasm, подскажите пожалуйста, почему не работает для такой таблицы? нужна сортировка по 5 колонке
пишет ошибку "13" несовпадение типов

Автор - letasm
Дата добавления - 23.04.2016 в 19:25
Pelena Дата: Суббота, 23.04.2016, 19:42 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
В этой строчке Вы забыли поменять Offset с 1 на 4. Так правильно
[vba]
Код
For Each r In .Offset(4).Resize(.Rows.Count - 4).Columns(5).Value
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВ этой строчке Вы забыли поменять Offset с 1 на 4. Так правильно
[vba]
Код
For Each r In .Offset(4).Resize(.Rows.Count - 4).Columns(5).Value
[/vba]

Автор - Pelena
Дата добавления - 23.04.2016 в 19:42
letasm Дата: Суббота, 23.04.2016, 20:21 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Pelena, Спасибо, а что делает offset?
 
Ответить
СообщениеPelena, Спасибо, а что делает offset?

Автор - letasm
Дата добавления - 23.04.2016 в 20:21
Pelena Дата: Суббота, 23.04.2016, 20:27 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Смещает диапазон, в данном случае на четыре строки вниз. Когда было смещение на 1 строку, то в пятом столбце первой была пустая ячейка, отсюда и ошибка


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСмещает диапазон, в данном случае на четыре строки вниз. Когда было смещение на 1 строку, то в пятом столбце первой была пустая ячейка, отсюда и ошибка

Автор - Pelena
Дата добавления - 23.04.2016 в 20:27
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автоматическое заполнение и создание листов (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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