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

Вход

Регистрация

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

 

= Мир MS Excel/Сортировка принятых звонков по группам - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка принятых звонков по группам (Макросы/Sub)
Сортировка принятых звонков по группам
SicVolo Дата: Четверг, 22.02.2018, 23:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день! Подскажите пожалуйста, какие строки макроса надо напеисать, что бы согласно списку людей, которых нет в столбце "B", макрос ставил пустую ячейку или нолик в выгрузке которая справа, в столбце "Принято"? А то получается так, что если кого то нет, то он смещает вверх все значения? В данном случае, на работу не вышел сотрудник Прядилов, и в следствии чего, его нет в столбце "B"
К сообщению приложен файл: 8470697.xlsx (9.9 Kb)
 
Ответить
СообщениеДобрый день! Подскажите пожалуйста, какие строки макроса надо напеисать, что бы согласно списку людей, которых нет в столбце "B", макрос ставил пустую ячейку или нолик в выгрузке которая справа, в столбце "Принято"? А то получается так, что если кого то нет, то он смещает вверх все значения? В данном случае, на работу не вышел сотрудник Прядилов, и в следствии чего, его нет в столбце "B"

Автор - SicVolo
Дата добавления - 22.02.2018 в 23:59
Pelena Дата: Пятница, 23.02.2018, 10:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
SicVolo, здравствуйте. Вы уже во второй своей теме пишете про какой-то макрос, а сам макрос не показываете. Боюсь, что при таком подходе тема опять останется без ответа :(


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеSicVolo, здравствуйте. Вы уже во второй своей теме пишете про какой-то макрос, а сам макрос не показываете. Боюсь, что при таком подходе тема опять останется без ответа :(

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

Excel 2016
Pelena, Здравствуйте. В данном случае, мне надо макрос с нуля именно по данному Exel файлу, что бы он согласно фамилии перенес количество принятых звонков в столбы которые справа. Я могу полностью скинуть макрос, там задействованы 3 файла. Третий файл уже написан. Макрос в файле статистика.
К сообщению приложен файл: 5420675.xlsx (9.9 Kb) · 3345236.xlsm (29.5 Kb)
 
Ответить
СообщениеPelena, Здравствуйте. В данном случае, мне надо макрос с нуля именно по данному Exel файлу, что бы он согласно фамилии перенес количество принятых звонков в столбы которые справа. Я могу полностью скинуть макрос, там задействованы 3 файла. Третий файл уже написан. Макрос в файле статистика.

Автор - SicVolo
Дата добавления - 23.02.2018 в 10:50
SicVolo Дата: Пятница, 23.02.2018, 10:56 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
' Открытие файла
[vba]
Код
Dim WB1 As Workbook
Set WB1 = Application.Workbooks.Open("D:\Служебное\2\Макрос\Zvonok.xls")
[/vba]

Вот с этих строк должен начаться макрос для определения количества звонков сотрудников. Проблема в том, что он не учитывает людей, которых нет на работе. А я хочу, что бы он шел по алфавиту, и там, кого нет ставил ноль или пустую ячейку.
 
Ответить
Сообщение' Открытие файла
[vba]
Код
Dim WB1 As Workbook
Set WB1 = Application.Workbooks.Open("D:\Служебное\2\Макрос\Zvonok.xls")
[/vba]

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

Автор - SicVolo
Дата добавления - 23.02.2018 в 10:56
Pelena Дата: Пятница, 23.02.2018, 12:20 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Посмотрите так.

И в дополнение: очень много лишнего в макросе. Например, эти строки
[vba]
Код
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "Период"
[/vba]можно заменить на [vba]
Код
Range("A2") = "Период"
[/vba] От Select следует избавляться, т.к. это очень тормозит макрос
К сообщению приложен файл: 8310853.xlsm (29.2 Kb)


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

И в дополнение: очень много лишнего в макросе. Например, эти строки
[vba]
Код
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "Период"
[/vba]можно заменить на [vba]
Код
Range("A2") = "Период"
[/vba] От Select следует избавляться, т.к. это очень тормозит макрос

Автор - Pelena
Дата добавления - 23.02.2018 в 12:20
SicVolo Дата: Пятница, 23.02.2018, 22:28 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Спасибо Вам большое. Сейчас исправлю все) Приходится писать рекодером и править как мне надо. Очень многого не понимаю к сожалению.
 
Ответить
СообщениеPelena, Спасибо Вам большое. Сейчас исправлю все) Приходится писать рекодером и править как мне надо. Очень многого не понимаю к сожалению.

