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

Страницы: 1 2 След.
Обновление остатков в Google sheet, Автоматизация остатков
 
День добрый,
Нужно настроить автоматическое обновление остатков. Наименования товаров и количество - на первых 3 листах, лист с остатками - 4
Надо всё подвязать к 4 листу

Связь в тг [УДАЛЕНО]
Изменено: Юрий М - 20.02.2024 19:00:57
Изменение значения выделенной ячейки, скрипт
 
Цитата
написал:
Цитата
Andrey Melnikov написал:
Макрос ниже работает
Если учесть, что ни ниже, ни выше макросов нет.
Браво!    
Уж извольте, проблема решена. Вот корректный скрипт:
Код
function _61test() {
  var q = SpreadsheetApp.getActiveSpreadsheet()
  var cellD1 = q.getActiveSheet().getActiveRange().getValue();
  var minu = cellD1 - 61;
  var s = q.getActiveSheet().getActiveRange().setValue(minu);
};

Изменение значения выделенной ячейки, скрипт
 
Цитата
написал:
Цитата
Andrey Melnikov написал: есть какие-нибудь мысли по поводу решения проблемы?
Обратиться на форум по гуглтаблицам.
Понял, думал эксель-братушки смогут помочь...
Изменение значения выделенной ячейки, скрипт
 
Цитата
написал:
Цитата
написал:
но почему-то ничего не происходит.
Потому-что это жава-скрипт непонятный, а в vba-шке все просто и в нем все шарят )
Может есть какие-нибудь мысли по поводу решения проблемы?
Изменение значения выделенной ячейки, скрипт
 
Код
function _61test() {
  var q = SpreadsheetApp.getActiveSpreadsheet()
  var cellD1 = q.getActiveSheet().getCurrentCell().getValue();
  var minu = cellD1 - 61;
};
Убрал selection. - скрипт начал работать, но почему-то ничего не происходит.
Изменение значения выделенной ячейки, скрипт
 
Привет, как настроить скрипт, чтобы выделенная ячейка при использовании макроса меняла значение. Допустим было значение в ячейке 185 - выделяю ячейку, нажимаю макрос - значение стало 166.
Код ниже не работает, error - selection.getCurrentCell()
Код
function _61test() {
  var q = SpreadsheetApp.getActiveSpreadsheet()
  var cellD1 = q.getActiveSheet().selection.getCurrentCell().getValue();
  var minu = cellD1 - 61;
};
Макрос ниже работает, но он меняет, только значение ячейки В5, а нужно "по нажатию"
Код
function myFunction() {
  var q = SpreadsheetApp.getActiveSpreadsheet()
  var cellD1 = q.getActiveSheet().getRange("B5").getValue();
  var minu = cellD1 - 61;
  var s = q.getActiveSheet().getRange("B5").setValue(minu);
};
Отзывы о работодателях и исполнителях, Посмотрите, прежде чем взять/предложить работу
 
Заказывал работу у R Dmitry ("переделка" макросов с аутлук на зебат)
Работа выполнена в срок и оперативно. Рекомендую !!!
перенастроить макросы с аутлука на бат
 
добрый день, сможете помочь за вознаграждение перенастроить макросы с аутлука на бат
телеграмм для связи  удалено  [МОДЕРАТОР]
Изменено: vikttur - 08.11.2021 10:26:57
The bat. Настроить макрос на отправку сообщений
 
БМВ, спасибо
The bat. Настроить макрос на отправку сообщений
 
Добрый день, подскажите, как перенастроить этот же макрос на The bat, сейчас все работает отлично, но в аутлуке
Макрос для рассылки писем
 
New,  поправил макрос, вроде всё запускается, но почему-то не создаются сообщения, которые должны отправлятся с данных адерсов  x22222@mail.ru и x33333@mail.ru", если убираю 3-й адрес, то всё ОК работет
Код
lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
Dim sUs$
    sUs = "x11111@mail.ru"
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)
        With objMail
             If lr >= lLastR - 1 Then
                 sUs = "x22222@mail.ru"
             End If
             If lr >= lLastR - 2 Then
                 sUs = "x33333@mail.ru"
             End If
             Set .SendUsingAccount = objOutlookApp.Session.Accounts.Item(sUs)
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
                 If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
                 End If
            End If
            .display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
    Next lr       
Макрос для рассылки писем
 
Добрый день, подскажите в чем ошибка кода ниже, есть подозрения, что чего-то не хватает с IF,  но не могу понять чего
Код
Dim sUs$    sUs = "12345@mail.ru"
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)
        With objMail
          If lr >= lLastR - 1 Then                 
                 sUs = "54321@mail.ru"
             If lr >= lLastR - 1 Then                
                 sUs = "xxxx1@gmail.com"
             End If
             Set .SendUsingAccount = objOutlookApp.Session.Accounts.Item(sUs)

