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

Вход

Регистрация

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

 

= Мир MS Excel/Условия для отправки autoemail - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условия для отправки autoemail (Макросы/Sub)
Условия для отправки autoemail
Kassandra Дата: Среда, 14.10.2015, 14:04 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, помогите, пожалуйста, добавить еще одно условие перед отправкой электронного письма =)
существующее условие: если колонки 21/25/29/33 равны 31/34/36/18/99, нужно добавить еще одно условие перед существующим.
Вот это: если сумма колонок 21+27+31+35 равна колонке 20
К сообщению приложен файл: -Suivi_de_Vols-.xlsm (44.0 Kb)
 
Ответить
СообщениеЗдравствуйте, помогите, пожалуйста, добавить еще одно условие перед отправкой электронного письма =)
существующее условие: если колонки 21/25/29/33 равны 31/34/36/18/99, нужно добавить еще одно условие перед существующим.
Вот это: если сумма колонок 21+27+31+35 равна колонке 20

Автор - Kassandra
Дата добавления - 14.10.2015 в 14:04
KSV Дата: Среда, 14.10.2015, 15:08 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Можно добавить первыми строками: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)

    With Rows(Target.Row)
        If .Cells(23) + .Cells(27) + .Cells(31) + .Cells(35) <> .Cells(20) Then Exit Sub
    End With

...

[/vba]
К сообщению приложен файл: 5950601.xlsm (48.4 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеДобрый день!
Можно добавить первыми строками: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)

    With Rows(Target.Row)
        If .Cells(23) + .Cells(27) + .Cells(31) + .Cells(35) <> .Cells(20) Then Exit Sub
    End With

...

[/vba]

Автор - KSV
Дата добавления - 14.10.2015 в 15:08
Kassandra Дата: Среда, 14.10.2015, 16:35 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
не работает чего-то =(
подскажите куда именно вставить ваш код =)
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)

Dim TablCode
Dim Email_Subject, Email_Send_From, Email_Send_To, _
   Email_Cc, Email_Bcc, Email_Body As String
Dim Mail_Object, Mail_Single As Variant

TablCode = Array(31, 34, 36, 18, 99)
TablTargetColumns = Array(21, 25, 29, 33)
TablNoemptyColumns = Array(24, 28, 32, 36)

notEmpty = False

For I = LBound(TablNoemptyColumns) To UBound(TablNoemptyColumns)

  If Not IsEmpty(Target.Parent.Cells(Target.Row, TablNoemptyColumns(I)).Value) And _
     Target.Parent.Cells(Target.Row, TablNoemptyColumns(I) - 2).Value <> "99A" Then

    OneOfValues = False
    For Each c In TablCode

      If c = Target.Parent.Cells(Target.Row, TablTargetColumns(I)).Value Then
      sumtrue = (Cells(Target.Row, 21).Value + Cells(Target.Row, 27).Value + Cells(Target.Row, 31).Value _
+ Cells(Target.Row, 35).Value) = Cells(Target.Row, 20).Value

If notEmpty And sumtrue Then

        OneOfValues = True
        Exit For
      End If
    Next c
    If OneOfValues Then
      notEmpty = True
      Exit For
    End If
End If
  Next

If notEmpty Then

                    
                    'Macro email

-------------
------------
---------------
debugs:

                If Err.Description <> "" Then MsgBox Err.Description

                '----------------------------------------------------------------
           End If
End Sub
[/vba]
 
Ответить
Сообщениене работает чего-то =(
подскажите куда именно вставить ваш код =)
[vba]
Код

Private Sub Worksheet_Change(ByVal Target As Range)

Dim TablCode
Dim Email_Subject, Email_Send_From, Email_Send_To, _
   Email_Cc, Email_Bcc, Email_Body As String
Dim Mail_Object, Mail_Single As Variant

TablCode = Array(31, 34, 36, 18, 99)
TablTargetColumns = Array(21, 25, 29, 33)
TablNoemptyColumns = Array(24, 28, 32, 36)

notEmpty = False

For I = LBound(TablNoemptyColumns) To UBound(TablNoemptyColumns)

  If Not IsEmpty(Target.Parent.Cells(Target.Row, TablNoemptyColumns(I)).Value) And _
     Target.Parent.Cells(Target.Row, TablNoemptyColumns(I) - 2).Value <> "99A" Then

    OneOfValues = False
    For Each c In TablCode

      If c = Target.Parent.Cells(Target.Row, TablTargetColumns(I)).Value Then
      sumtrue = (Cells(Target.Row, 21).Value + Cells(Target.Row, 27).Value + Cells(Target.Row, 31).Value _
+ Cells(Target.Row, 35).Value) = Cells(Target.Row, 20).Value

