Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Excel VBA (часть 2)

Автор: ZlydenGL
Дата сообщения: 08.07.2009 17:14
Peen, тогда уж и модуль класса тоже рассекречивай - непонятно, какая в нем обработка ведется. Вообще непонятно, мягко говоря, что именно делает SelectionFind2? Можешь дать массив информации ДО ее обработки и ПОСЛЕ? Будет в разы проще И поясни - предыдущая функция тебя устроила? Или же "вообще не в ту степь" и надо анализировать задачу сначала?
Автор: Peen
Дата сообщения: 08.07.2009 20:32
[more]
Option Explicit
Dim MaxRow As Long
Dim totCustomer As Long
Dim check1 As Integer
Dim check2 As Integer
Dim check3 As Integer
Dim check4 As Integer
Dim flagExitCheck As Boolean
Dim i As Integer
Function Sheet(NameSVColumn As String) As boolen

Sub SendEMail_via_CDO()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String

'add NameSVColumn;EmailSVIDColumn

Dim NameSVColumn As String
Dim EmailSVIDColumn As String
Dim NameColumn As String
Dim EmailIDColumn As String
Dim PhoneColumn As String
Dim AmountColumn As String
Dim DataStartRow As Integer
Dim ReportMonth As String
Dim ReportYear As String
Dim SRow As Long
Dim Flds As Variant

totCustomer = 0

On Error GoTo err_SendEMail_via_CDO
'Check whether the user is connected to the Network, else show an error msg
If IsConnected = True Then
Else
MsgBox "You can't use this subroutine because you are not connected to Network.", vbCritical
End If

Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpam.shell.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp-ea.services.shell.net"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With



NameSVColumn = cbonamesvcol.Text
EmailSVIDColumn = cboemailsvidcol.Text
NameColumn = cbonamecol.Text
EmailIDColumn = cboemailidcol.Text
PhoneColumn = cbophonecol.Text
AmountColumn = cboamtcol.Text
DataStartRow = cboDatastartRow.Text
ReportMonth = cbomonth.Text
ReportYear = cboyear.Text
Application.Cursor = xlWait












End Function





For SRow = DataStartRow To MaxRow
If Range(EmailIDColumn & SRow & ":" & EmailIDColumn & SRow) = "" Then Exit Sub

strbody = "mobile phone / ìîáèëüíûé òåëåôîí" & Chr$(10) & "----------------------------------------------------" & Chr$(10)
strbody = strbody & " " & Range(PhoneColumn & SRow & ":" & PhoneColumn & SRow) & " (" & Range(NameColumn & SRow & ":" & NameColumn & SRow) & ")" & Chr$(10)
strbody = strbody & " " & Range(EmailIDColumn & SRow & ":" & EmailIDColumn & SRow) & Trim(txtTosuffix.Text) & Chr$(10) & Chr$(10)
strbody = strbody & "monthly expenses / çàòðàòû çà ìåñÿö" & Chr$(10) & "--------------------------------------------------------" & Chr$(10)
strbody = strbody & " " & ReportMonth & "." & ReportYear & Chr$(10)
strbody = strbody & " $" & Range(AmountColumn & SRow & ":" & AmountColumn & SRow) & " USD" & Chr$(10)
strbody = strbody & Chr$(10) & "(ðóññêèé òåêñò ñëåäóåò çà àíãëèéñêèì)" & Chr$(10)
strbody = strbody & Chr$(10) & txtEmailBody_Eng.Text & Chr$(10) & Chr$(10) & "---------------------------------------------------------------------------------------------------------------------------------------------------------" & Chr$(10) & Chr$(10) & txtEmailBody_Rus.Text & Chr$(10)

Set iMsg = CreateObject("CDO.Message")

With iMsg
Set .Configuration = iConf
.From = txtFromMailID.Text
.To = Range(EmailIDColumn & SRow & ":" & EmailIDColumn & SRow) & Trim(txtTosuffix.Text)
.CC = ""
.BCC = ""
.Subject = "(" & Range(PhoneColumn & SRow & ":" & PhoneColumn & SRow) & ") " & Trim(txtSubject.Text)
.TextBody = strbody
.Send
End With
totCustomer = totCustomer + 1

Set iMsg = Nothing
DoEvents
Next

Set iConf = Nothing

Application.Cursor = xlDefault
Exit Sub

err_SendEMail_via_CDO:
MsgBox "Error while sending e-mails via CDO.", vbCritical
Application.Cursor = xlDefault
End Sub


Sub SendEMail_via_Outlook()

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

'add NameSVColumn;EmailSVIDColumn

Dim NameSVColumn As String
Dim EmailSVIDColumn As String
Dim NameColumn As String
Dim EmailIDColumn As String
Dim PhoneColumn As String
Dim AmountColumn As String
Dim DataStartRow As Integer
Dim ReportMonth As String
Dim ReportYear As String
Dim SRow As Long
Dim Flds As Variant

totCustomer = 0

On Error GoTo err_SendEMail_via_Outlook
Set OutApp = CreateObject("Outlook.Application")
'OutApp.Session.Logon

NameSVColumn = cbonamesvcol.Text
EmailSVIDColumn = cboemailsvidcol.Text
NameColumn = cbonamecol.Text
EmailIDColumn = cboemailidcol.Text
PhoneColumn = cbophonecol.Text
AmountColumn = cboamtcol.Text
DataStartRow = cboDatastartRow.Text
ReportMonth = cbomonth.Text
ReportYear = cboyear.Text
Application.Cursor = xlWait

For SRow = DataStartRow To MaxRow
If Range(EmailIDColumn & SRow & ":" & EmailIDColumn & SRow).Value = "" Then Exit Sub

Set OutMail = OutApp.CreateItem(0)
strbody = "mobile phone / ìîáèëüíûé òåëåôîí" & Chr$(10) & "----------------------------------------------------" & Chr$(10)
strbody = strbody & " " & Range(PhoneColumn & SRow & ":" & PhoneColumn & SRow) & " (" & Range(NameColumn & SRow & ":" & NameColumn & SRow) & ")" & Chr$(10)
strbody = strbody & " " & Range(EmailIDColumn & SRow & ":" & EmailIDColumn & SRow) & Trim(txtTosuffix.Text) & Chr$(10) & Chr$(10)
strbody = strbody & "monthly expenses / çàòðàòû çà ìåñÿö" & Chr$(10) & "--------------------------------------------------------" & Chr$(10)
strbody = strbody & " " & ReportMonth & "." & ReportYear & Chr$(10)
strbody = strbody & " $" & Range(AmountColumn & SRow & ":" & AmountColumn & SRow) & " USD" & Chr$(10)
strbody = strbody & Chr$(10) & "(ðóññêèé òåêñò ñëåäóåò çà àíãëèéñêèì)" & Chr$(10)
strbody = strbody & Chr$(10) & txtEmailBody_Eng.Text & Chr$(10) & Chr$(10) & "---------------------------------------------------------------------------------------------------------------------------------------------------------" & Chr$(10) & Chr$(10) & txtEmailBody_Rus.Text & Chr$(10)

