Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проигнорировать сообщение MS Excel в коде? / 17 сообщений из 17, страница 1 из 1
02.10.2009, 15:02
    #36229768
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Подскажите, пожалуйста, как сделать, чтобы сообщение от Excel "заменить содержимое конечных ячеек" не появлялось на экране (по умолчанию ответить на него "ДА") ?
...
Рейтинг: 0 / 0
02.10.2009, 15:03
    #36229774
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Имеется в виду, как в коде программы написать такую операцию..
...
Рейтинг: 0 / 0
02.10.2009, 15:04
    #36229777
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
у объекта Application есть замечательное свойство по этому поводу
...
Рейтинг: 0 / 0
02.10.2009, 20:15
    #36230393
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Application.DisplayAlerts=False
...
Рейтинг: 0 / 0
05.10.2009, 07:11
    #36231890
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Спасибо большое =) а на них по умолчанию ДА отвечаться будет?
...
Рейтинг: 0 / 0
05.10.2009, 07:44
    #36231902
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Ошибка =( Method DisplayAlerts of object Application failed =(
Не работает
...
Рейтинг: 0 / 0
05.10.2009, 09:04
    #36231982
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Shun,

ну тогда покажите код.
...
Рейтинг: 0 / 0
05.10.2009, 09:47
    #36232036
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
Public Sub ALV_SAP_Exit()

' я тут ставила но не работает 

' Константы
TITLE_ROW = Sheets("Настройки").Range("B1").Value
SEQ_COL = Sheets("Настройки").Range("B2").Value
KEY_COL_F = Sheets("Настройки").Range("B3").Value
KEY_COL_T = Sheets("Настройки").Range("C3").Value
VAL_COL_F = Sheets("Настройки").Range("B4").Value
VAL_COL_T = Sheets("Настройки").Range("C4").Value
DATA_ROW = Sheets("Настройки").Range("B5").Value
HEADER_ROW_F = Sheets("Настройки").Range("B6").Value
HEADER_ROW_T = Sheets("Настройки").Range("C6").Value
CHECK_ROW = Sheets("Настройки").Range("B7").Value
FOOTER_01 = Sheets("Настройки").Range("B8").Value
FOOTER_02 = Sheets("Настройки").Range("B9").Value
FOOTER_03 = Sheets("Настройки").Range("B10").Value
FOOTER_04 = Sheets("Настройки").Range("B11").Value
FOOTER_05 = Sheets("Настройки").Range("B12").Value

    
' Обновляем основную сводную таблицу на активном листе 'Регистр'
 
 Sheets("Регистр").Select
 ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
 Application.DisplayAlerts = False
 
' Делаем скрытыми столбцы показателей, для которых нет транзакционных данных

    i =  0 
    k =  0 
 
    For k = VAL_COL_F To VAL_COL_T Step  2 
        If Cells(CHECK_ROW, k).Value = "" Then
           Range(Columns(k), Columns(VAL_COL_T)).Select
    '       Selection.EntireColumn.Hidden = True
           i = k -  1 
           Exit For
        End If
    Next k
    

    
' Производим нумерацию строк
    h =  1 
    For n = DATA_ROW To  65536  Step  1 
        t =  0 
        For j = KEY_COL_F To KEY_COL_T Step  1 
            If Cells(n, j) <> "" Then
               Cells(n, SEQ_COL) = h
               h = h +  1 
               t =  1 
               Exit For
            End If
        Next j
        If t =  0  Then
           Exit For
        End If
    Next n
    
    Range(Cells(DATA_ROW, SEQ_COL), Cells(n -  1 , SEQ_COL)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    
    Range("A1").Select
    
  Set r = Sheets("Регистр").UsedRange
  endstr = r.Rows.Count
    
    endstr = endstr +  4 
    
 ' Вставляем данные с листа формат
 
    Sheets("Format").Select
    Set p = Sheets("Format").UsedRange
    pendstr = p.Rows.Count
    Range(Cells( 2 ,  4 ), Cells(pendstr,  4 )).Select
    Selection.Copy
    Sheets("Регистр").Select
    Range(Cells( 10 ,  19 ), Cells(endstr -  4 ,  19 )).Select
    ActiveSheet.Paste
    
    Sheets("Format").Select
    Set p = Sheets("Format").UsedRange
    pendstr = p.Rows.Count
    Range(Cells( 2 ,  10 ), Cells(pendstr,  10 )).Select
    Selection.Copy
    Sheets("Регистр").Select
    Range(Cells( 10 ,  20 ), Cells(endstr -  4 ,  20 )).Select
    ActiveSheet.Paste
    
    Sheets("Format").Select
    Set p = Sheets("Format").UsedRange
    pendstr = p.Rows.Count
    Range(Cells( 2 ,  7 ), Cells(pendstr,  7 )).Select
    Selection.Copy
    Sheets("Регистр").Select
    Range(Cells( 10 ,  22 ), Cells(endstr -  4 ,  22 )).Select
    ActiveSheet.Paste
    
    
    Set d = Sheets("Регистр").UsedRange
    endstr1 = d.Rows.Count
    

' Разносим значения по кодам продукции и вычисляем итоги

    
    For i =  7  To d.Rows.Count -  1 
    avalue = Trim(d.Cells(i,  19 ).Value)
    bvalue = Trim(d.Cells(i,  22 ).Value)
    cvalue = Trim(d.Cells(i,  20 ).Value)
    bvalue = Replace(bvalue, ",", ".")
    cvalue = Replace(cvalue, ",", ".")
    
    If avalue =  610  Then
    d.Cells(i,  9 ) = bvalue
    d.Cells(i,  10 ) = cvalue
    a610 = a610 + Val(bvalue)
    b610 = b610 + Val(cvalue)
    End If
    
    If avalue =  620  Then
    d.Cells(i,  11 ) = bvalue
    d.Cells(i,  12 ) = cvalue
    a620 = a620 + Val(bvalue)
    b620 = b620 + Val(cvalue)
    End If
    
    If avalue =  630  Then
    d.Cells(i,  13 ) = bvalue
    d.Cells(i,  14 ) = cvalue
    a630 = a630 + Val(bvalue)
    b630 = b630 + Val(cvalue)
    End If
    
    If avalue =  640  Then
    d.Cells(i,  15 ) = bvalue
    d.Cells(i,  16 ) = cvalue
    a640 = a640 + Val(bvalue)
    b640 = b640 + Val(cvalue)
    End If
    
    If avalue =  650  Then
    d.Cells(i,  17 ) = bvalue
    d.Cells(i,  18 ) = cvalue
    a650 = a650 + Val(bvalue)
    b650 = b650 + Val(cvalue)
    End If
    
    Next i
    
    
    
    
    
    
' Вставляем итоговые значения по  кодам продукции

For i =  7  To endstr1
If Cells(i,  2 ).Value = "Общий итог" Then

    d.Cells(i,  9 ).Value = a610
    d.Cells(i,  10 ).Value = b610
    
    d.Cells(i,  11 ).Value = a620
    d.Cells(i,  12 ).Value = b620
    
    d.Cells(i,  13 ).Value = a630
    d.Cells(i,  14 ).Value = b630
    
    d.Cells(i,  15 ).Value = a640
    d.Cells(i,  16 ).Value = b640
    
    d.Cells(i,  17 ).Value = a650
    d.Cells(i,  18 ).Value = b650
    k = i
    
    End If
    

Next i
    
    
    
    
    
    For i =  9  To k
    
    Range(Cells( 10 ,  4 ), Cells(k,  18 )).Select
    With Selection.Font
        .Name = "Arial Cyr"
        .FontStyle = "обычный"
        .Size =  10 
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    
    Selection.Interior.ColorIndex = xlNone
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With

Next i
 
 
    
For i =  7  To k

d.Cells(i,  9 ).NumberFormat = "0.000"
d.Cells(i,  10 ).NumberFormat = "0.00"
d.Cells(i,  11 ).NumberFormat = "0.000"
d.Cells(i,  12 ).NumberFormat = "0.00"
d.Cells(i,  13 ).NumberFormat = "0.000"
d.Cells(i,  14 ).NumberFormat = "0.00"
d.Cells(i,  15 ).NumberFormat = "0.000"
d.Cells(i,  16 ).NumberFormat = "0.00"
d.Cells(i,  17 ).NumberFormat = "0.000"
d.Cells(i,  18 ).NumberFormat = "0.00"
d.Cells(i,  8 ).EntireColumn.Hidden = True
d.Cells(i,  19 ).EntireColumn.Hidden = True
d.Cells(i,  20 ).EntireColumn.Hidden = True
d.Cells(i,  22 ).EntireColumn.Hidden = True
d.Cells(i,  6 ).EntireColumn.Hidden = True
d.Cells(i,  7 ).EntireColumn.Hidden = True


Next i

    

    
    
  Sheets("Подпись").Select
  Rows("1:5").Select
  Selection.Copy
  Sheets("Регистр").Select
  Range(Cells(endstr,  1 ), Cells(endstr,  1 )).Select
  Selection.Insert Shift:=xlDown
  
  
  
  
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = "$A$1:$S$35"
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints( 0 . 787401575 )
        .RightMargin = Application.InchesToPoints( 0 . 787401575 )
        .TopMargin = Application.InchesToPoints( 0 . 984251969 )
        .BottomMargin = Application.InchesToPoints( 0 . 984251969 )
        .HeaderMargin = Application.InchesToPoints( 0 . 5 )
        .FooterMargin = Application.InchesToPoints( 0 . 5 )
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality =  600 
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide =  1 
        .FitToPagesTall = False

    End With



 
End Sub
...
Рейтинг: 0 / 0
06.10.2009, 07:33
    #36234175
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
эх блин ..... =( не знает нкто
...
Рейтинг: 0 / 0
06.10.2009, 08:13
    #36234203
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Я просто пока чайник в VBA -)

Может сюда (приложила модуль с объявлением переменных) надо создать объект Application? Я просто не знаю синтаксиса и что и где написать надо ... =(


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub ALV_CUS_Exit()

  Dim objs As ChartObjects
  
  Dim obj As ChartObject
  Dim sheet As Worksheet
  Dim r As Range
  For Each sheet In Sheets
    Set objs = sheet.ChartObjects
    For Each obj In objs
      Set r = Sheets("RawData").UsedRange
      obj.Chart.SetSourceData Source:=r
    Next obj
  Next sheet
End Sub
...
Рейтинг: 0 / 0
06.10.2009, 21:28
    #36236144
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Shun,

вы этот код откуда запускаете ?
...
Рейтинг: 0 / 0
06.10.2009, 21:46
    #36236163
Как проигнорировать сообщение MS Excel в коде?
2 Shun ,
Где Вы этот код достали ? :)... У Вас есть побольше ? Выкладывайте!
Можно маленькое ламерское замечание?
Подумайте как можно разумнее использовать цикли, вот например здесь:
вместо:
Код: plaintext
1.
2.
3.
4.
d.Cells(i,  9 ).NumberFormat = "0.000"
d.Cells(i,  10 ).NumberFormat = "0.00"
d.Cells(i,  11 ).NumberFormat = "0.000"
d.Cells(i,  12 ).NumberFormat = "0.00"
d.Cells(i,  13 ).NumberFormat = "0.000"

я бы сделал так:
Код: plaintext
d.Cells(i, i+ 8 ).NumberFormat = "0.000"

И еще, что бы копировать, не обязательно выделять (это то, куда меня тыкали постоянно):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub MozhnaTak()
Sheets("1").Cells( 1 ,  1 ).Copy
Sheets("3").Cells( 1 ,  1 ).PasteSpecial
End Sub

Sub ANeTak()
Sheets("1").Cells( 1 ,  1 ).Select
Selection.Copy
Sheets("3").Cells( 1 ,  1 ).Select
Selection.PasteSpecial
End Sub
При этом можна находиться на sheets("2") например...
...
Рейтинг: 0 / 0
06.10.2009, 22:08
    #36236176
Как проигнорировать сообщение MS Excel в коде?
big-dukeShun,

вы этот код откуда запускаете ?

Присоединяюсь к вопросу. Прогуглил - такая проблема возникает при использовати с Internet Explorer...

2 Shun ,
Попробуйте, просто так:
Код: plaintext
1.
2.
Sub NachnemSProstogo
Application.DisplayAlerts=False
End Sub

Есть ошибка ?
...
Рейтинг: 0 / 0
06.10.2009, 23:24
    #36236229
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Код: plaintext
ThisWorkbook.Application.DisplayAlerts=False
...
Рейтинг: 0 / 0
07.10.2009, 10:49
    #36236732
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
> Автор: Тоже чайник
> Можно маленькое ламерское замечание?
> Подумайте как можно разумнее использовать цикли, вот например здесь:
> вместо:
>
> d.Cells(i, 9).NumberFormat = "0.000"
> d.Cells(i, 10).NumberFormat = "0.00"
> d.Cells(i, 11).NumberFormat = "0.000"
> d.Cells(i, 12).NumberFormat = "0.00"
> d.Cells(i, 13).NumberFormat = "0.000"
> я бы сделал так:
>
> d.Cells(i, i+8).NumberFormat = "0.000"

Эти коды приведут к разному результату.
Если советовать оптимизацию, то цикл можно совсем убрать и переписать как-то так:
Код: plaintext
1.
2.
3.
4.
5.
    d.Range("I7:I" & CStr(k) & ",K7:K" & CStr(k) & _
 ",M7:M" & CStr(k) & ",O7:O" & CStr(k) & ",Q7:Q" & _
CStr(k)).NumberFormat = "0.000"
    d.Range("J7:J" & CStr(k) & ",L7:L" & CStr(k) & ",N7:N" & _
CStr(k) & ",P7:P" & CStr(k) & ",R7:R" & CStr(k)).NumberFormat = "0.00"
    d.Range("F:H,S:T,V").EntireColumn.Hidden = True

Ещё, я бы посоветовал поставить Option Explicit в начале модуля и пообъявлять все переменные.
И например это:
Код: plaintext
1.
2.
3.
...
Range(Cells( 10 ,  4 ), Cells(k,  18 )).Select
With Selection.Font
....
можно переписать на это:
Код: plaintext
1.
2.
...
With Range(Cells( 10 ,  4 ), Cells(k,  18 )).Font
....

Но это придет с опытом, не переживай

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.10.2009, 14:39
    #36239842
astatsa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Тоже чайник 2 Shun ,
И еще, что бы копировать, не обязательно выделять (это то, куда меня тыкали постоянно):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub MozhnaTak()
Sheets("1").Cells( 1 ,  1 ).Copy
Sheets("3").Cells( 1 ,  1 ).PasteSpecial
End Sub

Sub ANeTak()
Sheets("1").Cells( 1 ,  1 ).Select
Selection.Copy
Sheets("3").Cells( 1 ,  1 ).Select
Selection.PasteSpecial
End Sub
При этом можна находиться на sheets("2") например...
Я бы сказал, не только чтобы копировать, но и вообще выделять не нужно.
Код: plaintext
1.
2.
Sub ATakEsheLychshe()
Sheets("1").Cells( 1 ,  1 ).Copy(Sheets("3").Cells( 1 ,  1 ))
End Sub
...
Рейтинг: 0 / 0
16.10.2009, 12:05
    #36255226
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проигнорировать сообщение MS Excel в коде?
Спасибо за советы =) Я переписала модуль так чтобы просто сообщения не было =) теперь уже всё позади =))))
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как проигнорировать сообщение MS Excel в коде? / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]