Страницы: 1
RSS
Проверка заполненности ячеек в таблице.
 
Помогите переделать код (см. ниже) что бы проверял, заполненность ячеек не на форме а на листе ( т.е. конкретные ячейки, заполнены ли).  
 
Private Sub Proverka()  
  FormCorrect = False 'пока считаем что форма заполнена не вся  
If cbxFm3.Value = "" Then  
        MsgBox "Извините, но Вы не указали Ф.И.О. Получателя?"  
     ElseIf cbxFmq3.Value = "" Then  
           MsgBox "Извините, но Вы не указали номер отправления?"  
                 ElseIf cbxFmu3.Value = "" Then  
           MsgBox "Извините, но Вы не указали вид отправления?"  
        Else: FormCorrect = True 'форма заполнена  
  End If  
End Sub
 
Sub TestEmpty()  
If IsEmpty(Cells(1, 1)) Then MsgBox "..."  
End Sub
 
Большое спасибо!
 
Sub SendWorkbook()  
If IsEmpty(Cells(10, 3)) Then MsgBox "Âû íå óêàçàëè ôàìèëèþ"  
Exit Sub  
If IsEmpty(Cells(11, 3)) Then MsgBox "Âû íå óêàçàëè Èìÿ"  
Exit Sub  
If IsEmpty(Cells(12, 3)) Then MsgBox "Âû íå óêàçàëè îòêóäà"  
Exit Sub  
famalyvar = Cells(10, 3).Value  
OrgVar = Cells(12, 3).Value  
'îòïðàâêà âñåé êíèãè íà çàäàííûé àäðåñ  
   ActiveWorkbook.SendMail Recipients:="1111@111.ru", Subject:=famalyvar + " " + OrgVar  
 
End Sub  
Private Sub Worksheet_Change(ByVal Target As Range)  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, Range("C10:C11")) Is Nothing Then  
 
With Range("F31")  
 
.Value = Now  
.EntireColumn.AutoFit  
End With  
If Not Intersect(Target, Range("C10:C11")) Is Nothing Then  
 
With Range("E31")  
.Value = Application.UserName  
.EntireColumn.AutoFit  
End With  
End If  
End If  
End If  
End Sub  
 
 
Помогите плз с проверкой.. нужно что бы перед отправкой по почте проверялись определенные ячейки записано в них что то или нет.  
вот что у меня получилось. что не правильно?
 
Если Вы используете одиночный оператор If...Then, то располагайте все, что должно выполниться, в одну строку:  
 
If IsEmpty(Cells(10, 3)) Then MsgBox "...": Exit Sub  
If IsEmpty(Cells(11, 3)) Then MsgBox "...": Exit Sub  
 
и т.д.
 
Во второй процедуре какие-то непонятные повторы. Вроде так должно быть:  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, Range("C10:C11")) Is Nothing Then  
     
   With Range("F31")  
       .Value = Now  
       .EntireColumn.AutoFit  
   End With  
     
   With Range("E31")  
       .Value = Application.UserName  
       .EntireColumn.AutoFit  
   End With  
End If  
End Sub
 
{quote}{login=Казанский}{date=29.07.2010 09:21}{thema=}{post}Во второй процедуре какие-то непонятные повторы. Вроде так должно быть:  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
If Target.Cells.Count > 1 Then Exit Sub  
If Not Intersect(Target, Range("C10:C11")) Is Nothing Then  
     
   With Range("F31")  
       .Value = Now  
       .EntireColumn.AutoFit  
   End With  
     
   With Range("E31")  
       .Value = Application.UserName  
       .EntireColumn.AutoFit  
   End With  
End If  
End Sub{/post}{/quote}  
 
Спасибо помогло!  
{quote}{login=The_Prist}{date=29.07.2010 09:31}{thema=}{post}If Range(Cells(10, 3),Cells(12, 3)).Text = "" Then MsgBox "Всё заполняй!"  
Exit Sub{/post}{/quote}  
Мне нужно что бы разные сообщения выскакивали  :)  
а как за место    
.Value = Application.UserName  
 
