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

Вход

Регистрация

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

 

= Мир MS Excel/Как изменить расположение данных в таблице - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как изменить расположение данных в таблице (Макросы/Sub)
Как изменить расположение данных в таблице
ant6729 Дата: Четверг, 17.04.2014, 14:29 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Подскажите, пожалуйста, как привести вариант А к варианту Б. Файл прилагается.

Сам пробовал сперва фильтрануть по желтому, потом ставил =, потом протягивал, потом снимал фильтр, потом выделял столбец, копировал, вставлял, нажимал 123, потом F5, потом заполнял, потом опять фильтровал по желтым и удалял желтые.

Слишком долго.
Однако, если писать макрос - на эти действия - когда вариант А становится по количеству длиннее между ФИО, потому что каждый день данные разные - то мне автоматизировать превращение варианта А в Б становится невозможно.

Надеюсь, это возможно все-таки. Что можно сделать? А то я сводные таблицы освоил, ВПР, ГПР, ЕСЛИ, макросы писать научился, F5 тоже, а дальше мозгов нет
К сообщению приложен файл: 9801301.xls (30.0 Kb)
 
Ответить
СообщениеПодскажите, пожалуйста, как привести вариант А к варианту Б. Файл прилагается.

Сам пробовал сперва фильтрануть по желтому, потом ставил =, потом протягивал, потом снимал фильтр, потом выделял столбец, копировал, вставлял, нажимал 123, потом F5, потом заполнял, потом опять фильтровал по желтым и удалял желтые.

Слишком долго.
Однако, если писать макрос - на эти действия - когда вариант А становится по количеству длиннее между ФИО, потому что каждый день данные разные - то мне автоматизировать превращение варианта А в Б становится невозможно.

Надеюсь, это возможно все-таки. Что можно сделать? А то я сводные таблицы освоил, ВПР, ГПР, ЕСЛИ, макросы писать научился, F5 тоже, а дальше мозгов нет

Автор - ant6729
Дата добавления - 17.04.2014 в 14:29
ant6729 Дата: Четверг, 17.04.2014, 14:32 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Вообщем, чтобы фамилия выше стояла напротив значений под ней


Сообщение отредактировал ant6729 - Четверг, 17.04.2014, 14:33
 
Ответить
СообщениеВообщем, чтобы фамилия выше стояла напротив значений под ней

Автор - ant6729
Дата добавления - 17.04.2014 в 14:32
Abakumov Дата: Четверг, 17.04.2014, 17:09 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Нагородил я конечно в коде, если посидеть, подумать, то и сократить можно.
Если правильно понял, то вот пример. Данные берутся из Лист2 и заносятся на пустой Лист1
К сообщению приложен файл: 1_.xlsb (17.8 Kb)


Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Ответить
СообщениеНагородил я конечно в коде, если посидеть, подумать, то и сократить можно.
Если правильно понял, то вот пример. Данные берутся из Лист2 и заносятся на пустой Лист1

Автор - Abakumov
Дата добавления - 17.04.2014 в 17:09
ant6729 Дата: Четверг, 17.04.2014, 17:18 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Не работает. Вообще, в идеал, нужно чтобы вариант Б заменял А. А исчезал, в тех же столбцах из А получался Б.
Я попробовал ваш вариант, удалив у себя конечный обработанный вид Б с листа1. Таки, не работает тогда!
 
Ответить
СообщениеНе работает. Вообще, в идеал, нужно чтобы вариант Б заменял А. А исчезал, в тех же столбцах из А получался Б.
Я попробовал ваш вариант, удалив у себя конечный обработанный вид Б с листа1. Таки, не работает тогда!

Автор - ant6729
Дата добавления - 17.04.2014 в 17:18
Hugo Дата: Четверг, 17.04.2014, 17:21 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
ant6729, придумайте название темы согласно правил форума, сообщите модераторам. А пока тема закрыта!


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщениеant6729, придумайте название темы согласно правил форума, сообщите модераторам. А пока тема закрыта!

Автор - Hugo
Дата добавления - 17.04.2014 в 17:21
Pelena Дата: Пятница, 18.04.2014, 10:51 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Почему-то новое название темы автор прислал мне в личку, так что я исправила и открыла


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

Автор - Pelena
Дата добавления - 18.04.2014 в 10:51
ant6729 Дата: Пятница, 18.04.2014, 15:25 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Спасибо)

Ну, видимо, не получается задача...?)
 
Ответить
СообщениеСпасибо)

Ну, видимо, не получается задача...?)