'On Error Resume Next

With OutMail
.To = Range(EmailIDColumn & SRow & ":" & EmailIDColumn & SRow) & Trim(txtTosuffix.Text)
.CC = ""
.BCC = ""
.Subject = "(" & Range(PhoneColumn & SRow & ":" & PhoneColumn & SRow) & ") " & Trim(txtSubject.Text)
.body = strbody
.Save
' "Save" - saves the e-mails in to Draft folder of the Mailbox
' The reason why ".Send" was not used was due to security warning msg that pops-up due to W2K SP2 security patch
End With
'On Error GoTo 0
totCustomer = totCustomer + 1
Set OutMail = Nothing

DoEvents

Next

Set OutApp = Nothing

Application.Cursor = xlDefault
Exit Sub
err_SendEMail_via_Outlook:
MsgBox "Error while sending e-mails via MS Outlook.", vbCritical
Application.Cursor = xlDefault
End Sub
Private Sub cboamtcol_Change()
End Sub
Private Sub cboDatastartRow_Change()
End Sub
Private Sub cboemailidcol_Change()
End Sub
Private Sub cboemailsvidcol_Change()
End Sub
Private Sub cbomonth_Change()
End Sub
Private Sub cbonamecol_Change()
End Sub
Private Sub cbonamesvcol_Change()
End Sub
Private Sub cbophonecol_Change()
End Sub
Private Sub cboyear_Change()
End Sub
Private Sub CmdClose_Click()
' Code For Exit for the form
If MsgBox("Are you sure, want to close the " & MsgTitle & "?", vbYesNo + vbQuestion, MsgTitle) = vbYes Then
flagExitCheck = True
Unload Me
Else
flagExitCheck = False
End If
End Sub
Private Sub cmdhelp_Click()
' On click of Help button, show the Help window
UFrmHelp.Show vbModal
End Sub
Private Sub cmdhelp1_Click()
End Sub
Private Sub CmdSend_Click()
' Input validation
If Trim(txtEmailBody_Eng.Text) = "" Then
MsgBox "Enter the English e-mail body text.", vbExclamation, MsgTitle
Exit Sub
End If
If Trim(txtEmailBody_Rus.Text) = "" Then
MsgBox "Enter the Russian e-mail body text.", vbExclamation, MsgTitle
Exit Sub
End If
If Trim(txtSubject.Text) = "" Then
MsgBox "Enter the e-mail subject line text.", vbExclamation, MsgTitle
Exit Sub
End If
If Trim(txtFromMailID.Text) = "" Then
MsgBox "Enter the From e-mail ID.", vbExclamation, MsgTitle
Exit Sub
End If
If Trim(txtTosuffix.Text) = "" Then
MsgBox "Enter the correct To e-mail Suffix.", vbExclamation, MsgTitle
Exit Sub
Else
check1 = InStr(1, txtTosuffix.Text, "@")
check2 = InStr(1, txtTosuffix.Text, ".")
check3 = InStr(1, txtTosuffix.Text, " ")
check4 = InStr(1, txtTosuffix.Text, ",")
If check1 = 0 Or check2 = 0 Or check3 <> 0 Or check4 <> 0 Then
MsgBox "Enter the correct To E-mail Suffix.", vbExclamation, MsgTitle
Exit Sub
End If
End If
If MsgBox("Are you sure, you want to send e-mails?", vbYesNo + vbQuestion, MsgTitle) = vbYes Then
lblstatusofsending.Caption = "Sending e-mails... please wait."

CmdSend.Enabled = False
CmdClose.Enabled = False

Application.ScreenUpdating = False

If optCDO.Value = True Then
Call SendEMail_via_CDO
Else
Call SendEMail_via_Outlook
End If

lblstatusofsending.Caption = ""

Application.ScreenUpdating = True

' This code for displaying the result
If totCustomer = 0 Then
MsgBox "No data found in the worksheet for the above selections. Please check the worksheet data and make correct selections (column and row number) above.", vbInformation, MsgTitle

Else
MsgBox "E-mail has been sent to " & totCustomer & " mobile user(s).", vbInformation, MsgTitle
End If

End If

Application.Cursor = xlDefault
CmdSend.Enabled = True
CmdClose.Enabled = True
End Sub
Private Sub txtEmailBody_Change()
End Sub
Private Sub Label3_Click()
End Sub
Private Sub cmomonth_Change()
End Sub
Private Sub ComboBox1_Change()
End Sub
Private Sub frmframe_Click()
End Sub
Private Sub Image1_Click()
End Sub
Private Sub Image4_Click()
End Sub
Private Sub Image6_Click()
End Sub
Private Sub Image8_Click()
End Sub
Private Sub Image9_Click()
End Sub
Private Sub Label11_Click()
End Sub
Private Sub Label12_Click()
End Sub
Private Sub Label15_Click()
End Sub
Private Sub Label16_Click()
End Sub
Private Sub Label17_Click()
End Sub
Private Sub lblAmtCol_Click()
End Sub
Private Sub optCDO_Click()
End Sub
Private Sub txtEmailBody_Eng_Change()
End Sub
Private Sub txtEmailBody_Rus_Change()
End Sub
Private Sub txtSubject_Change()
End Sub
Private Sub txtTosuffix_Change()
End Sub
Private Sub UserForm_Initialize()
Dim PrevMonth As Integer
Dim PrevYear As Integer
PrevMonth = Month(Date) - 1
If PrevMonth <= 0 Then
PrevMonth = 12
PrevYear = Year(Date) - 1
Else
PrevYear = Year(Date)
End If


