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

Страницы: 1 2 След.
Отправка почты без использования почтовых программ
 
Немного модифицировал процедуру и вынес в модуль, но по прежнему не работает. Нет соединения с интернетом. Пробовал в разных сетях.  
 
Public Sub SendMail(Кому As String, Тема As String, Сообщение As String, АдресФайла As String)  
      Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"  
      Dim oCDOCnf As Object, oCDOMsg As Object  
      Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String  
      On Error Resume Next  
      'Назначаем конфигурацию CDO  
      Set oCDOCnf = CreateObject("CDO.Configuration")  
      With oCDOCnf.Fields  
             .Item(CDO_Cnf & "sendusing") = 2  
             .Item(CDO_Cnf & "smtpauthenticate") = 2  
             .Item(CDO_Cnf & "smtpserverport") = 587  
             .Item(CDO_Cnf & "smtpusessl") = True  
             .Item(CDO_Cnf & "smtpserver") = "smtp.gmail.com"  
             .Item(CDO_Cnf & "sendusername") = "info@visit-karelia.ru"  
             .Item(CDO_Cnf & "sendpassword") = "password"  
             .Update  
      End With  
      'Создаем сообщение  
      Set oCDOMsg = CreateObject("CDO.Message")  
      With oCDOMsg  
             Set .Configuration = oCDOCnf  
             .BodyPart.Charset = "koi8-r"  
             .From = "info@visit-karelia.ru"  
             .To = Кому  
             .BCC = "info@visit-karelia.ru"  
             .Subject = Тема  
             .TextBody = Сообщение  
             If Len(АдресФайла) > 0 Then .AddAttachment АдресФайла  
             .Send  
      End With  
 
      Select Case Err.Number  
      Case -2147220973: sMsg = "Нет доступа к Интернет"  
      Case -2147220975: sMsg = "Отказ сервера SMTP"  
      Case 0: sMsg = "Письмо отправлено"  
      End Select  
      MsgBox sMsg, vbInformation  
      Set oCDOMsg = Nothing: Set oCDOCnf = Nothing  
End Sub
Отправка почты без использования почтовых программ
 
И все же, уважаемые эксперты, в чем может быть причина "НЕ подключенного Интернета"?
Отправка почты без использования почтовых программ
 
{quote}{login=The_Prist}{date=23.11.2010 10:45}{thema=}{post}А у меня почему-то с трех разных почтовых ящиков отправляет нормально...Среди них: рамблер, майл, яндекс - 2 штуки{/post}{/quote}  
 
для Gmail нужны еще две настройки:  
             .Item(CDO_Cnf & "smtpserverport") = 587  
             .Item(CDO_Cnf & "smtpusessl") = True  
 
но все равно "нет доступа в интернет" (брандмауэр отключен)... не знаю даже где искать причину
Отправка почты без использования почтовых программ
 
Здравствуйте уважаемые эксперты. Нашел процедуру, позволяющую отправлять письмо посредством VBA без использования Outlook. http://www.excelvba.ru/code/CDO Смущает подпрограмма для внесения изменений в реестр. Можно ли использовать эту функцию не трогая реестр, а каждый раз определяя сервер исходящих, мейл и пароль. Если например программа кочует по разным компьютерам? Спасибо за советы.
сравнение дат на больше меньше
 
{quote}{login=Юрий М}{date=18.11.2010 03:34}{thema=}{post}Sub qqq()  
Dim Date1 As Date  
Dim Date2 As Date  
Date1 = CDate("26.11.2010")  
Date2 = CDate("25.06.2010")  
If Date1 < Date2 Then MsgBox "Меньше"  
End Sub{/post}{/quote}  
Да Юрий, вторую дату из ячейки обработал CDate и вроде заработало. Только хелп не рассказывает что это за функция. Сейчас погуглю про это. Спасибо Вам и Дм.
сравнение дат на больше меньше
 