Автор - SicVolo
Дата добавления - 23.02.2018 в 22:28
SicVolo Дата: Воскресенье, 25.02.2018, 10:41 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Доброе утро! Подскажите пожалуйста. При копировании данных из столбцов в файл статистика, он копирует его как текст, помечая его зеленым уголком в ячейке. Как его можно скопировать как числовые значения, так как формат ячейки не помогает?
 
Ответить
СообщениеPelena, Доброе утро! Подскажите пожалуйста. При копировании данных из столбцов в файл статистика, он копирует его как текст, помечая его зеленым уголком в ячейке. Как его можно скопировать как числовые значения, так как формат ячейки не помогает?

Автор - SicVolo
Дата добавления - 25.02.2018 в 10:41
Pelena Дата: Воскресенье, 25.02.2018, 16:18 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Так нужно?
К сообщению приложен файл: 4529296.xlsm (29.3 Kb)


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

Автор - Pelena
Дата добавления - 25.02.2018 в 16:18
SicVolo Дата: Воскресенье, 25.02.2018, 21:24 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Добрый вечер. Он какой то нолиr лишний ставит в ячейку B13, B26, B39
 
Ответить
СообщениеPelena, Добрый вечер. Он какой то нолиr лишний ставит в ячейку B13, B26, B39

Автор - SicVolo
Дата добавления - 25.02.2018 в 21:24
Pelena Дата: Воскресенье, 25.02.2018, 21:39 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Так?
К сообщению приложен файл: 9036863.xlsm (29.3 Kb)


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

Автор - Pelena
Дата добавления - 25.02.2018 в 21:39
SicVolo Дата: Понедельник, 26.02.2018, 12:07 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Pelena, извините меня за наглость такую, но доверять могу только Вам) Я хочу вот эту статистику вести на каждом листе, согласно дню. То есть новый лист новый день. Лист должен обзываться дню, когда он создался, как я это сделал в поле период. Я прописал строки в самом верху макроса : sheets.add after:= activesheet
После чего, в вашем макросе «‘ Отерываем статистику по звонкам» добавил строки
Dim list_name as string
list_name = “Лист” + cstr(application.worksheets.count + 1)

Лист он создаёт, но вот статистику считать по звонкам он не хочет. То есть на Листе 2 или Лист 3 он считать звонки не хочет, а вот на Лист 1 все считает замечательно. И последний вопрос, как мне сделать так, что бы Файлы Zvonok и Export , после того как я с Ними поработал, они закрывались и сохранялись с именами Zvonok1, Zvonok2 в общем +1 был?

Файл я сброшу чуть позже, так как пишу с телефона на работе.
 
Ответить
СообщениеPelena, Pelena, извините меня за наглость такую, но доверять могу только Вам) Я хочу вот эту статистику вести на каждом листе, согласно дню. То есть новый лист новый день. Лист должен обзываться дню, когда он создался, как я это сделал в поле период. Я прописал строки в самом верху макроса : sheets.add after:= activesheet
После чего, в вашем макросе «‘ Отерываем статистику по звонкам» добавил строки
Dim list_name as string
list_name = “Лист” + cstr(application.worksheets.count + 1)

Лист он создаёт, но вот статистику считать по звонкам он не хочет. То есть на Листе 2 или Лист 3 он считать звонки не хочет, а вот на Лист 1 все считает замечательно. И последний вопрос, как мне сделать так, что бы Файлы Zvonok и Export , после того как я с Ними поработал, они закрывались и сохранялись с именами Zvonok1, Zvonok2 в общем +1 был?

Файл я сброшу чуть позже, так как пишу с телефона на работе.

