Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос, копирующий строки опреденное количетсво раз.
 
Друзья!Д обрый день!
Прошу вашей помощи - может быть у кого-то есть заготовка.

Есть сводная таблица, в ней 3 столбца - Название Склада, Продукт, Сумма по полю продукт.
Требуется скопировать на отдельный лист или рядом (как в примере), при этом сделать это при помощи макроса: Название Склада, Продукт (Сумма по полю продукт) раз друг под другом, проделать данную операцию для каждого Название Склада.

Пример во вложении.
Благодарю Вас!
Изменено: Kolesnikov - 13.12.2018 22:10:25
Сбор уникальных данных из строки данных VBA (не сводная), Сбор уникальных данных из строки методами, отличными от сводной таблицы
 
Коллеги, добрый день.

Предположим я хочу узнать какие фрукты есть во всём мире.
Собрал массив данных, в котором очень много повторяющихся данных.

Подскажите пожалуйста как из этой строки собрать уникальные значения средствами VBA, без использования сводных таблиц.  
Рассылка писем VBA с вставкой таблицы в тело письма., Проблема при последовательной отправке.
 
Добрый день, уважаемые форумчане.

Использую макрос для рассылки данных о качестве продажи сладостей сотрудниками шоколадной фабрики.
Код
 Sub Send_Email()


Dim OutApp As Object
Dim OutMail As Object
Dim c, u As String
Dim name, count As Integer
Dim PlaceY As Range
Dim rDataR As Range
Dim sBody As String

u = Worksheets("settings").Range("b3")

With Application
    .Calculation = xlManual
    .ScreenUpdating = False
    .EnableEvents = False
End With

c = Worksheets("Settings").Range("b3").Value
sBody = Worksheets("Settings").Range("B4").Value


For i = 1 To c


Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)


name = ActiveWorkbook.Sheets("Settings").Range("c" & (i + 1)).Value


Worksheets("SMART").PivotTables("ÑâîäíàÿÒàáëèöà1").PivotFields("Ëîãèí îïåðàòîðà"). _
        ClearAllFilters
Worksheets("SMART").PivotTables("ÑâîäíàÿÒàáëèöà1").PivotFields("Ëîãèí îïåðàòîðà"). _
        CurrentPage = name
        
        ThisWorkbook.Worksheets("smart").Select
        