{quote}{login=The_Prist}{date=18.11.2010 03:24}{thema=}{post}Как присваиваете переменным значения? Откуда берете? Есть подозрение, что Вы думаете, что дата одна, а на самом деле она не та...Что говорит отладка? Смотрели значения этих переменных?{/post}{/quote}  
Здравствуйте Дм, первая дата точно в формате Date я ее задаю, а вторая берется из ячейки. Проверил, ячейка строковый формат имеет. Тогда нужно как-то в Date тоже перевести? Странно, что не выдает ошибки о разных форматах. Тупо неправильно сравнивает.
сравнение дат на больше меньше
 
у меня нет. при сравнении дат нет каких либо рекомендаций? просто одна с другой сравнивается? например с разными месяцами? поиском пользовался - ничего не нарыл, говорят просто сравнивай и все
сравнение дат на больше меньше
 
Приветствую, сравниваю две переменные формата Date на больше/меньше.    
if date1<date2....  
26.11.2010 меньше чем 25.06.2010 Что не так? Спасибо.
Почему не транспонируется массив из одного столбца
 
{quote}{login=The_Prist}{date=09.11.2010 11:16}{thema=}{post}А Вы хоть проверили, какие значения присваиваются массиву? Те, что и ожидалось? Воспользуйтесь отладкой и посмотрите, какие значения попадают в массив. Выгрузите заполненный массив просто на чистый лист. Думаю, Вы найдете ошибки....  
 
Лучше использовать не "динамический" массив, а статический и заполнять его по мере необзходимости. А потом перегрузить в ЛистБокс через временный массив или цикл.{/post}{/quote}  
массивы по условиям формировались верно, проверял, проблема была именно с выводом в форму... совет Алекса помог, сейчас буду разбираться как это работает... Д, ваш совет по статическим массивам учту, хотя на первый взгляд усложняет немного алгоритм, спасибо
Почему не транспонируется массив из одного столбца
 
{quote}{login=Alex_ST}{date=09.11.2010 11:09}{thema=}{post}Попробуйте не биться с транспонированием, а просто вместо метода ListBox.List применить ListBox.Column{/post}{/quote}  
сработало... буду разбираться почему так.. низкий поклон
Почему не транспонируется массив из одного столбца
 
{quote}{login=The_Prist}{date=09.11.2010 11:07}{thema=}{post}вот это что такое?  
 
.Cells(i, СтолбИмя("Туры", "Полная оплата")).Value  
 
конкретно интересует именно - СтолбИмя("Туры", "Полная оплата"). Это функция, определяющая столбец?{/post}{/quote}  
абсолютно верно (таблицы меняются, столбцы добавляются/удаляются), сделал функцию для удобства
Почему не транспонируется массив из одного столбца
 
это присвоение списка одного массива одному ЛистБоксу  
If j > 0 Then  
  If j = 1 Then  
     ТурыЗаказанныеListBox.List = МассивТуровЗаказанных  
  Else  
     ТурыЗаказанныеListBox.List = Application.Transpose(МассивТуровЗаказанных)  
  End If  
End If
Почему не транспонируется массив из одного столбца
 
lLastRow = Worksheets("Туры").Cells(Rows.Count, 1).End(xlUp).Row  
lLastColumn = Worksheets("Туры").Cells(1, Columns.Count).End(xlToLeft).Column  
j = 0  
k = 0  
l = 0  
With Worksheets("Туры").Range(Cells(1, 1), Cells(lLastRow, lLastColumn))  
  For i = 2 To lLastRow  
   If .Cells(i, СтолбИмя("Туры", "Полная оплата")).Value = "" Then  
     If .Cells(i, СтолбИмя("Туры", "Частичная оплата")).Value = "" Then  
       j = j + 1  
       ReDim Preserve МассивТуровЗаказанных(1 To lLastColumn, 1 To j)  
       For m = 1 To lLastColumn  
        МассивТуровЗаказанных(m, j) = .Cells(i, m).Value  
       Next m  
     Else  
       l = l + 1  
       ReDim Preserve МассивТуровЧастичноОплаченных(1 To lLastColumn, 1 To l)  
       For m = 1 To lLastColumn  
        МассивТуровЧастичноОплаченных(m, l) = .Cells(i, m).Value  
       Next m  
     End If  
   Else  
       k = k + 1  
       ReDim Preserve МассивТуровОплаченных(1 To lLastColumn, 1 To k)  
       For m = 1 To lLastColumn  
        МассивТуровОплаченных(m, k) = .Cells(i, m).Value  
       Next m  
   End If  
  Next i  
 
