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:
Code:
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:
Code:
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)!