Макрос на отправку сообщений с разных учетных записей
 
Дмитрий, подскажите, как в эту систему можно добавить 3 и более адресов, попытался так, но безуспешно

Код
  With objMail
             If lr >= lLastR - 1 Then
                 sUs = "54321@mail.ru"
             If lr >= lLastR - 1 Then                 
                 sUs = "xxxx1@gmail.com"
             End If
Изменено: Andrey Melnikov - 09.02.2021 17:02:40
Макрос на отправку сообщений с разных учетных записей
 
Спасибо,  но в итоге надо было взять адреса в кАвычки и всё заработало, ниже рабочий макрос ! Ещё раз огромное спасибо !!
Код
Sub sendmail()

Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
      
    Application.ScreenUpdating = False
    
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
Dim sUs$
    sUs = "12345@mail.ru"
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)
        With objMail
             If lr >= lLastR - 1 Then
                 sUs = "54321@mail.ru"
             End If
             Set .SendUsingAccount = objOutlookApp.Session.Accounts.Item(sUs)
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
                 If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
                 End If
            End If
            .display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
    Next lr
          
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Макрос на отправку сообщений с разных учетных записей
 
Код
Sub sendmail()

Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
      
    Application.ScreenUpdating = False
    
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
    'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'создаем сообщение
        With objMail
    Dim sUs$
        sUs = 12345@mail.ru
        For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)
        With objMail
             If lr >= lLastR - 2 Then
                 sUs = 54321@mail.ru
             End If
             Set .SendUsingAccount = objOutlookApp.Session.Accounts.Item("sUs")
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
                 If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
                 End If
            End If
            .display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
    Next lr
          
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub

Дмитрий, красным выделяются строки   sUs = 12345@mail.ru и sUs = 54321@mail.ru и выскакивает ошибка - Syntax Error, через F1 попытлася решить проблему, но безуспешно, help)

Перепробовал как только их не корректировать, но толку нет, вечно выскакивает ошибка Syntax Error
Макрос на отправку сообщений с разных учетных записей
 
Код
Sub sendmail()

Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
      
    Application.ScreenUpdating = False
    
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
    'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'создаем сообщение
        With objMail
        Set .SendUsingAccount = objOutlookApp.Session.Accounts.Item("12345@mail.ru")
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
                 If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
                 End If
            End If
            .send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
    Next lr
          
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub

Добрый день, подскажите, что необходимо добавить в макрос, чтобы была возможность отправлять  2 крайних сообщения с другой учетки не 12345@mail.ru, а условно 54321@mail.ru, но только 2 крайних сообщения, заранее благодарю
Если это не возможно, просьба помочь, как данную проблему можно решить  
Перенос (копирование) строк и столбцов
 
Добрый день, подскажите, пожалуйста возможен ли перенос ячеек и столбцов с одного файла в другой, расположенный на рабочем столе

у меня сейчас присутствует такой макрос, подскажите что надо прописать, чтобы до изменений в таблицы (до удаления ячеек) часть таблицы перенеслась в другой файл, который расположен на рабочем столе с названием 3 грубо говоря

Код
Sub Svodka()
'
' Svodka Макрос
'
' Сочетание клавиш: Ctrl+q
'
    Sheets("1").Select
    Sheets("2").Visible = True
    Sheets("1").Select
    ActiveWindow.SelectedSheets.Delete
    Columns("E:H").Select
    Selection.Delete Shift:=xlToLeft
    Columns("L:O").Select
    Selection.Delete Shift:=xlToLeft
    Range("K12").Select
    ActiveWindow.SmallScroll Down:=12
    ActiveWorkbook.SaveAs Filename:="C:\Users\Desktop\1.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Цитата
Добрый день, нужно так:
Благодарю, всё заработало  
Несколько вложений в одном письме
 
Макрос работает, все хорошо, но почему-то при отправке автоматически в копию ставится Почта, которая по умолчанию стоит, можно как-нибудь это убрать??
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Письмо получается в таком виде, если никаких макросов не использовать, а просто отправить
Это как раз то что нужно, возможно ли такое в макросе провернуть
Сейчас переставил почту по умолчанию на novo@ , но всё равно все сообщения созданные с помощью макроса отправляются с другой почты  8-0  
Несколько вложений в одном письме
 
Заработало, Дмитрий, я Вас благодарю, таким памятник при жизни надо ставить !

