Hallo allemaal,
Het is mijn bedoeling om via een VBA script in Word 2003 een formule in een cel van Excel 2003 te plaatsen. Klinkt vrij simpel, maar nu komt de moeilijkheid.
Ik heb een script gevonden (klassenmodule: xlsconnection) waarmee ik gegevens in een excel-sheet kan plaatsen zonder dat het excel-bestand geopend hoeft te worden als normaal gesproken:
via de xlsconnection kan ik als volgt gegevens weg schrijven in het excel bestand:
Nu mijn vraag: hoe krijg ik het voor elkaar dat de waarde die achter 'rs!Waarde' komt te staan een waarde is dat de cel in excel als formule wordt ingevuld?
Ik heb al gevonden dat dat kan met FormulaR1C1 of FormulaArray, maar met deze opties moet ik ook een Range aangeven, en dat kan ik op de manier met xlsconnection niet (of ik zie iig niet hoe)!
Het is mijn bedoeling om via een VBA script in Word 2003 een formule in een cel van Excel 2003 te plaatsen. Klinkt vrij simpel, maar nu komt de moeilijkheid.
Ik heb een script gevonden (klassenmodule: xlsconnection) waarmee ik gegevens in een excel-sheet kan plaatsen zonder dat het excel-bestand geopend hoeft te worden als normaal gesproken:
Visual Basic:
1
2
3
4
| Set conn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") conn.Open "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq="C:\pad\excel.xls;ReadOnly=0;" |
via de xlsconnection kan ik als volgt gegevens weg schrijven in het excel bestand:
Visual Basic:
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
| Dim Db As New XLSConnection Dim rs As Object Dim QueryStr As String Db.XlsOpen ("C:\pad\excel.xls") QueryStr = "SELECT * FROM [Sheet$]" Set rs = Db.Query(QueryStr) ' Bekijk output in het venster direct (Ctrl+G of Menu: Beeld --> Venster Direct) Debug.Print "Initiele situatie:" Do While Not rs.EOF Debug.Print rs("waarde").Value rs.MoveNext rs.MoveNext Loop QueyStr2 = "SELECT * FROM [Sheet$] Set rs2 = Db.Query(QueyStr2) 'bestandsnaam = ActiveDocument.Path & "\" & bnaam & "`" & Format(TopVolgNo, "000") & ".doc" rs.AddNew rs!Waarde = "waarde" rs.Update Debug.Print "Situatie na INSERT:" QueryStr = "SELECT * FROM [Sheet$]" Set rs = Db.Query(QueryStr) Do While Not rs.EOF Debug.Print rs("waarde").Value rs.MoveNext Loop |
Nu mijn vraag: hoe krijg ik het voor elkaar dat de waarde die achter 'rs!Waarde' komt te staan een waarde is dat de cel in excel als formule wordt ingevuld?
Ik heb al gevonden dat dat kan met FormulaR1C1 of FormulaArray, maar met deze opties moet ik ook een Range aangeven, en dat kan ik op de manier met xlsconnection niet (of ik zie iig niet hoe)!