Автор - ant6729
Дата добавления - 18.04.2014 в 15:25
Abakumov Дата: Пятница, 18.04.2014, 15:31 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ant6729, я же указал, что данные формируются на Лист3. Не хотел Ваши данные трогать. Для того, чтобы данные формировались на Лист1, просто
Код

Set sht3 = ThisWorkbook.Worksheets("Лист3")

Замените на
Код

Set sht3 = ThisWorkbook.Worksheets("Лист1")


Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Ответить
Сообщениеant6729, я же указал, что данные формируются на Лист3. Не хотел Ваши данные трогать. Для того, чтобы данные формировались на Лист1, просто
Код

Set sht3 = ThisWorkbook.Worksheets("Лист3")

Замените на
Код

Set sht3 = ThisWorkbook.Worksheets("Лист1")

Автор - Abakumov
Дата добавления - 18.04.2014 в 15:31
ant6729 Дата: Пятница, 18.04.2014, 16:14 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Abakumov, не знаю, что - то не могу ничего сделать.
С новыми данными не получается.

Данные идут еще на 1500 строк вниз. И больше.
К сообщению приложен файл: 8295915.xls (41.0 Kb)


Сообщение отредактировал ant6729 - Пятница, 18.04.2014, 16:30
 
Ответить
СообщениеAbakumov, не знаю, что - то не могу ничего сделать.
С новыми данными не получается.

Данные идут еще на 1500 строк вниз. И больше.

Автор - ant6729
Дата добавления - 18.04.2014 в 16:14
wild_pig Дата: Суббота, 19.04.2014, 00:41 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
 
Ответить
Сообщение

Автор - wild_pig
Дата добавления - 19.04.2014 в 00:41
ant6729 Дата: Суббота, 19.04.2014, 10:08 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
b(ii, 1) = a(i, 1) -------------------------- выделяется желтым и пишет субскирипт аут оа рэндж ерор тайм 9
 
Ответить
Сообщениеb(ii, 1) = a(i, 1) -------------------------- выделяется желтым и пишет субскирипт аут оа рэндж ерор тайм 9

Автор - ant6729
Дата добавления - 19.04.2014 в 10:08
wild_pig Дата: Суббота, 19.04.2014, 10:57 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Удалите строку с вариантом внизу таблицы (46)
 
Ответить
СообщениеУдалите строку с вариантом внизу таблицы (46)

Автор - wild_pig
Дата добавления - 19.04.2014 в 10:57
RAN Дата: Суббота, 19.04.2014, 11:08 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Чесал репу, чесал, почему не работает :D
С файлом 9801301.xls работать будет, а вот с файлом 8295915.xls НЕТ.

Кто кого перехитрил? :D

[vba]
Код
Sub Мяу()
Dim r As Range, cl As Range, i&
Application.ScreenUpdating = False
     Set r = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
     For Each cl In r
         If Len(cl.Offset(, 1)) Then
         Else
             cl.Offset(, 2).Value = cl.Value
         End If
     Next
     r.Offset(, 2).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
     r.Offset(, 2).Value = r.Offset(, 2).Value
     For i = r.Count To 1 Step -1
         If Len(Cells(i, 2)) Then
         Else
             Rows(i).Delete
         End If
     Next
End Sub
[/vba]


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

Сообщение отредактировал RAN - Суббота, 19.04.2014, 11:32
 
Ответить
СообщениеЧесал репу, чесал, почему не работает :D
С файлом 9801301.xls работать будет, а вот с файлом 8295915.xls НЕТ.

Кто кого перехитрил? :D

[vba]
Код
Sub Мяу()
Dim r As Range, cl As Range, i&
Application.ScreenUpdating = False
     Set r = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
     For Each cl In r
         If Len(cl.Offset(, 1)) Then
         Else
             cl.Offset(, 2).Value = cl.Value
         End If
     Next
     r.Offset(, 2).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
     r.Offset(, 2).Value = r.Offset(, 2).Value
     For i = r.Count To 1 Step -1
         If Len(Cells(i, 2)) Then
         Else
             Rows(i).Delete
         End If
     Next
End Sub
[/vba]

Автор - RAN
Дата добавления - 19.04.2014 в 11:08
ant6729 Дата: Суббота, 19.04.2014, 12:29 | Сообщение № 14
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
hahah) Работает!!!
Спасибо)


Сообщение отредактировал ant6729 - Суббота, 19.04.2014, 13:34
 
Ответить
Сообщениеhahah) Работает!!!
Спасибо)

Автор - ant6729
Дата добавления - 19.04.2014 в 12:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как изменить расположение данных в таблице (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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