cbonamesvcol.AddItem "A"
cbonamesvcol.AddItem "B"
cbonamesvcol.AddItem "C"
cbonamesvcol.AddItem "D"
cbonamesvcol.AddItem "E"
cbonamesvcol.AddItem "F"
cbonamesvcol.AddItem "G"
cbonamesvcol.AddItem "H"
cbonamesvcol.AddItem "I"
cbonamesvcol.AddItem "J"
cbonamesvcol.AddItem "K"
cbonamesvcol.AddItem "L"
cbonamesvcol.AddItem "M"
cbonamesvcol.AddItem "N"
cbonamesvcol.AddItem "O"
cbonamesvcol.AddItem "P"
cbonamesvcol.AddItem "Q"
cbonamesvcol.AddItem "R"
cbonamesvcol.AddItem "S"
cbonamesvcol.AddItem "T"
cbonamesvcol.AddItem "U"
cbonamesvcol.AddItem "V"
cbonamesvcol.AddItem "W"
cbonamesvcol.AddItem "X"
cbonamesvcol.AddItem "Y"
cbonamesvcol.AddItem "Z"
cbonamesvcol.AddItem "AA"
cbonamesvcol.AddItem "AB"
cbonamesvcol.AddItem "AC"
cbonamesvcol.AddItem "AD"
cbonamesvcol.AddItem "AE"
cbonamesvcol.AddItem "AF"
cbonamesvcol.AddItem "AG"
cbonamesvcol.AddItem "AH"
cbonamesvcol.AddItem "AI"
cbonamesvcol.AddItem "AJ"
cbonamesvcol.AddItem "AK"
cbonamesvcol.AddItem "AL"
cbonamesvcol.AddItem "AM"
cbonamesvcol.AddItem "AN"
cbonamesvcol.AddItem "AO"
cbonamesvcol.AddItem "AP"
cbonamesvcol.AddItem "AQ"
cbonamesvcol.AddItem "AR"
cbonamesvcol.AddItem "AS"
cbonamesvcol.AddItem "AT"
cbonamesvcol.AddItem "AU"
cbonamesvcol.AddItem "AV"
cbonamesvcol.AddItem "AW"
cbonamesvcol.AddItem "AX"
cbonamesvcol.AddItem "AY"
cbonamesvcol.AddItem "AZ"
' This line for "A Column should be selected by degault"
cbonamesvcol.ListIndex = 0


cboemailsvidcol.AddItem "A"
cboemailsvidcol.AddItem "B"
cboemailsvidcol.AddItem "C"
cboemailsvidcol.AddItem "D"
cboemailsvidcol.AddItem "E"
cboemailsvidcol.AddItem "F"
cboemailsvidcol.AddItem "G"
cboemailsvidcol.AddItem "H"
cboemailsvidcol.AddItem "I"
cboemailsvidcol.AddItem "J"
cboemailsvidcol.AddItem "K"
cboemailsvidcol.AddItem "L"
cboemailsvidcol.AddItem "M"
cboemailsvidcol.AddItem "N"
cboemailsvidcol.AddItem "O"
cboemailsvidcol.AddItem "P"
cboemailsvidcol.AddItem "Q"
cboemailsvidcol.AddItem "R"
cboemailsvidcol.AddItem "S"
cboemailsvidcol.AddItem "T"
cboemailsvidcol.AddItem "U"
cboemailsvidcol.AddItem "V"
cboemailsvidcol.AddItem "W"
cboemailsvidcol.AddItem "X"
cboemailsvidcol.AddItem "Y"
cboemailsvidcol.AddItem "Z"
cboemailsvidcol.AddItem "AA"
cboemailsvidcol.AddItem "AB"
cboemailsvidcol.AddItem "AC"
cboemailsvidcol.AddItem "AD"
cboemailsvidcol.AddItem "AE"
cboemailsvidcol.AddItem "AF"
cboemailsvidcol.AddItem "AG"
cboemailsvidcol.AddItem "AH"
cboemailsvidcol.AddItem "AI"
cboemailsvidcol.AddItem "AJ"
cboemailsvidcol.AddItem "AK"
cboemailsvidcol.AddItem "AL"
cboemailsvidcol.AddItem "AM"
cboemailsvidcol.AddItem "AN"
cboemailsvidcol.AddItem "AO"
cboemailsvidcol.AddItem "AP"
cboemailsvidcol.AddItem "AQ"
cboemailsvidcol.AddItem "AR"
cboemailsvidcol.AddItem "AS"
cboemailsvidcol.AddItem "AT"
cboemailsvidcol.AddItem "AU"
cboemailsvidcol.AddItem "AV"
cboemailsvidcol.AddItem "AW"
cboemailsvidcol.AddItem "AX"
cboemailsvidcol.AddItem "AY"
cboemailsvidcol.AddItem "AZ"
' This line for "B Column should be selected by default"
cboemailsvidcol.ListIndex = 1




