Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2014, 13:11   #1
lakcin
Пользователь
 
Регистрация: 24.08.2014
Сообщений: 12
По умолчанию Нужен макрос объединения одинаковых ячеек и...

Всем привет! Каждый день осуществляю выгрузку из 1С отчета в виде таблицы в формате Excel 2007. Расположение столбиков в отчете стандартное, а вот число строк в таблице всякий раз разное (1 и 2 строка всегда одинаковые)
Нужен макрос который проводит:

1. В столбце «Получатель» объединяет рядом стоящих одинаковых получателей (только вместе стоящих), то есть применяет команду «Объединить и поместить в центре»;

2. После этого действия подписать к каждому получателю (пробел и количество, которое к нему относится) из столбика «Количество», то есть там где получатель был объединен – нужно подписать общее его количество.

Прилагаю архив - начальный пример и как должно стать

Заранее большое спасибо за помощь!
Вложения
Тип файла: rar архив.rar (13.6 Кб, 40 просмотров)

Последний раз редактировалось lakcin; 12.09.2014 в 13:13.
lakcin вне форума Ответить с цитированием
Старый 12.09.2014, 14:49   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

выполните этот
Код:
Sub Union5Column()
  Dim r As Long, c As Long, DAsetting As Boolean
  r = 3: DAsetting = Application.DisplayAlerts:  Application.DisplayAlerts = False
  Do
    c = 1
    Do While Cells(r, 5) = Cells(r + c, 5)
      c = c + 1
    Loop
    If c > 1 Then
      With Cells(r, 5).Resize(c, 3)
        .WrapText = True
        .MergeCells = True
      End With
    End If
    Cells(r, 5) = Cells(r, 5) & " " & WorksheetFunction.Sum(Cells(r, 11).Resize(c, 2))
    r = r + c
  Loop Until IsEmpty(Cells(r, 5))
  Application.DisplayAlerts = DAsetting
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.09.2014, 17:02   #3
lakcin
Пользователь
 
Регистрация: 24.08.2014
Сообщений: 12
По умолчанию

Большое тебе СПАСИБО!
Пожалуйста просьба - напиши пожалуйста код, который объединяет ячейки с одинаковыми данными в таблице именно в столбике "№ заявки". Это не лень просто для меня данные коды сплошной лес.
Благодарю!!!
lakcin вне форума Ответить с цитированием
Старый 12.09.2014, 17:24   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

сделал, как показано в примере.

для меня код понятен, а вот задача теперь - нет!
у заявки Ш00021024 два разных получателя, заявка теперь должна выглядеть так: Ш00021024 16
так?
подозреваю, что теперь не я один не понимаю что надо сделать))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.09.2014, 17:31   #5
lakcin
Пользователь
 
Регистрация: 24.08.2014
Сообщений: 12
По умолчанию

IgorGO - спасибо твой код то что надо!

Задача проста - в столбике "№ заявки" объединить рядом стоящие ячейки с одинаковыми данными, то есть применить команду «Объединить и поместить в центре», и больше ничего не делать (не надо ничего добавлять и обращать внимание на получателя).

Спасибо!

Последний раз редактировалось lakcin; 12.09.2014 в 17:38.
lakcin вне форума Ответить с цитированием
Старый 12.09.2014, 17:38   #6
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Может сводная таблица поможет? Сортируйте в ней и объединяйте по любым параметрам и код писать не надо.
gling вне форума Ответить с цитированием
Старый 12.09.2014, 17:41   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub Union23Column()
  Dim r As Long, c As Long, DAsetting As Boolean
  r = 3: DAsetting = Application.DisplayAlerts:  Application.DisplayAlerts = False
  Do
    c = 1
    Do While Cells(r, 23) = Cells(r + c, 23)
      c = c + 1
    Loop
    If c > 1 Then
      With Cells(r, 23).Resize(c, 1)
        .WrapText = True
        .MergeCells = True
      End With
    End If
    r = r + c
  Loop Until IsEmpty(Cells(r, 23))
  Application.DisplayAlerts = DAsetting
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.09.2014, 17:50   #8
lakcin
Пользователь
 
Регистрация: 24.08.2014
Сообщений: 12
По умолчанию

СПАСИБО! ОЧЕНЬ ПОМОГ!!!
lakcin вне форума Ответить с цитированием
Старый 12.09.2014, 18:03   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

пожалуйста!
"эх, теряю былую легкость"
раньше бывало пишут "обьединить по получателю", а я-то сразу догадывался, что обьединять надо по заявкам и... сумма не нужна

при описании задачи "тщательнее надо" (С) М.Жванецкий

ЗЫ:
всем не скучной пятницы!!!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.09.2014, 21:24   #10
lakcin
Пользователь
 
Регистрация: 24.08.2014
Сообщений: 12
По умолчанию

IgorGO - )))

Столкнулся с проблемкой(( Как правильно объединить эти 2 макроса в один???

Последний раз редактировалось lakcin; 13.09.2014 в 15:14.
lakcin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для объединения ячеек Excel wadzik Microsoft Office Excel 12 24.10.2017 21:32
Макрос для объединения ячеек в Excel Vadim Lisovec Microsoft Office Excel 28 21.08.2013 12:53
макрос для объединения ячеек BAP9IT Microsoft Office Word 2 15.11.2012 19:43
Макрос для объединения ячеек с нулями SOS!!! DJTreeno Microsoft Office Excel 12 15.06.2011 14:30
Макрос для объединения одинаковых ячеек Internal2 Microsoft Office Excel 2 05.11.2009 14:00