это код формирования массивов (трех по условиям)
Почему не транспонируется массив из одного столбца
 
{quote}{login=The_Prist}{date=09.11.2010 10:19}{thema=}{post}Здравствуйте.  
А пробовали вообще не транспонировать одномерный массив? Ведь по умолчанию все одномерные массивы горизонтальные....{/post}{/quote}  
А не может это быть связано с тем, что нумерация строк и столбцов в массивах начинается с нуля, а у меня циклы с единиц?
Почему не транспонируется массив из одного столбца
 
{quote}{login=Dophin}{date=09.11.2010 10:30}{thema=}{post}вы бы приложили файл с кодом.{/post}{/quote}  
подскажите как лучше это сделать? просто у меня один файл, в котором около 20 форм с большим количеством скрипта в каждой... просто вырезать кусок в новый файл?
Почему не транспонируется массив из одного столбца
 
Здравствуйте Д, конечно пробовал, стараюсь теперь по пустякам не задавать вопросы. При формировании массива однозначно он получается перевернутым.  
       ReDim Preserve МассивТуровЗаказанных(1 To lLastColumn, 1 To j)  
 
       For m = 1 To lLastColumn  
        МассивТуровЗаказанных(m, j) = .Cells(i, m).Value  
       Next m
Почему не транспонируется массив из одного столбца
 
Здравствуйте уважаемые эксперты. Непонятная проблема: список ListBoxа задается динамическим массивом. После формирования (двумерного) массива требуется транспонирование. В коде делаю так:  
 
ТурыЗаказанныеListBox.List = Application.Transpose(МассивТуровЗаказанных)  
 
Если МассивТуровЗаказанных имеет две и более колонки, транспонирует нормально, одну - никак не хочет. В чем проблема?
Добавить строку в список ListBox по условию
 
Уважаемые эксперты. С прошедшими праздниками. Вынужден реанимировать вопрос, запутался с колонками и строками. Все сделано в соответствие с рекомендациями, но с транспонированием запутался, ну и как следствие постоянные ошибки.  
 
lLastRow = Worksheets("Туры").Cells(Rows.Count, 1).End(xlUp).Row  
lLastColumn = Worksheets("Туры").Cells(1, Columns.Count).End(xlToLeft).Column  
j = 0  
k = 0  
l = 0  
     