cbonamecol.AddItem "A"
cbonamecol.AddItem "B"
cbonamecol.AddItem "C"
cbonamecol.AddItem "D"
cbonamecol.AddItem "E"
cbonamecol.AddItem "F"
cbonamecol.AddItem "G"
cbonamecol.AddItem "H"
cbonamecol.AddItem "I"
cbonamecol.AddItem "J"
cbonamecol.AddItem "K"
cbonamecol.AddItem "L"
cbonamecol.AddItem "M"
cbonamecol.AddItem "N"
cbonamecol.AddItem "O"
cbonamecol.AddItem "P"
cbonamecol.AddItem "Q"
cbonamecol.AddItem "R"
cbonamecol.AddItem "S"
cbonamecol.AddItem "T"
cbonamecol.AddItem "U"
cbonamecol.AddItem "V"
cbonamecol.AddItem "W"
cbonamecol.AddItem "X"
cbonamecol.AddItem "Y"
cbonamecol.AddItem "Z"
cbonamecol.AddItem "AA"
cbonamecol.AddItem "AB"
cbonamecol.AddItem "AC"
cbonamecol.AddItem "AD"
cbonamecol.AddItem "AE"
cbonamecol.AddItem "AF"
cbonamecol.AddItem "AG"
cbonamecol.AddItem "AH"
cbonamecol.AddItem "AI"
cbonamecol.AddItem "AJ"
cbonamecol.AddItem "AK"
cbonamecol.AddItem "AL"
cbonamecol.AddItem "AM"
cbonamecol.AddItem "AN"
cbonamecol.AddItem "AO"
cbonamecol.AddItem "AP"
cbonamecol.AddItem "AQ"
cbonamecol.AddItem "AR"
cbonamecol.AddItem "AS"
cbonamecol.AddItem "AT"
cbonamecol.AddItem "AU"
cbonamecol.AddItem "AV"
cbonamecol.AddItem "AW"
cbonamecol.AddItem "AX"
cbonamecol.AddItem "AY"
cbonamecol.AddItem "AZ"
' This line for "A Column should be selected by degault"
cbonamecol.ListIndex = 0
cboemailidcol.AddItem "A"
cboemailidcol.AddItem "B"
cboemailidcol.AddItem "C"
cboemailidcol.AddItem "D"
cboemailidcol.AddItem "E"
cboemailidcol.AddItem "F"
cboemailidcol.AddItem "G"
cboemailidcol.AddItem "H"
cboemailidcol.AddItem "I"
cboemailidcol.AddItem "J"
cboemailidcol.AddItem "K"
cboemailidcol.AddItem "L"
cboemailidcol.AddItem "M"
cboemailidcol.AddItem "N"
cboemailidcol.AddItem "O"
cboemailidcol.AddItem "P"
cboemailidcol.AddItem "Q"
cboemailidcol.AddItem "R"
cboemailidcol.AddItem "S"
cboemailidcol.AddItem "T"
cboemailidcol.AddItem "U"
cboemailidcol.AddItem "V"
cboemailidcol.AddItem "W"
cboemailidcol.AddItem "X"
cboemailidcol.AddItem "Y"
cboemailidcol.AddItem "Z"
cboemailidcol.AddItem "AA"
cboemailidcol.AddItem "AB"
cboemailidcol.AddItem "AC"
cboemailidcol.AddItem "AD"
cboemailidcol.AddItem "AE"
cboemailidcol.AddItem "AF"
cboemailidcol.AddItem "AG"
cboemailidcol.AddItem "AH"
cboemailidcol.AddItem "AI"
cboemailidcol.AddItem "AJ"
cboemailidcol.AddItem "AK"
cboemailidcol.AddItem "AL"
cboemailidcol.AddItem "AM"
cboemailidcol.AddItem "AN"
cboemailidcol.AddItem "AO"
cboemailidcol.AddItem "AP"
cboemailidcol.AddItem "AQ"
cboemailidcol.AddItem "AR"
cboemailidcol.AddItem "AS"
cboemailidcol.AddItem "AT"
cboemailidcol.AddItem "AU"
cboemailidcol.AddItem "AV"
cboemailidcol.AddItem "AW"
cboemailidcol.AddItem "AX"
cboemailidcol.AddItem "AY"
cboemailidcol.AddItem "AZ"
' This line for "B Column should be selected by default"
cboemailidcol.ListIndex = 1

cbophonecol.AddItem "A"
cbophonecol.AddItem "B"
cbophonecol.AddItem "C"
cbophonecol.AddItem "D"
cbophonecol.AddItem "E"
cbophonecol.AddItem "F"
cbophonecol.AddItem "G"
cbophonecol.AddItem "H"
cbophonecol.AddItem "I"
cbophonecol.AddItem "J"
cbophonecol.AddItem "K"
cbophonecol.AddItem "L"
cbophonecol.AddItem "M"
cbophonecol.AddItem "N"
cbophonecol.AddItem "O"
cbophonecol.AddItem "P"
cbophonecol.AddItem "Q"
cbophonecol.AddItem "R"
cbophonecol.AddItem "S"
cbophonecol.AddItem "T"
cbophonecol.AddItem "U"
cbophonecol.AddItem "V"
cbophonecol.AddItem "W"
cbophonecol.AddItem "X"
cbophonecol.AddItem "Y"
cbophonecol.AddItem "Z"
cbophonecol.AddItem "AA"
cbophonecol.AddItem "AB"
cbophonecol.AddItem "AC"
cbophonecol.AddItem "AD"
cbophonecol.AddItem "AE"
cbophonecol.AddItem "AF"
cbophonecol.AddItem "AG"
cbophonecol.AddItem "AH"
cbophonecol.AddItem "AI"
cbophonecol.AddItem "AJ"
cbophonecol.AddItem "AK"
cbophonecol.AddItem "AL"
cbophonecol.AddItem "AM"
cbophonecol.AddItem "AN"
cbophonecol.AddItem "AO"
cbophonecol.AddItem "AP"
cbophonecol.AddItem "AQ"
cbophonecol.AddItem "AR"
cbophonecol.AddItem "AS"
cbophonecol.AddItem "AT"
cbophonecol.AddItem "AU"
cbophonecol.AddItem "AV"
cbophonecol.AddItem "AW"
cbophonecol.AddItem "AX"
cbophonecol.AddItem "AY"
cbophonecol.AddItem "AZ"
' This line for "C Column should be selected by degault"
cbophonecol.ListIndex = 2

cboamtcol.AddItem "A"
cboamtcol.AddItem "B"
cboamtcol.AddItem "C"
cboamtcol.AddItem "D"
cboamtcol.AddItem "E"
cboamtcol.AddItem "F"
cboamtcol.AddItem "G"
cboamtcol.AddItem "H"
cboamtcol.AddItem "I"
cboamtcol.AddItem "J"
cboamtcol.AddItem "K"
cboamtcol.AddItem "L"
cboamtcol.AddItem "M"
cboamtcol.AddItem "N"
cboamtcol.AddItem "O"
cboamtcol.AddItem "P"
cboamtcol.AddItem "Q"
cboamtcol.AddItem "R"
cboamtcol.AddItem "S"
cboamtcol.AddItem "T"
cboamtcol.AddItem "U"
cboamtcol.AddItem "V"
cboamtcol.AddItem "W"
cboamtcol.AddItem "X"
cboamtcol.AddItem "Y"
cboamtcol.AddItem "Z"
cboamtcol.AddItem "AA"
cboamtcol.AddItem "AB"
cboamtcol.AddItem "AC"
cboamtcol.AddItem "AD"
cboamtcol.AddItem "AE"
cboamtcol.AddItem "AF"
cboamtcol.AddItem "AG"
cboamtcol.AddItem "AH"
cboamtcol.AddItem "AI"
cboamtcol.AddItem "AJ"
cboamtcol.AddItem "AK"
cboamtcol.AddItem "AL"
cboamtcol.AddItem "AM"
cboamtcol.AddItem "AN"
cboamtcol.AddItem "AO"
cboamtcol.AddItem "AP"
cboamtcol.AddItem "AQ"
cboamtcol.AddItem "AR"
cboamtcol.AddItem "AS"
cboamtcol.AddItem "AT"
cboamtcol.AddItem "AU"
cboamtcol.AddItem "AV"
cboamtcol.AddItem "AW"
cboamtcol.AddItem "AX"
cboamtcol.AddItem "AY"
cboamtcol.AddItem "AZ"
' This line for "D Column should be selected by degault"
cboamtcol.ListIndex = 3