Автор - SicVolo
Дата добавления - 26.02.2018 в 12:07
Pelena Дата: Понедельник, 26.02.2018, 16:26 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
SicVolo, эти вопросы уже выходят за рамки данной темы. Придётся создать новую, с файлом-примером


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

Автор - Pelena
Дата добавления - 26.02.2018 в 16:26
SicVolo Дата: Понедельник, 26.02.2018, 17:39 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Хорошо) Сейчас создам тему.
 
Ответить
СообщениеPelena, Хорошо) Сейчас создам тему.

Автор - SicVolo
Дата добавления - 26.02.2018 в 17:39
SicVolo Дата: Понедельник, 26.02.2018, 18:04 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Подскажите пожалуйста, а то, что при добавлении листа и записи макроса на Лист2, Лсит3 макрос по принятым звонкам, который Вы делали, перестает работать - это можно тут оставить? Файл прикладываю.
К сообщению приложен файл: 8867451.xlsm (40.5 Kb)


Сообщение отредактировал SicVolo - Понедельник, 26.02.2018, 18:04
 
Ответить
СообщениеPelena, Подскажите пожалуйста, а то, что при добавлении листа и записи макроса на Лист2, Лсит3 макрос по принятым звонкам, который Вы делали, перестает работать - это можно тут оставить? Файл прикладываю.

Автор - SicVolo
Дата добавления - 26.02.2018 в 18:04
Pelena Дата: Понедельник, 26.02.2018, 18:26 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Чтобы работал мой макрос, на новый лист должны быть записаны фамилии, а они у Вас пишутся на активный лист. Либо после вставки листа активируйте его, либо обращайтесь явно, то есть не Range("A4"), а Sheets(list_name).Range("A4")
А лучше используйте оператор With...End With


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЧтобы работал мой макрос, на новый лист должны быть записаны фамилии, а они у Вас пишутся на активный лист. Либо после вставки листа активируйте его, либо обращайтесь явно, то есть не Range("A4"), а Sheets(list_name).Range("A4")
А лучше используйте оператор With...End With

Автор - Pelena
Дата добавления - 26.02.2018 в 18:26
SicVolo Дата: Понедельник, 26.02.2018, 19:03 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena,
А лучше используйте оператор With...End With

Я к сожалению пока не умею работать с ними...

Не кидайте в меня камни, до меня немного туго доходит. Трудно дается.


Верно я Вас понимаю Вначале макроса всего я вставляю строчку [vba]
Код
Sheets(list_name).Activate
[/vba] и получается так
[vba]
Код
' Добавляем лист
Sheets.Add After:=ActiveSheet
Dim list_name As String
list_name = "Лист" + CStr(Application.Worksheets.Count + 1)
Sheets(list_name).Activate
[/vba]
Как вы и сказали, я сделал его активным, но он выдает ошибку.

Попробовал сделать обращение к каждой ячейке отдельно :
[vba]
Код
Sheets(list_name).Range("A4") = "Агафонова Алина Александровна"
Sheets(list_name).Range("A5") = "Баделина Лилия Мансуровна"
Sheets(list_name).Range("A6") = "Волгина Татьяна Михайловна"
Sheets(list_name).Range("A7") = "Дряхлова Екатерина Евгеньевна"
Sheets(list_name).Range("A8") = "Никифорова Марина Витальевна"
Sheets(list_name).Range("A9") = "Строев Алексей Юрьевич"
Sheets(list_name).Range("A10") = "Черновской Дмитрий Михайлович"
Sheets(list_name).Range("A11") = "Шмельков Дмитрий Юрьевич"
Sheets(list_name).Range("A12") = "Всего:"
[/vba]
Так же ошибка.


Сообщение отредактировал SicVolo - Понедельник, 26.02.2018, 20:21
 
Ответить
СообщениеPelena,
А лучше используйте оператор With...End With

Я к сожалению пока не умею работать с ними...

Не кидайте в меня камни, до меня немного туго доходит. Трудно дается.