With Worksheets("Туры").Range(Cells(1, 1), Cells(lLastRow, lLastColumn))  
  For i = 2 To lLastRow  
   If .Cells(i, СтолбИмя("Туры", "Частичная оплата")).Value = "" Then  
     If .Cells(i, СтолбИмя("Туры", "Полная оплата")).Value = "" Then  
       j = j + 1  
       ReDim Preserve МассивТуровЗаказанных(1 To lLastColumn, 1 To j)  
       МассивТуровЗаказанных = .Range(Cells(i, 1), Cells(i, lLastColumn)).Value  
     Else  
       k = k + 1  
       ReDim Preserve МассивТуровОплаченных(1 To lLastColumn, 1 To k)  
       МассивТуровОплаченных = .Range(Cells(i, 1), Cells(i, lLastColumn)).Value  
     End If  
   Else  
       l = l + 1  
       ReDim Preserve МассивТуровЧастичноОплаченных(1 To lLastColumn, 1 To l)  
       МассивТуровЧастичноОплаченных = .Range(Cells(i, 1), Cells(i, lLastColumn)).Value  
   End If  
  Next i  
        ТурыЗаказанныеListBox.ColumnHeads = True  
        ТурыЗаказанныеListBox.ColumnCount = 91  
        ТурыЗаказанныеListBox.ColumnWidths = "25;0;50;0;20;70;0;0;0;0;0;0;20;100;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;" _  
        & "0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;50;50;0;70;0;0;70"  
        ТурыЗаказанныеListBox.BoundColumn = 1  
        ТурыЧастичноОплаченныеListBox.ColumnHeads = True  
        ТурыЧастичноОплаченныеListBox.ColumnCount = 91  
        ТурыЧастичноОплаченныеListBox.ColumnWidths = "25;0;50;0;20;70;0;0;0;0;0;0;20;100;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;" _  
        & "0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;50;50;0;70;0;0;70"  
        ТурыЧастичноОплаченныеListBox.BoundColumn = 1  
        ТурыОплаченныеListBox.ColumnHeads = True  
        ТурыОплаченныеListBox.ColumnCount = 91  
        ТурыОплаченныеListBox.ColumnWidths = "25;0;50;0;20;70;0;0;0;0;0;0;20;100;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;" _  
        & "0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;50;50;0;70;0;0;70"  
        ТурыОплаченныеListBox.BoundColumn = 1  
'МассивТуровЗаказанных = Application.Transpose(МассивТуровЗаказанных)  
        ТурыЗаказанныеListBox.List = МассивТуровЗаказанных  
        ТурыЧастичноОплаченныеListBox.List = МассивТуровЧастичноОплаченных  
        ТурыОплаченныеListBox.List = МассивТуровОплаченных  
End With
Добавить строку в список ListBox по условию
 
Уважаемые знатоки. Обращаюсь с простой задачей, просто мозг заклинило, а сделать надо.  
Есть таблица на 96 столбцов. В 76 и 79 столбце каждой строки проверяется содержимое ячеек на "" или заполнено. В зависимости от результата строка помещается в список одного из трех ListBox. Как эту строку добавить к списку?
сравнение двух строковых значений
 
{quote}{login=Казанский}{date=20.10.2010 10:10}{thema=}{post}For i = 0 To lLastColumn  
If .Cells(1, i).Value ...  
 
Номер столбца не может быть 0. Надо  
For i = 1 To lLastColumn{/post}{/quote}  
 
Казанский, у Вас острый глаз. Поклон №2. :)
сравнение двух строковых значений
 
Добрый день уважаемые эксперты! Борюсь вот с какой ошибкой.  
Есть функция:  
Function СтолбИмя(ИмяСтраницы As String, НазваниеСтолбца As String)  
Dim lLastColumn As Long  
Dim i As Long  
With Worksheets(ИмяСтраницы)  
       lLastColumn = .Cells(1, Columns.Count).End(xlToLeft).Column  
       For i = 0 To lLastColumn  
         If .Cells(1, i).Value = НазваниеСтолбца Then СтолбИмя = i  
       Next i  
End With  
End Function  
 
Функция находится в стандартном Модуле.  
 
Из модуля UserForm вызываю ее:  
 
ВводГидаUserForm.IDLabel.Caption = .Cells(ГидListBox.Value + 2, СтолбИмя("Гид", "ID")).Value  
 
Не могу побороть ошибку в строке функции:    
If .Cells(1, i).Value = НазваниеСтолбца Then СтолбИмя = i  
 
Ошибка 1004: Application-defined or object-defined error
как приостановить (отключить) процедуру на некоторое время
 
Всем низкий поклон. Казанскому персонально.
как приостановить (отключить) процедуру на некоторое время
 