cbomonth.AddItem "01"
cbomonth.AddItem "02"
cbomonth.AddItem "03"
cbomonth.AddItem "04"
cbomonth.AddItem "05"
cbomonth.AddItem "06"
cbomonth.AddItem "07"
cbomonth.AddItem "08"
cbomonth.AddItem "09"
cbomonth.AddItem "10"
cbomonth.AddItem "11"
cbomonth.AddItem "12"
cbomonth.AddItem Month(Date)
cbomonth.AddItem Date
' This line for "Previous month should be selected by default"
cbomonth.ListIndex = PrevMonth - 1

cboyear.AddItem "2007"
cboyear.AddItem "2008"
cboyear.AddItem "2009"
cboyear.AddItem "2010"
cboyear.AddItem "2011"
cboyear.AddItem "2012"
cboyear.AddItem "2013"
cboyear.AddItem "2014"
cboyear.AddItem "2015"
cboyear.AddItem "2016"
cboyear.AddItem "2017"
cboyear.AddItem "2018"
cboyear.AddItem "2019"
cboyear.AddItem "2020"
' This line for "Year of previous month should be selected by default"
cboyear.ListIndex = PrevYear - 2007


frmframe.Visible = True

For i = 1 To 20
cboDatastartRow.AddItem i
Next
' This line for "Start Row 3 should be selected by default"
cboDatastartRow.ListIndex = 1
MaxRow = 65000
totCustomer = 0