If notEmpty And sumtrue Then

        OneOfValues = True
        Exit For
      End If
    Next c
    If OneOfValues Then
      notEmpty = True
      Exit For
    End If
End If
  Next

If notEmpty Then

                    
                    'Macro email

-------------
------------
---------------
debugs:

                If Err.Description <> "" Then MsgBox Err.Description

                '----------------------------------------------------------------
           End If
End Sub
[/vba]

Автор - Kassandra
Дата добавления - 14.10.2015 в 16:35
KSV Дата: Среда, 14.10.2015, 17:13 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
подскажите куда именно вставить ваш код

а вложенный файл посмотреть не судьба? :)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
подскажите куда именно вставить ваш код

а вложенный файл посмотреть не судьба? :)

Автор - KSV
Дата добавления - 14.10.2015 в 17:13
Kassandra Дата: Среда, 14.10.2015, 17:25 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, спасибо Вам огромнейшее!!! все работает =) просто сначало чего-то не работало. но сейчас все отлично =)
 
Ответить
СообщениеKSV, спасибо Вам огромнейшее!!! все работает =) просто сначало чего-то не работало. но сейчас все отлично =)

Автор - Kassandra
Дата добавления - 14.10.2015 в 17:25
NICoPOF Дата: Четверг, 15.10.2015, 17:04 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007,
HI
I updated flie but now is not wrking, the mail is sent when I write myself cell 20 is automatic. Do you have a solution for that?
К сообщению приложен файл: TEST_OK.xlsm (82.5 Kb)
 
Ответить
СообщениеHI
I updated flie but now is not wrking, the mail is sent when I write myself cell 20 is automatic. Do you have a solution for that?

Автор - NICoPOF
Дата добавления - 15.10.2015 в 17:04
Kassandra Дата: Четверг, 15.10.2015, 20:07 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, перевожу сообщение выше: я обновил файл, но сейчас он не работает, письмо отправляется, только тогда, когда я сам заполняю колонку 20, но когда она рассчитывается автомотически, письмо не отправляется ( а надо!), Вы можете решить эту проблему? =)
 
Ответить
СообщениеKSV, перевожу сообщение выше: я обновил файл, но сейчас он не работает, письмо отправляется, только тогда, когда я сам заполняю колонку 20, но когда она рассчитывается автомотически, письмо не отправляется ( а надо!), Вы можете решить эту проблему? =)

Автор - Kassandra
Дата добавления - 15.10.2015 в 20:07
KSV Дата: Четверг, 15.10.2015, 22:51 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Формула в столбце Т, помимо числового значения, возвращает и пустую строку.
кстати, удалив избыточные условия, ее можно сократить до
Код
=ЕСЛИ(S11>R11;S11-R11;"")

Если речь о том, что письмо нужно отправлять, при пустых значениях в ячейках столбцов 20,23,27,31,35, то нужно так: [vba]
Код
    With Rows(Target.Row)
        If .Cells(23) + .Cells(27) + .Cells(31) + .Cells(35) <> Val(.Cells(20)) Then Exit Sub
    End With
[/vba]
Если речь о другом, то опишите подробнее.
К сообщению приложен файл: TEST_OK_.xlsm (78.5 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеФормула в столбце Т, помимо числового значения, возвращает и пустую строку.
кстати, удалив избыточные условия, ее можно сократить до
Код
=ЕСЛИ(S11>R11;S11-R11;"")

Если речь о том, что письмо нужно отправлять, при пустых значениях в ячейках столбцов 20,23,27,31,35, то нужно так: [vba]
Код
    With Rows(Target.Row)
        If .Cells(23) + .Cells(27) + .Cells(31) + .Cells(35) <> Val(.Cells(20)) Then Exit Sub
    End With
[/vba]
Если речь о другом, то опишите подробнее.

Автор - KSV
Дата добавления - 15.10.2015 в 22:51
Kassandra Дата: Пятница, 16.10.2015, 19:56 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Проблема в следующем: в столбце R заносится время по расписанию, в стобце S человек вручную пишет фактитческое время, в столбце T прописывается автоматически разница, в стобцах 21/25/29/33 прописывается код причины опоздания, в столбцах 23/27/31/35 прописывается время опоздания каждой причины. так вот изначально письмо отправлялось каждый раз по каждой причины и поэтому писем приходило очень много.
Решено было сделать так, что бы даже если пропысывается несколько важных причин задержки, приходило только одно письмо, и поэтому понадобилась формула что бы письмо отправлялось только после того. как суммна столбцов 23/27/31/35 (то есть время) было равно стобцу T (20), т.е. если опоздание составило, например, 20 мин. челолвек может расписать либо одну причину и поставить в столбец 23 20 мин, либо 4 причины. расписывая каждую причину по 5 мин.

Сейчас проблема состоит в том, что если столбец T(20) рассчитывается автоматически по формуле. то письмо не отправляется, а если прописать вручную, то оправляется, нужно что бы автоматически по формуле рассчитывалось и отправлялось =)
К сообщению приложен файл: TEST_3.xlsm (82.3 Kb)
 