{quote}{login=Казанский}{date=18.10.2010 03:33}{thema=}{post}Объявите логическую переменную в модуле формы и используйте ее как признак разрешения сравнения в процедурах Sub ComboBox_change. На время выполнения "другой процедуры" изменяйте значение этой переменной.{/post}{/quote}  
то есть поставить "флажок"? а модальность тут ни при чем?
как приостановить (отключить) процедуру на некоторое время
 
Здравствуйте уважаемые эксперты.  
Вот суть проблемы: имею в UserForm 4 ComboBox для выбора четырех объектов. Для каждого ComboBox есть процедура Sub ComboBox_change, проверяющая, чтоб выбранные названия не совпадали между собой. Есть необходимость на время выполнения другой процедуры над этими ComboBox проверку совпадения отключить. Допускаю, что нужно перевести в модальную (немодальную) форму, но не знаю как. Или как-то по другому? Спасибо.
В чем ошибка
 
{quote}{login=KuklP}{date=15.10.2010 11:43}{thema=}{post}Поменяйте ByRef  на ByVal в процедуре ПрячемПоляВводаОборудования.{/post}{/quote}  
 
Call ПрячемПоляВводаОборудования(ByVal i, False)  
 
Ошибка: i Type mismatch
В чем ошибка
 
Забыл добавить.  
Ошибка в переменной i в строке  
Call ПрячемПоляВводаОборудования(i, False)
В чем ошибка
 
{quote}{login=Юрий М}{date=15.10.2010 11:38}{thema=}{post}Без скобок попробуйте: Call ПрячемПоляВводаОборудования{/post}{/quote}  
 
Юрий, не понял, а как я аргументы передам?
В чем ошибка
 
Здравствуйте уважаемые эксперты.  
Подскажите пожалуйста, в чем ошибка.  
Есть процедура:  
Private Sub ПрячемПоляВводаОборудования(i As Long, Видимость As Boolean)  
 
вызываю ее в цикле из другого места  
 
Call ПрячемПоляВводаОборудования(i, False)  
 
Ошибка ByRef argument type mismatch  
Как исправить? Спасибо.
запись набора дат в ячейку средствами VBA
 
{quote}{login=vikttur}{date=06.10.2010 11:42}{thema=Re: запись набора дат в ячейку средствами VBA}{post}{quote}{login=Peter}{date=06.10.2010 11:20}{thema=запись набора дат в ячейку средствами VBA}{post}  
3)Как потом анализировать содержание ячейки на соответствие какой либо дате или диапазону дат?{/post}{/quote}  
Вот это самое интересное. Сначала создаем трудности, потом преодолеваем их же.  
Зачем все в одну ячейку? Можно в строку, в столбец, где каждая дата помещена в отдельную ячейку. Так намного лучше для последующей обработки.{/post}{/quote}  
Хотя вы правы, у меня таблицы большей частью не видны. Пусть с 25-ого столбца может быть еще 365 ячеек в строке, просто буду обрабатывать до LastColumn. А эстетики тут не нужно.    
Alex_ST, спасибо за пример, помог понять что монстр порождает еще нескольких монстров. :)
запись набора дат в ячейку средствами VBA
 
{quote}{login=The_Prist}{date=06.10.2010 12:06}{thema=}{post}Допустим нашли Вы пример, где записываются даты через слэш. А дальше? Будете искать пример, где они извлекаются для сравнения и анализа? Раз уж у Вас там база данных, то лучше сразу продумайте нормальную и удобную структуру организации данных. Чтобы потом можно было извлечь из неё все, что угодно, отфильтровать и проанализировать по любому критерию.{/post}{/quote}  
Дмитрий, здравствуйте, очень ценю ваши советы (и всех остальных гуру конечно же). Когда планировал архитектуру всего проекта, так и задумывал записывать в одну ячейку "Даты" все диапазоны. Решение такое возникло именно из-за конкретного примера с разделением слэшами. Теперь, когда дошел до этой части пример найти не могу.
Страницы: 1 2 След.
Наверх