' declarations
'txtFromMailID.Value = "Maxim.Shadura@shell.com"
txtFromMailID.Value = "EP-MOW-IT-SUPPORT@shell.com"
txtTosuffix.Value = "@shell.com"
txtSubject.Value = "Monthly mobile phone expenses / &#204;&#229;&#241;&#255;&#247;&#237;&#251;&#229; &#231;&#224;&#242;&#240;&#224;&#242;&#251; &#237;&#224; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#251;&#233; &#242;&#229;&#235;&#229;&#244;&#238;&#237;"
txtEmailBody_Eng.Value = "Dear Customer," & Chr$(10) & "Please mind the expenses associated to your corporate mobile phone for the last month." & Chr$(10) & "Also please be reminded with the following regulations of the Corporate Mobile Phones Use Policy:" & Chr$(10) & " - company-provided mobile phones are obviously intended primarily for business use;" & Chr$(10) & " - the limit of reasonable personal use is herein set at $20 USD per month;" & Chr$(10) & " - the Company reserves right to request any employee whose expense on mobile communication is suspiciously high, to justify spend as business vs. personal use;" & Chr$(10) & " - in such case should overspend on personal calls be identified, amount in excess of $20 USD can be deducted from the individual’s salary and / or can lead to withdrawal of the Company’s mobile phone from the employee." & Chr$(10) & "The report on mobile expenses is being regularly provided to the Company's management." & Chr$(10) & Chr$(10)
txtEmailBody_Eng.Value = txtEmailBody_Eng.Value & "If you wish to see a detailed breakdown of calls made during the month - please make a request at EP Request Management Site at http://ep-requestsite.shell.com (use the category Voice Services -> Mobile Phone -> Detailed Mobile Phone Expenses Report)." & Chr$(10) & Chr$(10) & "The full version of the corporate Mobile Phones Use Policy can be found at http://swweu-epp-project.shell.com/glasepp/livelink.exe/fetch/-23118/23207/24964/24970/2528960/Demand_management_-_mobile_phones_E.pdf?nodeid=2528850&vernum=0."
txtEmailBody_Rus.Value = "&#211;&#226;&#224;&#230;&#224;&#229;&#236;&#251;&#233; &#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#242;&#229;&#235;&#252;," & Chr$(10) & "&#207;&#238;&#230;&#224;&#235;&#243;&#233;&#241;&#242;&#224; &#238;&#225;&#240;&#224;&#242;&#232;&#242;&#229; &#226;&#237;&#232;&#236;&#224;&#237;&#232;&#229; &#237;&#224; &#240;&#224;&#231;&#236;&#229;&#240; &#241;&#247;&#229;&#242;&#224; &#239;&#238; &#237;&#238;&#236;&#229;&#240;&#243; &#194;&#224;&#248;&#229;&#227;&#238; &#234;&#238;&#240;&#239;&#238;&#240;&#224;&#242;&#232;&#226;&#237;&#238;&#227;&#238; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#238;&#227;&#238; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#224; &#231;&#224; &#239;&#238;&#241;&#235;&#229;&#228;&#237;&#232;&#233; &#236;&#229;&#241;&#255;&#246;." & Chr$(10) & "&#207;&#238;&#231;&#226;&#238;&#235;&#252;&#242;&#229; &#242;&#224;&#234;&#230;&#229; &#237;&#224;&#239;&#238;&#236;&#237;&#232;&#242;&#252; &#194;&#224;&#236; &#241;&#235;&#229;&#228;&#243;&#254;&#249;&#232;&#229; &#239;&#238;&#235;&#238;&#230;&#229;&#237;&#232;&#255; &#207;&#238;&#235;&#232;&#242;&#232;&#234;&#232; &#234;&#238;&#236;&#239;&#224;&#237;&#232;&#232; &#239;&#238; &#232;&#241;&#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#237;&#232;&#254; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#251;&#245; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#238;&#226;:" & Chr$(10) & " - &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#251;&#229; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#251;, &#239;&#240;&#229;&#228;&#238;&#241;&#242;&#224;&#226;&#235;&#229;&#237;&#237;&#251;&#229; &#234;&#238;&#236;&#239;&#224;&#237;&#232;&#229;&#233;, &#239;&#240;&#229;&#228;&#237;&#224;&#231;&#237;&#224;&#247;&#229;&#237;&#251; &#239;&#240;&#229;&#232;&#236;&#243;&#249;&#229;&#241;&#242;&#226;&#229;&#237;&#237;&#238; &#228;&#235;&#255; &#232;&#241;&#239;&#238;&#252;&#231;&#238;&#226;&#224;&#237;&#232;&#255; &#226; &#240;&#224;&#225;&#238;&#247;&#232;&#245; &#246;&#229;&#235;&#255;&#245;;" & Chr$(10) & " - &#239;&#240;&#232;&#229;&#236;&#235;&#232;&#236;&#251;&#233; &#240;&#224;&#231;&#236;&#229;&#240; &#231;&#224;&#242;&#240;&#224;&#242; &#237;&#224; &#232;&#241;&#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#237;&#232;&#229; &#234;&#238;&#240;&#239;&#238;&#240;&#224;&#242;&#232;&#226;&#237;&#238;&#227;&#238; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#224; &#226; &#235;&#232;&#247;&#237;&#251;&#245; &#246;&#229;&#235;&#255;&#245; &#241;&#238;&#241;&#242;&#224;&#226;&#235;&#255;&#229;&#242; $20 USD &#226; &#236;&#229;&#241;&#255;&#246;;" & Chr$(10) & " - &#202;&#238;&#236;&#239;&#224;&#237;&#232;&#255; &#238;&#241;&#242;&#224;&#226;&#235;&#255;&#229;&#242; &#231;&#224; &#241;&#238;&#225;&#238;&#233; &#239;&#240;&#224;&#226;&#238; &#231;&#224;&#239;&#240;&#238;&#241;&#232;&#242;&#252; &#243; &#241;&#238;&#242;&#240;&#243;&#228;&#237;&#232;&#234;&#224;, &#247;&#252;&#232; &#240;&#224;&#241;&#245;&#238;&#228;&#251; &#237;&#224; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#243;&#254; &#241;&#226;&#255;&#231;&#252; &#239;&#238;&#228;&#238;&#231;&#240;&#232;&#242;&#229;&#235;&#252;&#237;&#238; &#226;&#251;&#241;&#238;&#234;&#232;, &#240;&#224;&#241;&#248;&#232;&#244;&#240;&#238;&#226;&#234;&#243; &#229;&#227;&#238; &#231;&#226;&#238;&#237;&#234;&#238;&#226; &#241; &#240;&#224;&#231;&#225;&#232;&#226;&#234;&#238;&#233; &#237;&#224; &#235;&#232;&#247;&#237;&#251;&#229; &#232; &#240;&#224;&#225;&#238;&#247;&#232;&#229;;" & Chr$(10) & " - &#226; &#241;&#235;&#243;&#247;&#224;&#229; &#226;&#251;&#255;&#226;&#235;&#229;&#237;&#232;&#255; &#239;&#229;&#240;&#229;&#240;&#224;&#241;&#245;&#238;&#228;&#224; &#237;&#224; &#235;&#232;&#247;&#237;&#251;&#229; &#231;&#226;&#238;&#237;&#234;&#232;, &#241;&#243;&#236;&#236;&#224; &#241;&#226;&#251;&#248;&#229; $20 USD &#236;&#238;&#230;&#229;&#242; &#225;&#251;&#242;&#252; &#243;&#228;&#229;&#240;&#230;&#224;&#237;&#224; &#232;&#231; &#231;&#224;&#240;&#224;&#225;&#238;&#242;&#237;&#238;&#233; &#239;&#235;&#224;&#242;&#251; &#241;&#238;&#242;&#240;&#243;&#228;&#237;&#232;&#234;&#224; &#232; / &#232;&#235;&#232; &#239;&#240;&#232;&#226;&#229;&#241;&#242;&#232; &#234; &#232;&#231;&#250;&#255;&#242;&#232;&#254; &#234;&#238;&#240;&#239;&#238;&#240;&#224;&#242;&#232;&#226;&#237;&#238;&#227;&#238; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#238;&#227;&#238; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#224;." & Chr$(10)
txtEmailBody_Rus.Value = txtEmailBody_Rus.Value & "&#206;&#242;&#247;&#229;&#242; &#239;&#238; &#240;&#224;&#241;&#245;&#238;&#228;&#224;&#236; &#237;&#224; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#243;&#254; &#241;&#226;&#255;&#231;&#252; &#240;&#229;&#227;&#243;&#235;&#255;&#240;&#237;&#238; &#239;&#240;&#229;&#228;&#238;&#241;&#242;&#224;&#226;&#235;&#255;&#229;&#242;&#241;&#255; &#240;&#243;&#234;&#238;&#226;&#238;&#228;&#241;&#242;&#226;&#243; &#202;&#238;&#236;&#239;&#224;&#237;&#232;&#232;." & Chr$(10) & Chr$(10) & "&#197;&#241;&#235;&#232; &#194;&#251; &#245;&#238;&#242;&#232;&#242;&#229; &#239;&#238;&#235;&#243;&#247;&#232;&#242;&#252; &#240;&#224;&#241;&#248;&#232;&#244;&#240;&#238;&#226;&#234;&#243; &#241;&#226;&#238;&#232;&#245; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#237;&#251;&#245; &#231;&#226;&#238;&#237;&#234;&#238;&#226; &#231;&#224; &#236;&#229;&#241;&#255;&#246;, &#242;&#238; &#238;&#244;&#238;&#240;&#236;&#232;&#242;&#229; &#231;&#224;&#239;&#240;&#238;&#241; &#237;&#224; EP Request Management &#241;&#224;&#233;&#242;&#229; http://ep-requestsite.shell.com (&#232;&#241;&#239;&#238;&#235;&#252;&#231;&#243;&#233;&#242;&#229; &#234;&#224;&#242;&#229;&#227;&#238;&#240;&#232;&#254; Voice Services -> Mobile Phone -> Detailed Mobile Phone Expenses Report)." & Chr$(10) & Chr$(10) & "&#207;&#238;&#235;&#237;&#224;&#255; &#226;&#229;&#240;&#241;&#232;&#255; &#207;&#238;&#235;&#232;&#242;&#232;&#234;&#232; &#234;&#238;&#236;&#239;&#224;&#237;&#232;&#232; &#239;&#238; &#232;&#241;&#239;&#238;&#235;&#252;&#231;&#238;&#226;&#224;&#237;&#232;&#254; &#236;&#238;&#225;&#232;&#235;&#252;&#237;&#251;&#245; &#242;&#229;&#235;&#229;&#244;&#238;&#237;&#238;&#226; &#228;&#238;&#241;&#242;&#243;&#239;&#237;&#224; &#239; &#241;&#241;&#251;&#235;&#234;&#229; http://swweu-epp-project.shell.com/glasepp/livelink.exe/fetch/-23118/23207/24964/24970/2528960/Demand_management_-_mobile_phones_E.pdf?nodeid=2528850&vernum=0."