вписить  
Sub Get_UserName()  
Dim sUserName As String  
sUserName = CreateObject("WScript.Network").UserName  
End Sub  
а то что то я не допетрю некак ?
 
проще  
 
.Value = CreateObject("WScript.Network").UserName
 
{quote}{login=The_Prist}{date=29.07.2010 09:51}{thema=}{post}Dim sUserName As String  
sUserName = CreateObject("WScript.Network").UserName  
.Value = sUserName  
 
P.S. А вообще все перемешалось и непонятно кто вопрос задал и на какой отвечать. Я отвечал DsA{/post}{/quote}  
 
Пасиба!!!
 
Еще вопросик как под отправку по почте сделать кнопку под формой ?
 
{quote}{login=The_Prist}{date=29.07.2010 10:18}{thema=Re: }{post}{quote}{login=1am3r}{date=29.07.2010 10:16}{thema=}{post}Еще вопросик как под отправку по почте сделать кнопку под формой ?{/post}{/quote}Я даже вопрос не понял. Что значит "кнопка под формой"? Под формой это как?{/post}{/quote}  
эм.. по другому, сделать кнопку  в определенном месте листа для отправки по почте.
 
{quote}{login=The_Prist}{date=29.07.2010 10:43}{thema=}{post}Вставляете любую автофигуру на лист{/post}{/quote}  
Дополню: и тащите её в "определённое" место.
 
{quote}{login=The_Prist}{date=29.07.2010 10:43}{thema=}{post}Вставляете любую автофигуру на лист-Правая кнопка мыши-Назначить макрос.{/post}{/quote}  
А что бы при печати она не была видна ?
 
В свойствах снимите галку "Выводить на печать"
 
{quote}{login=Юрий М}{date=29.07.2010 10:56}{thema=}{post}В свойствах снимите галку "Выводить на печать"{/post}{/quote}  
Спасибо!
 
ActiveWorkbook.SendMail Recipients:="1111@111.ru", Subject:=famalyvar + " " + OrgVar  
 
вот это отправляет файл по почте используя outlook  
каким способом можно сделать что бы отправлять файл с определенного адреса на прямую не используя outlook ?
 
Люди, добрые помогите, плиз.  
Мне нужен файл, где пользователю нужно заполнить определенные поля. И без заполнения этих полей Excel не давал бы ни сохранить, ни закрыть файл.  
 
Написала простейший макрос. Ссылается на данные в предыдущей ячейке. Теперь надо, чтобы при попытке сохранить он выдавал ошибку: "Не все поля заполнены". Как это можно сделать? И может макрос по лучше предложите, потому что мне его на определенном уровне надо остановить.  
 
А ещё, чтобы он не проверял первую строку.  
 
Заранее благодарю.
~~~      
 
{quote}{login=Мяу™}{date=30.07.2010 02:15}{thema=Заполнены не все обязательные поля - выдает ошибку.}{post}Люди, добрые помогите, плиз.  
Мне нужен файл, где пользователю нужно заполнить определенные поля. И без заполнения этих полей Excel не давал бы ни сохранить, ни закрыть файл.  
 
Написала простейший макрос. Ссылается на данные в предыдущей ячейке. Теперь надо, чтобы при попытке сохранить он выдавал ошибку: "Не все поля заполнены". Как это можно сделать? И может макрос по лучше предложите, потому что мне его на определенном уровне надо остановить.  
 
А ещё, чтобы он не проверял первую строку.  
 
Заранее благодарю.{/post}{/quote}  
Дубликат вопроса, ответил здесь: http://www.planetaexcel.ru/forum.php?thread_id=4833
 
{quote}{login=1am3r}{date=29.07.2010 12:14}{thema=}{post}ActiveWorkbook.SendMail Recipients:="1111@111.ru", Subject:=famalyvar + " " + OrgVar  
 
вот это отправляет файл по почте используя outlook  
каким способом можно сделать что бы отправлять файл с определенного адреса на прямую не используя outlook ?{/post}{/quote}  
 
Если у вас установлена WinXP - то так: http://excelvba.ru/code/CDO
Страницы: 1
Читают тему
Наверх