Верно я Вас понимаю Вначале макроса всего я вставляю строчку [vba]
Код
Sheets(list_name).Activate
[/vba] и получается так
[vba]
Код
' Добавляем лист
Sheets.Add After:=ActiveSheet
Dim list_name As String
list_name = "Лист" + CStr(Application.Worksheets.Count + 1)
Sheets(list_name).Activate
[/vba]
Как вы и сказали, я сделал его активным, но он выдает ошибку.

Попробовал сделать обращение к каждой ячейке отдельно :
[vba]
Код
Sheets(list_name).Range("A4") = "Агафонова Алина Александровна"
Sheets(list_name).Range("A5") = "Баделина Лилия Мансуровна"
Sheets(list_name).Range("A6") = "Волгина Татьяна Михайловна"
Sheets(list_name).Range("A7") = "Дряхлова Екатерина Евгеньевна"
Sheets(list_name).Range("A8") = "Никифорова Марина Витальевна"
Sheets(list_name).Range("A9") = "Строев Алексей Юрьевич"
Sheets(list_name).Range("A10") = "Черновской Дмитрий Михайлович"
Sheets(list_name).Range("A11") = "Шмельков Дмитрий Юрьевич"
Sheets(list_name).Range("A12") = "Всего:"
[/vba]
Так же ошибка.

Автор - SicVolo
Дата добавления - 26.02.2018 в 19:03
SicVolo Дата: Понедельник, 26.02.2018, 19:07 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Я в соседней теме узнал про строчку с добавлением даты в наименование листа. Получается я добавляю еще строчки:

[vba]
Код
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = CStr(Date)
Dim list_name As String
list_name = "Лист" + CStr(Application.Worksheets.Count + 1)
[/vba]

Если правильно понимаю, то строчки [/code][/vba]list_name = "Лист" + CStr(Application.Worksheets.Count + 1)[/code][/vba] мне уже не нужны, верно?


Сообщение отредактировал SicVolo - Понедельник, 26.02.2018, 20:18
 
Ответить
СообщениеPelena, Я в соседней теме узнал про строчку с добавлением даты в наименование листа. Получается я добавляю еще строчки:

[vba]
Код
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = CStr(Date)
Dim list_name As String
list_name = "Лист" + CStr(Application.Worksheets.Count + 1)
[/vba]

Если правильно понимаю, то строчки [/code][/vba]list_name = "Лист" + CStr(Application.Worksheets.Count + 1)[/code][/vba] мне уже не нужны, верно?

Автор - SicVolo
Дата добавления - 26.02.2018 в 19:07
SicVolo Дата: Понедельник, 26.02.2018, 19:10 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Посмотрите, я удалил строчки
[vba]
Код
Dim list_name As String
list_name = "Лист" + CStr(Application.Worksheets.Count + 1)
[/vba]

оставил только
[vba]
Код
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = CStr(Date)
[/vba]
А в вашем макросе добавил [vba]
Код
With ThisWorkbook.Sheets(CStr(Date)).UsedRange
[/vba]
Вроде нормально получилось и все заработало.


Сообщение отредактировал SicVolo - Понедельник, 26.02.2018, 20:18
 
Ответить
СообщениеPelena, Посмотрите, я удалил строчки
[vba]
Код
Dim list_name As String
list_name = "Лист" + CStr(Application.Worksheets.Count + 1)
[/vba]

оставил только
[vba]
Код
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = CStr(Date)
[/vba]
А в вашем макросе добавил [vba]
Код
With ThisWorkbook.Sheets(CStr(Date)).UsedRange
[/vba]
Вроде нормально получилось и все заработало.

Автор - SicVolo
Дата добавления - 26.02.2018 в 19:10
Pelena Дата: Понедельник, 26.02.2018, 19:27 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
SicVolo, оформите все коды тегами с помощью кнопки # в режиме правки поста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеSicVolo, оформите все коды тегами с помощью кнопки # в режиме правки поста

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

Excel 2016
Pelena, Исправил
 
Ответить
СообщениеPelena, Исправил

Автор - SicVolo
Дата добавления - 26.02.2018 в 20:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка принятых звонков по группам (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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