' Main form caption
UFrmMain.Caption = MsgTitle
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If flagExitCheck = False Then
If MsgBox("Are you sure, want to close the " & MsgTitle & "?", vbYesNo + vbQuestion, MsgTitle) = vbYes Then
Unload Me
Else
Cancel = 1
End If
End If
End Sub


[/more]
вот в общем то главная суть

Автор: RanderX
Дата сообщения: 09.07.2009 00:26
Коллеги, нужна помощь.

Есть огромный отчет с кучей графиков. Данный отчет формируется макросами на базе шаблонов. Т.к. файл действительно тяжелый, то чтобы ускорить загрузку и работу, все формулы после подготовки отчета преобразуются в значения.

К сожалению, при открытии файла Excel каждый раз обсчитывает графики. Что занимает ну очень продолжительное время.

Нужен макрос обеспечивающий преобразование графиков в картинки. Тогда один раз сконвертировать всю графику и отчет будет шустро открываться и работать.

Возможный алгоримт: Скопировать график в буфер, удалить его и вставить график как картинку bmp на то же место. Пиксель в пиксель.

К сожалению реализовать это у меня не получилось.

Надеюсь на Вашу помощь.

Спасибо!
Автор: SAS888
Дата сообщения: 09.07.2009 05:37
RanderX
Попробуйте так (для активного листа):

Код: Sub ChartToPicture()
Dim i As Integer: Application.ScreenUpdating = False
With ActiveSheet
If .ChartObjects.Count = 0 Then Exit Sub
For i = 1 To .ChartObjects.Count
.ChartObjects(i).Chart.Export Filename:="Temp.gif", FilterName:="GIF"
.ChartObjects(i).TopLeftCell.Select
.Pictures.Insert (ThisWorkbook.Path & "\Temp.gif")
Next
.ChartObjects.Delete: Kill ThisWorkbook.Path & "\Temp.gif": [A1].Select
End With
End Sub
Автор: stalker199
Дата сообщения: 09.07.2009 07:20
Люди! Помогите, запарился уже с одной пустяковой проблемой, никак не могу решить.


У меня установлен excel 2007. я добавил через меню developer несколько listbox-ов. Мне нужно через VBA поменять значение в одном из них при наступлении некоторого события. Как можно узнать для этого номер listbox-а, который я создал через developer? Я пытаюсь написать в VBA следующее

Sheet2.ListBox2.Value = 1
к примеру, перебрововал уже все номера листбоксов до 50, но система не опознает их, пишет "Method or data member not found".

Подскажите кто-нибудь как узнать номер (и возможно название) объектов листбокс, созданных в excel 2007 через developer, чтобы менять их свойства.

Спасибо большое заранее!!!
Автор: SAS888
Дата сообщения: 09.07.2009 08:49
stalker199
Следующий код поочередно покажет все объекты "ListBox" на активном рабочем листе путем выделения ячейки левого верхнего угла текущего объекта и выведет сообщение с его именем.

Код: Sub Test()
Dim Sh As Shape
For Each Sh In ActiveSheet.Shapes
If Sh.Name Like "List Box*" Then
Sh.TopLeftCell.Select: MsgBox Sh.Name
End If
Next
End Sub
Автор: visual73
Дата сообщения: 09.07.2009 08:54
stalker199
Используй ЛистБокс не из "Элементы управления формы" а из "Элементы ActiveX".
И через ПравМышь/Свойства можно узнать всё об объекте.
Если же хочешь из первой категории то нажми кнопку "Просмотр кода" и увидишь название элемента.
Автор: ZlydenGL
Дата сообщения: 09.07.2009 08:57
stalker199, а если в режиме конструктора дважды кликнуть по контролу - разве не откроется окно ввода его обработчика по-умолчанию (onChange)? Как минимум оттуда можно узнать реальное имя контрола

Peen, слишком много текста, на работе не потяну (а дома заняться времени тем более не будет - переезд). Если вышеописанного не хватает - попробуй максимально детализировать, что именно требуется (с примерами: на входе файл1.хлс, на выходе хотим получить таблицу как в файле2.хлс). Тогда попробуем подняться. С ходу можно уверенно сказать - вышеприведенные тобой макросы написаны СОВЕРШЕННО неоптимально и нечитабельны - если нужен редизайн ТЗ, проще написать требуемое с нуля.
Автор: visual73
Дата сообщения: 09.07.2009 09:03
ZlydenGL

Цитата:
stalker199, а если в режиме конструктора дважды кликнуть по контролу - разве не откроется окно ввода его обработчика по-умолчанию (onChange)? Как минимум оттуда можно узнать реальное имя контрола

это только для АктивХ работает, а для форм - не прокатит.
Автор: ZlydenGL
Дата сообщения: 09.07.2009 09:50
visual73, дык если контрол на форме - то простым выделением его в среде IDE VBA можно увидеть название этого контрола в списке свойств Или в 2007 офисе в этом плане выполнен "революционный прорыв взад"?
Автор: Mitjusha
Дата сообщения: 09.07.2009 10:00
Добрый всем день.
В колонках A:AQ на листе таблица. Вот часть кода

Columns("D:AO").Select
Selection.EntireColumn.Hidden = False
Columns("H:J").Select
Selection.EntireColumn.Hidden = True

который по идее должен сначала отобразить все скрытые колонки в диапазоне D:AO, а затем скрыть колонки с H по J.
Первая часть работает - колонки отображаются, а вторая часть скрывает все колонки с А по AQ. Причем пробовал скрывать и другие диапазоны - результат тот же.
Подскажите, пожалуйста, в чем тут дело.
Автор: visual73
Дата сообщения: 09.07.2009 10:04
ZlydenGL
неее, ты не понял. Прочитай постом выше, я писал про
"Элементы управления формы" и "Элементы ActiveX" (и пост stalker199 прочитай).
Я имел ввиду ЛистБокс не как АктивХ а как элемент Управления. А размещаются оба конечно на
Цитата:
на активном рабочем листе
. И именно ЭУ ЛистБокс не работает на два клика.
Здесь игра слов Shape-Form (Форма-Форма) ))
А уж какой элемент юзал stalker199, это у него надо спрашивать. Я так думаю что как раз именно Элемент Управления.