Ответить
СообщениеKSV, Проблема в следующем: в столбце R заносится время по расписанию, в стобце S человек вручную пишет фактитческое время, в столбце T прописывается автоматически разница, в стобцах 21/25/29/33 прописывается код причины опоздания, в столбцах 23/27/31/35 прописывается время опоздания каждой причины. так вот изначально письмо отправлялось каждый раз по каждой причины и поэтому писем приходило очень много.
Решено было сделать так, что бы даже если пропысывается несколько важных причин задержки, приходило только одно письмо, и поэтому понадобилась формула что бы письмо отправлялось только после того. как суммна столбцов 23/27/31/35 (то есть время) было равно стобцу T (20), т.е. если опоздание составило, например, 20 мин. челолвек может расписать либо одну причину и поставить в столбец 23 20 мин, либо 4 причины. расписывая каждую причину по 5 мин.

Сейчас проблема состоит в том, что если столбец T(20) рассчитывается автоматически по формуле. то письмо не отправляется, а если прописать вручную, то оправляется, нужно что бы автоматически по формуле рассчитывалось и отправлялось =)

Автор - Kassandra
Дата добавления - 16.10.2015 в 19:56
NICoPOF Дата: Пятница, 16.10.2015, 20:40 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007,
find solution
[vba]
Код
If Round(.Cells(23) + .Cells(27) + .Cells(31) + .Cells(35) - .Cells(20), 6) Then Exit Sub
[/vba]

thank you bye
 
Ответить
Сообщениеfind solution
[vba]
Код
If Round(.Cells(23) + .Cells(27) + .Cells(31) + .Cells(35) - .Cells(20), 6) Then Exit Sub
[/vba]

thank you bye

Автор - NICoPOF
Дата добавления - 16.10.2015 в 20:40
NICoPOF Дата: Пятница, 30.10.2015, 05:18 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007,
NICoPOF,
Наконец он работает в два раза, из-за колонны Т. столбец имеет автоматическую формулу, автоматически рассчитывает время задержки.
Макрос работает, если я иду себе даже время задержки, но не тогда, когда он начинает automatiqeumetn в колонке Т.
 
Ответить
СообщениеNICoPOF,
Наконец он работает в два раза, из-за колонны Т. столбец имеет автоматическую формулу, автоматически рассчитывает время задержки.
Макрос работает, если я иду себе даже время задержки, но не тогда, когда он начинает automatiqeumetn в колонке Т.

Автор - NICoPOF
Дата добавления - 30.10.2015 в 05:18
Kassandra Дата: Пятница, 30.10.2015, 09:23 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Перевожу, написанное выше NICoPOF (он француз, переводил гугл транслейтором ) =)
В конечном счете. работает только на половину из-за колонки Т. Эта колонка имеет формулу, которая автоматически просчитывает время задержки.
Макро работает только тогда, когда вручную прописать время. но не тогда когда оно просчитывается автоматически в колонке Т
 
Ответить
СообщениеKSV, Перевожу, написанное выше NICoPOF (он француз, переводил гугл транслейтором ) =)
В конечном счете. работает только на половину из-за колонки Т. Эта колонка имеет формулу, которая автоматически просчитывает время задержки.
Макро работает только тогда, когда вручную прописать время. но не тогда когда оно просчитывается автоматически в колонке Т

Автор - Kassandra
Дата добавления - 30.10.2015 в 09:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Условия для отправки autoemail (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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