Range("A4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select

     sBody = Replace(sBody, Chr(10), "<br />")
     sBody = Replace(sBody, vbNewLine, "<br />")
     sBody = "<span style=""font-size: 14px; font-family: Arial"">" & sBody & "</span>"

Set rDataR = Selection
sTblBody = ConvertRngToHTM(rDataR)
sBody = Replace(sBody, "{TABLE}", sTblBody)


With OutMail
    .SentOnBehalfOfName = ActiveWorkbook.Sheets("Settings").Range("b1").Value
    .Subject = ActiveWorkbook.Sheets("Settings").Range("b2").Value
    .To = name & "@poctalion.mail"

    .HTMLBody = sBody
    .Display
   
'   .Send
    
    
End With




Set OutApp = Nothing
Set OutMail = Nothing

'Application.Wait Time:=Now + TimeSerial(0, 0, 2)
Next i



With Application 'Turning graphical options back
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
End With

Worksheets("settings").Activate

End Sub

Код
Function будет в следующем сообщении - сейчас слишком много символов. 

При работе данного кода первое письмо выглядит совершенно верно:

"1, png"

Однако все последующие принимают неудобоваримый вид:

"2, png"

Подскажите пожалуйста, что предпринять для корректной генерации писем?
Изменено: Kolesnikov - 21.04.2018 13:39:25
Вставка скриншота в письмо VBA, VBA
 
Добрый день.

Прошу Вас помочь.

Для рассылки по некоторым сотрудникам информации хочу сделать макрос.
Взял уже имеющиеся на просторах, в целом он устраивает.

Но не могу понять, почему-то на некоторых сотрудниках он накладывает график на скриншот, на некоторых нет.

Код
Sub Send_Email()

--------------------------------------------------------

With OutMail
.SentOnBehalfOfName = ActiveWorkbook.Sheets("Settings").Range("b1").Value
.Subject = ActiveWorkbook.Sheets("Settings").Range("b2").Value 'So called (by myself) head of letter.
.To = name & "qweqweqweqweqweqwe.RU" 


.HTMLBody = "<span LANG=EN>" & "Text" 
Call Get_Txt("321123545684") 'Time to create the image as a JPG file
.Attachments.Add TempFilePath & "321123545684.jpg", 0, 0

.HTMLBody = .HTMLBody & "Text"

'Let us combine object 2 with a body of message
.HTMLBody = .HTMLBody & "<BR>" & "<img src='cid:321123545684.jpg'" & "Text"

.Display 

End With


Set OutApp = Nothing
Set OutMail = Nothing

Next i


With Application 'Turning graphical options back
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With



End Sub





Sub Get_Txt(NameFile As String)

Dim PlaceY As Range

ThisWorkbook.Worksheets("smart").Activate 

Set PlaceY = ThisWorkbook.Worksheets("Smart").Range("A4:c20") 
PlaceY.CopyPicture

With ThisWorkbook.Worksheets("SMART").ChartObjects.Add(PlaceY.Left, PlaceY.Top, PlaceY.Width, PlaceY.Height)
.Activate
.Chart.Paste
.Chart.Export Environ$("temp") & "\" & NameFile & ".jpg", "JPG"
End With

Worksheets("SMART").ChartObjects(Worksheets("SMART").ChartObjects.count).Delete

Set PlaceY = Nothing

End Sub 
Проверка на наличие данных в области
 
Добрый день, уважаемые форумчане.

Подскажите пожалуйста, как с помощью макроса можно проверить есть ли во вкладках «1» и «2» данные в областях “С3:G1000”?
Если есть то на листе «Лист1» вставить в ячейку «B2» «+»
Фильтрация VBA: выбрать в столбце все, кроме заданных значений
 
Добрый день, Коллеги.

Следующим сообщением прикладываю файл.
Подскажите пожалуйста, как с VBA в столбце B:B  (количество имён бесконечно (образно) с помощью фильтра выбрать всех, кроме "Вакансия", благодарю Вас.  
Возврат значения из первого столбца строки максимального значения в столбце с определённым названием
 
Добрый день, Коллеги.

Прошу вашей помощи.
ФИО Съел пирогов с вишней Съел пирогов с грибами xx x x
Маша 10 13 xx x x
Саша 12 15 xx x x
Олег 13 10 xx x x
Хочу с помощью формулы вернуть Имя человека, который Съел больше всего пирогов с грибами.

Проблема в том, что постоянно двигаются столбцы и точный номер не известен.
Поможет только ПОИСКПОЗ.  
Изменено: Kolesnikov - 22.01.2018 15:23:15
Разрыв связей в документе при помощи макроса, breaklink
 
Коллеги, добрый день.

Периодически при работе с документа через макрос происходит появление таблички с запросом на обновление связей.
Подскажите пожалуйста, как можно отключить данный запрос? Он полностью останавливает работу программы.  
Изменено: Kolesnikov - 18.01.2018 15:55:10
Обработка ошибок в цикле
 
Коллеги, добрый день.

В куске кода ниже происходит проверка на наличие файлов из списка в файле Excel.
Если есть файл (открывается), то в ячейке правее ставим "+", в противном случае (любая ошибка) ставим "-".

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

Или можно ли сделать это проще?
Код
Do
Range("a2").Activate
bookname = ActiveCell.Offset(r, c).Range("A1")

On Error GoTo Label

Workbooks.Open Filename:= _
        bookadr & "/" & bookname
Workbooks(bookname).Close

c = c + 1
ActiveCell.Offset(r, c).Range("A1").Select
ActiveCell = "+"
c = c - 1

GoTo Labey

Label:
c = c + 1
ActiveCell.Offset(r, c).Range("A1").Select
ActiveCell = "-"
c = c - 1

Labey:
r = r + 1
i = i + 1
Loop Until i = 15
Изменено: Kolesnikov - 17.01.2018 17:43:08
Группа рассылок из Excel в Outlook (VBA), Прошу помочь с созданием группы рассылки по списку из Excel
 
Доброго времени суток, коллеги.

Столкнулся с задачей: необходимо в созданную группу рассылок (в адресной книге редактируемый список, доступный всем) добавить пользователей.
К сожалению в ручном режиме можно добавлять только по 1-му человеку, а их более 2000 человек, что полностью исключает ручное внесение.

Как решение вижу только написание макроса, который бы по одному добавлял из списка в Excel (генерацию которого тоже хочу автоматизировать), в группу Outlook.

Прошу подсказать как можно реализовать данную задумку при условии, что никогда с Outlook не взаимодействовал с точки зрения VBA.  
Страницы: 1
Наверх