просто поправка, надеюсь без обид )


Mitjusha

Columns("D:AO").Hidden = False
Columns("H:J").Hidden = True




Цитата:
visual73, да какие могут быть обиды среди двух человек, изображающих телепатов

ZlydenGL
отжЁг
Автор: ZlydenGL
Дата сообщения: 09.07.2009 10:31
visual73, да какие могут быть обиды среди двух человек, изображающих телепатов

Добавлено:
Mitjusha, проверил твой код у себя (Office 2k3 SP3 En) - работает именно описанным тобой образов, глюк НЕ детектится. Есть мнение, что мешает какой-то другой фрагмент кода. Можешь целиком процедуру выложить?
Автор: visual73
Дата сообщения: 09.07.2009 11:01
ZlydenGL
он не детектится если делаешь пошагово. а ты попробуй запусти целиком

Sub Макрос1()

Columns("D:AO").Hidden = True

Columns("D:AO").Select
Selection.EntireColumn.Hidden = False
Columns("H:J").Select
Selection.EntireColumn.Hidden = True
End Sub

Глюк ДЕТЕКТИТСЯ. Правда не знаю почему так происходит.
В любом случае как я написал выше работает:

Columns("D:AO").Hidden = False
Columns("H:J").Hidden = True
Автор: ZlydenGL
Дата сообщения: 09.07.2009 11:05
visual73, дык и целиком запускал - НЕТУ глюка! Скрыты только колонки H, I и J. Мой макрос:

Код: Sub My()
Columns("D:AO").Select
Selection.EntireColumn.Hidden = False
Columns("H:J").Select
Selection.EntireColumn.Hidden = True
End Sub
Автор: visual73
Дата сообщения: 09.07.2009 11:08
ZlydenGL
странно. Мож в версии дело, у меня 2007.
Я запускаю код пошагово -всё раббит, а если целиком "Выполнить" - не работает. Любопытно.

WinXP sp3 ru, Office 2007 sp2 ru
Автор: ZlydenGL
Дата сообщения: 09.07.2009 11:15
visual73, я уже в полном астрале. Проверил на 2k7 - РАБОТАЕТ! Скрывает только искомые 3 колонки Однако, шайтан, идеи кончились
Автор: visual73
Дата сообщения: 09.07.2009 11:16
ZlydenGL
не знаю где у меня перекособочило, но сейчас заработало.
мож я где проглядел. Извини. Астрал отпадает )

Правильно, надо смотреть весь код.

Добавлено:
слишком помогающих много, пойду покушаю ))
Автор: ZlydenGL
Дата сообщения: 09.07.2009 11:38
visual73, "семья-то большая, да два человека" (с) Приятного!
Автор: Peen
Дата сообщения: 09.07.2009 12:55
ZlydenGL
помогите сделать вот что:

из

ФИО менеджера l e-mail менеджера l e-mail сотрудника l ФИО сотрудника l телефон сотрудника l $


формируем массив
в массиве формируем поиск по менеджерам - нахождение единственных,неповторяющихся фамилий и их емайлов - формируем массив
далее идем еще раз по ФИО менеджера и для каждого менеджера формируем массив или список его сотрудников
Автор: ZlydenGL
Дата сообщения: 09.07.2009 13:13
Peen, чем не понравился все-таки выложенный ранее вариант? Он какую-то часть задачи не выполняет?
Автор: Peen
Дата сообщения: 09.07.2009 13:29
If MCount>1 Then SendEMail(txtFromMailID.Text, Cells(I,2) & "@mail.ru", "Some Subject", Body)
почему выделяет не могу понять

колонки в которых находятся все данные - мы вибираем в форме - то есть данные могут распологаться не в таком порядке



Автор: ZlydenGL
Дата сообщения: 09.07.2009 13:36
Peen, выделяет КРАСНЫМ? Убери скобки, тоже советовал

А про привязку к форме - я тебе скинул подход, делать тюнинг на предмет использования имеющихся констант/переменных - уже твоя часть... Обрати внимание на древнюю мудрость в самом первом сообщении темы
Автор: Peen
Дата сообщения: 09.07.2009 13:38
Убираю - тоже выделяет

Добавлено:
ZlydenGL
проблема с скобками решена

теперь надо как то все скомпоновать что бы работало

лучше переписать рассылку или ее так как нибдуь есть вариант присобачить?
Автор: ZlydenGL
Дата сообщения: 09.07.2009 14:00
Peen, дык я же выше и для рассылки процедуру привел Это сообщение, первый код Не работает? Или под скомпоновкой ты имеешь ввиду привязку к имеющимся переменным/настройкам? Если последнее - лучше пришли файл книги, без объектной привязки парсить ТАКОЙ код - тот еще мазохизьм ИМХО
Автор: Mitjusha
Дата сообщения: 09.07.2009 15:22
visual73, ZlydenGL

Попробовал
Columns("D:AO").Hidden = False
Columns("H:J").Hidden = True
Получилось.
Спасибо.
По свободе попробую разобраться чего мой код не сработал.
Автор: stalker199
Дата сообщения: 09.07.2009 18:52
SAS888 спасибо большое!!

visual73 понял уже, спасибо! блин дибильный офис 2007 все-таки

ZlydenGL контрол не на форме, а добавлен через меню экселя
Автор: RanderX
Дата сообщения: 09.07.2009 21:49
SAS888
Спасибо большое!
Красивое и удобное решение, я все пытался сделать это через копирование-вставку.
В сторону экспорта-импорта как-то не думал...
Автор: jurris
Дата сообщения: 10.07.2009 14:14
Помогите разобраться кое в чем...
Почему то у меня результаты расчетов в VBA отличаются от результатов на Паскале и С.
Причем алгоритм одинаковый. На Паскале и С все сходится один в один, а если сравнить с VBA, разница между значениями получается где-то от 0,05 до 1. Причем чем больше значение тем больше разница. Например 15,55 и 15,6; 498,62 и 499,7.
Если поменять Single на Double нет разницы - отклонение такое же.
Где может быть собака зарыта?
Автор: strat
Дата сообщения: 10.07.2009 14:33
excel имеет ограничение на точность вычисления насколько я знаю

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133

Предыдущая тема: Написание своего HyperTerminal для считывания данных


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.