Hi ik zit met een stuk code te worstelen die het volgende doet:
-> 1: ga naar een file op netwerk
-> 2: open de file en copieer column A-G
-> 3: ga naar de tab in originele werkboek
-> 4: paste de zooi in A-G
-> 5: pak volgende file
Nou staat bovenin de macro een call killall()
Echter tijdens het kopieren en plakken blijft dat ding af en toe rekenen....
Er is een andere data plugin active, maar buiten VBA om calc op manual zetten voorkomt dat dat update, dus aangenomen dat dat ook zo werkt binnen vba. (Dit is een bloomberg plugin en kan ik niet aanpassen)
Iemand enig idee waarom die blijft rekenen? En of hoe ik dat echt stop? Want dit rekenen van 1 cyclus kost 2 minuten... en dat 43x ofzo..
Dan heb ik die macro:
-> 1: ga naar een file op netwerk
-> 2: open de file en copieer column A-G
-> 3: ga naar de tab in originele werkboek
-> 4: paste de zooi in A-G
-> 5: pak volgende file
Nou staat bovenin de macro een call killall()
Echter tijdens het kopieren en plakken blijft dat ding af en toe rekenen....
Er is een andere data plugin active, maar buiten VBA om calc op manual zetten voorkomt dat dat update, dus aangenomen dat dat ook zo werkt binnen vba. (Dit is een bloomberg plugin en kan ik niet aanpassen)
Iemand enig idee waarom die blijft rekenen? En of hoe ik dat echt stop? Want dit rekenen van 1 cyclus kost 2 minuten... en dat 43x ofzo..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Sub killall()
With Application
' .ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
End Sub
Sub unkillall()
With Application
' .ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub |
Dan heb ik die macro:
code:
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
| Sub Import_Issuer_data()
Call killall
Dim worksheetnaam As String
worksheetnaam = ActiveWorkbook.Name
For i = 2 To 44
Dim tabnaam As String
Dim naamfileurl As String
Dim naamfile As String
Dim update As Boolean
Dim issuer As String
update = 0
tabnaam = Sheets("BLA").Cells(i, 1).Value
naamfileurl = Sheets("BLA").Cells(i, 17).Value
naamfile = Sheets("BLA").Cells(i, 16).Value
issuer = Sheets("BLA").Cells(i, 2).Value
For j = 2 To 5
If (Sheets("BLA").Cells(j, 12).Value = issuer) Then
update = Sheets("BLA").Cells(j, 13).Value
End If
Next j
If update Then
Workbooks.Open naamfileurl, Origin:=xlWindows
Columns("A:G").Select
Application.CutCopyMode = False
Selection.Copy
Windows(worksheetnaam).Activate
Sheets(tabnaam).Select
Range("A:G").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Windows(naamfile).Activate
Application.DisplayAlerts = False
ActiveWindow.Close
End If
update = 0
Next i
Sheets("BLA").Select
Call unkillall
End Sub |
ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)