Вот рабочий код, для всех - нуждающихся
Код
Sub sendmail()
 
Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
       
    Application.ScreenUpdating = False
     
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
     
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
    'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'создаем сообщение
        With objMail
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
            End If
            Dim asp, s$, sf
             s = Cells(lr, 5).Value
             If s <> "" Then
                 asp = Split(s, ";")
                 For Each sf In asp
                      If Dir(sf) <> "" Then
                        .Attachments.Add sf
                      End If
                Next
            End If
           .Display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
        Next lr
           
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Цитата

интересно. И чем именно не подходит, если работает? Можете как-то пояснить свою позицию?

Все сообщения получаются в таком формате, а необходимо, чтобы они были просто от Novo@...
Несколько вложений в одном письме
 
Цитата
Настоятельно рекомендую привыкнуть прикладывать примеры в файлах Excel
Файл во вложении, благодарю, возникает 52 ошибка при использовании Вашего кода  
Изменено: Andrey Melnikov - 02.09.2020 17:31:27
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Цитата
возможно, имеет смысл вывести на лист все учетные записи(в статье есть готовые код) и сверить - верно ли указываете в коде(вдруг где пробел затесался, а Вы его не учли).
Учетные записи вывел на лист,  .SentOnBehalfOfName = "account2@mail.thing" - работает хорошо, но это не подходит нам
.SendUsingAccount = "account2@mail.thing" - не работает, макрос создаётся, но письма посылаются с почты по умолчанию
Изменено: Andrey Melnikov - 02.09.2020 16:50:36
Несколько вложений в одном письме
 
Цитата
надо несколько раз вызвать метод .Attachments.Add, указав поочередно каждое вложение.
У меня макрос стоит на создание нескольких сообщений, при  .Attachments.Add, к каждому сообщению будут добавляться одни и те же вложения
Можно ли как-нибудь в функцию ниже добавить такую возможность
Код
If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
End If
Изменено: Andrey Melnikov - 02.09.2020 16:10:05
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Цитата
а такая учетная запись реально создана? Или Вы просто какой-то адрес вбили и хотите, чтобы отправка от него шла?
Учетная запись (почта) создана и внесена в outlook ( использую я учетку с другим названием это просто, как пример  
Изменено: Andrey Melnikov - 02.09.2020 15:55:46
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Цитата
.SendUsingAccount = "имя учетной записи"
Код
Sub sendmail()

Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
      
    Application.ScreenUpdating = False
    
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    
    
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
    'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'создаем сообщение
        With objMail
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
                 If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
                 End If
            End If
            .SendUsingAccount = "testmail@mail.ru"
            .Display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
    Next lr
          
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Написал, но, всё также - отправка осуществляется с почты по умолчанию  
Несколько вложений в одном письме
 
Добрый день, подскажите, пожалуйста, как вставить N-количество вложений в одно письмо
Код
Sub sendmail()

Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
      
    Application.ScreenUpdating = False
    
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
    'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
    For lr = 2 To lLastR
        Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
        'создаем сообщение
        With objMail
            .To = Cells(lr, 1).Value 'адрес получателя
            .CC = Cells(lr, 2).Value 'копия
            .BCC = Cells(lr, 3).Value 'адрес для скрытой копии
            .Subject = Cells(lr, 4).Value 'тема сообщения
            .Body = Cells(lr, 6).Value 'текст сообщения
            If Not IsEmpty(Cells(lr, 5)) Then
                 If Dir(Cells(lr, 5).Value) <> "" Then
                 .Attachments.Add Cells(lr, 5).Value
                 End If
            End If
            .Display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
        End With
    Next lr
          
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Вот код, пытаюсь через ;  в ячейке с вложениями прописать пути к файлам грубо говоря: Файл1.xlsx; Файл2.xlsx
Но макрос не запускается, вылетает 52 ошибка, не правильное название в файле :( убираю Файл2.xlsx, и с одним вложением всё прекрасно работает  
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 


Дмитрий, у меня получается вот такой Outlook, я пытаюсь с разных POP ящиков отправить сообщения, но  всегда отправляется с первого, который по умолчанию стоит.
Неужели, возможно это использовать только, когда Outlook закрыт через код ниже:
Код
  'objOutlookApp.Session.Logon "profile","1234",False, True
Где
"profile" - имя аккаунта
"1234" - пароль

Возможно ли, что-нибудь добавить сюда, чтобы всё было окей
Код
Set objOutlookApp = CreateObject("Outlook.Application")
    objOutlookApp.Session.Logon
Изменено: Andrey Melnikov - 02.09.2020 11:38:50
Отправка писем с других почтовых ящиков (которые также имеются в Outlook)
 
Цитата
1.SentOnBehalfOfName = "123@mail.ru"
Благодарю, но мне необходимо отправить письмо с другой учетной записи, не от другого имени  
Страницы: 1 2 След.
Наверх