Dit is de code die ik gebruik om excel bestand 1 vanaf een server te plukken en gereed te maken voor export naar text, waarna het bestand als txt wordt weggezet.
Toelichting: het pad vanaf Marnix\Simulatiefolder etc is een testomgeving.
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
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
| Sub KanaDB()
i = 1
x = 1
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
"G:\Reporting\Projects\KANA Response DB\Marnix\SIMULATIEFOLDER\BRONBESTANDEN\Message Volume last week by mailbox.xls"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"G:\Reporting\Projects\KANA Response DB\Marnix\SIMULATIEFOLDER\OUTPUT EXCEL VOOR INPUT ACCESS\KANA import weekly.txt", FileFormat:=xlText _
, CreateBackup:=False
Application.DisplayAlerts = True
Range("A1:U10").Select
Selection.Find(What:="Dates Found:", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, Searchdirection:=xlNext, MatchCase:=False).Select
pos = InStr(1, ActiveCell.Value, ":") + 2
datum = Mid(ActiveCell.Value, pos, 10)
week = Format(datum, "ww", vbMonday, vbFirstFullWeek)
jaar = Format(datum, "yyyy", vbMonday, vbFirstFullWeek)
Range("X1").Select
ActiveCell.EntireColumn.Delete
Range("AB1").Select
ActiveCell.EntireColumn.Delete
'adding new sheet for copy paste special values for deleting graphical images.
Sheets.Add
Sheets("KANA import weekly").Select
Cells.Select
Selection.Copy
Sheets("Sheet1").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("KANA import weekly").Select
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
' Sheets("KANA import weekly").Select
' Sheets("KANA import weekly").Name = "Sheet1"
Range("A1").Select
'deleting rows and columns, unmerge merged cells
Do Until i = 300
If InStr(1, ActiveCell.Value, "@") Then
ActiveCell.EntireRow.Select
Selection.Interior.ColorIndex = 2
Selection.Font.ColorIndex = 1
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.EntireRow.Delete
End If
i = i + 1
Loop
Columns("A:Z").Select
Range("a81").Activate
With Selection
.VerticalAlignment = xlTop
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A1").Select
Do Until x = 35
If ActiveCell.Value = "" Then
ActiveCell.EntireColumn.Delete
Else
ActiveCell.Offset(0, 1).Select
End If
x = x + 1
Loop
Columns("B:Z").Select
Range("B1").Activate
Selection.NumberFormat = "general"
Range("L1").Select
ActiveCell.EntireColumn.Delete
Range("M1").Select
ActiveCell.EntireColumn.Delete
Columns("M:IV").Select
Range("O2").Activate
Selection.EntireColumn.Hidden = True
Range("A1:L1000").Select
Selection.Copy
Sheets.Add
Sheets("Sheet2").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Sheet1").Select
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
Sheets("Sheet2").Select
Sheets("Sheet2").Name = "Sheet1"
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
Application.ScreenUpdating = True
MsgBox "KANA response preparation procedure is completed successfully", vbOKOnly, "Ready"
End Sub |
Dit is de code waarmee ik excel bestand 2 klaarmaak en opsla als tekst.
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
| Sub phonedbprep()
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
"G:\Reporting\Projects\KANA Response DB\Marnix\SIMULATIEFOLDER\BRONBESTANDEN\pincodes summary report.htm"
Rows("1:25").Delete
Cells.Select
Selection.Find(What:="Total Calls", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, Searchdirection:=xlNext, MatchCase:=False).Select
Selection.EntireRow.Delete
r = 1
c = 3
Cells(1, 3).Select
Do Until ActiveCell.Offset(0, -2) = ""
'splitting time
i = 3
posUur = Mid(ActiveCell.Value, i, 1)
posMin = Mid(ActiveCell.Value, i + 2, 2)
posSec = Mid(ActiveCell.Value, i + 5, 2)
ActiveCell.Offset(0, 1).Select
ActiveCell = posUur
ActiveCell.Offset(0, 1).Select
ActiveCell = posMin
ActiveCell.Offset(0, 1).Select
ActiveCell = posSec
r = r + 1
Cells(r, c).Select
Loop
Range("C1").Select
Selection.EntireColumn.Delete
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"G:\Reporting\Projects\KANA Response DB\Marnix\SIMULATIEFOLDER\OUTPUT EXCEL VOOR INPUT ACCESS\pincodesummreport.txt", FileFormat:=xlText _
, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
Application.ScreenUpdating = True
MsgBox "Pincode preparation procedure is completed successfully", vbOKOnly, "Ready"
End Sub |
Onderstaande is de code die gebruikt wordt om het txt bestand in te lezen in de Access tabel. De code wordt opgestart door de AutoExec functie in Access *(dus bij t opstarten).
Deze werkt nog niet helemaal foutloos, maar dat komt omdat ik de code eerst had geschreven in het Macro-gedeelte van Access... dat werkte niet zo lekker, dus ben m handmatig aan t inbrengen in VBA.
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
| Function runmacroonstartup()
If MsgBox("Do you want to start import procedure for KANA response?", vbYesNo, "Start KANA import Procedure") = vbYes Then
GoTo Macrovervolg1
DoCmd.Quit
Else
If MsgBox("Do you want to use the database-file anyway?", vbYesNo, "Use file anyway?") = vbYes Then
Exit Function
Else
DoCmd.Quit
End If
End If
Macrovervolg1:
DoCmd.OpenTable "kana import from txt", acViewNormal, acEdit
DoCmd.RunCommand (acCmdSelectAllRecords)
SetWarnings = False
DoCmd.RunCommand (acCmdDeleteRecord)
SetWarnings = True
DoCmd.Close
DoCmd.TransferText acImportDelim, "kana import", "KANA import from txt", "G:\Reporting\Projects\KANA Response DB\Marnix\SIMULATIEFOLDER\OUTPUT EXCEL VOOR INPUT ACCESS\KANA import weekly.txt", False
DoCmd.Quit
End Function |
En dit is de code voor de import in Access van het 2e txt bestand.(Deze wordt ook bij opstarten ingeschakeld) Zoals je ziet, hier is eigenlijk het geval wat ik in de vorige code al heb weggewerkt. De macro in Access die hier wordt getriggerd moet nog worden overgezet naar VBA.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Function runmacroonstartup()
If MsgBox("Do you want to start import procedure for Pincode?", vbYesNo, "Start Pincode import Procedure") = vbYes Then
DoCmd.RunMacro "ImportPhoneDBweekly"
End If
If MsgBox("Do you want to use the database-file anyway?", vbYesNo, "Use file anyway?") = vbYes Then
Exit Function
Else
DoCmd.Quit
End If |
De code voor het opstarten van Access vanuit Excel is momenteel niets meer dan een hyperlink, die precies doet wat ik momenteel wil. De code zoals ik hem hiervoor had (na hulp van Boss) zag er ongeveer zo uit.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| Sub Test()
Dim oAcc As New Access.Application
oAcc.OpenCurrentDatabase "G:\reporting\Projects\KANA Response DB\Marnix\SIMULATIEFOLDER\OUTPUT ACCESS\KANA response for import.mdb", False
If MsgBox("Do you want to start import procedure for Pincode?", vbYesNo, "Start Pincode import Procedure") = vbYes Then
DoCmd.RunMacro "ImportPhoneDBweekly"
End If
If MsgBox("Do you want to use the database-file anyway?", vbYesNo, "Use file anyway?") = vbYes Then
Exit Function
End If
oAcc.CloseCurrentDatabase
End Sub |
tot slot heb ik dus een excel bestand die dus alles aanstuurt. Het komt in het kort hierop neer:
Knop 1: start macro 1, bewerk xls -> txt, exit excel
Knop 2: start acces-file, autoexec start import proces, exit access
Knop 3: start macro 2, bewerk xls -> txt, exit excel
Knop 4: start access-file, autoexec start import proces, exit access
Knop 2 en 4 zijn momenteel dus hyperlinks...
Ben benieuwd naar jullie reactie
[ego-streel modus]
Hmm, nu ik t zo bekijk lijkt t heel wat voor als je net 4 dagen met VBA bezig bent

[/ego-streel modus]
iets met foto's...