Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formules dans Excel a partir de VB6

1 réponse
Avatar
Christian ROLET
Bonjour,

Je voudrais cr=E9er un classeur Excel =E0 partir de VB6. Je=20
souhiate pouvoir y placer des donn=E9es issues d'une table=20
Access mais aussi des formules. So les formules sont=20
simples tout se passe bien. j'ai toutefois une formule=20
qui prend plusieurs arguments separes par des point=20
virgules. dans ce cas j'ai une erreur =E0 l'execution et je=20
ne trouve pas pourquoi. J'ai =E9crit le suelette de code ci-
dessous. Quelqu'un =E0 deja r=E9alis=E9 cela ou a une id=E9e ???
Grand merci d'avance a tous

Christian ROLET

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim cQuote As String




Private Sub Command1_Click()

On Error Resume Next
Set xlApp =3D GetObject(, "Excel.Application")
On Error GoTo 0

If xlApp Is Nothing Then
Set xlApp =3D CreateObject("Excel.Application")
End If

' facultatif
xlApp.Visible =3D True

' cr=E9ation d'un nouveau classeur
Set xlBook =3D xlApp.Workbooks.Add(xlWBATWorksheet)
xlBook.Worksheets.Add

Set xlSheet =3D xlBook.Worksheets(1)
xlApp.ActiveSheet.Name =3D "DA20 5620"

'Pav=E9 parametres
xlSheet.Range("O2") =3D "CA=3DRM"
xlSheet.Range("O3") =3D "DP=3D 2004.04"
xlSheet.Range("O4") =3D "PE=3D 2004.04"
xlSheet.Range("O5") =3D "AU=3D0LIA01"
xlSheet.Range("O6") =3D "RU=3D224003"

xlSheet.Range("F8") =3D "F00"
xlSheet.Range("H8") =3D "F99"
xlSheet.Range("J8") =3D "F15"
xlSheet.Range("K8") =3D "F50"
xlSheet.Range("L8") =3D "F60"
xlSheet.Range("M8") =3D "F70"

xlSheet.Range("Q8") =3D "FL=3DF99"
xlSheet.Range("S8") =3D "FL=3DF15"
xlSheet.Range("T8") =3D "FL=3DF50"
xlSheet.Range("U8") =3D "FL=3DF60"
xlSheet.Range("V8") =3D "FL=3DF70"

xlSheet.Range("A10") =3D "Dettes fournisseurs"

xlSheet.Range("B10") =3D "P40000"

xlSheet.Range("B11") =3D "P40000"
xlSheet.Range("C11") =3D "LEMARECHAL"
xlSheet.Range("D11") =3D "112003"

xlSheet.Range("O11") =3D "AC=3DP40000"
xlSheet.Range("P11") =3D "T1=3D112003"


'ci dessous c'est la formule que je veux placer dans une=20
cellule de la feuille
'=3DPutCtData("PK-
AMOUNT";"AMOUNT";$O$2:$O$6;S$8;$O11:$P11;J11)

'LA C'EST LE CODE QUE J'UTILISE SACHANtQUE LA FORMULE=20
'N'EST PAS COMPLETE

xlSheet.Range("Q11") =3D "=3DPutCtData(" & """" & "PK-
AMOUNT """";""""AMOUNT" & " )"

1 réponse

Avatar
Jean Yves SÉVENO
Bonjour.

Pour écrire une formule, il vaut mieux utiliser la propriété Formula ou la
propriété FormulaLocal de l'objet Range.

Sous réserve que j'aie bien compris la formule que tu veux insérer
(notamment en ce qui concerne les guillemets), la syntaxe serait donc :

xlSheet.Range("Q11").Formula = "=PutCtData(" & Chr(34) & "PK-AMOUNT" &
Chr(34) & "," & Chr(34) & "AMOUNT" & Chr(34) &
",$O$2:$O$6,S$8,$O11,$P11,J11)"

À noter que lorsqu'on utilise la propriété Formula, le point-virgule doit
être remplacé par une virgule.

De façon plus générale, en utilisant l'enregistreur de macro sous excel, on
peut facilement voir le code généré lorsque l'on rentre manuellement la
formule (il suffit d'aller dans l'éditeur Visual basic après avoir
enregistré la macro - Menu Outils/Macro/Visual Basic Editor d'Excel).

Cordialement.

Jean Yves


"Christian ROLET" a écrit dans le
message de news:1718701c44887$11a99dd0$
Bonjour,

Je voudrais créer un classeur Excel à partir de VB6. Je
souhiate pouvoir y placer des données issues d'une table
Access mais aussi des formules. So les formules sont
simples tout se passe bien. j'ai toutefois une formule
qui prend plusieurs arguments separes par des point
virgules. dans ce cas j'ai une erreur à l'execution et je
ne trouve pas pourquoi. J'ai écrit le suelette de code ci-
dessous. Quelqu'un à deja réalisé cela ou a une idée ???
Grand merci d'avance a tous

Christian ROLET

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim cQuote As String




Private Sub Command1_Click()

On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
On Error GoTo 0

If xlApp Is Nothing Then
Set xlApp = CreateObject("Excel.Application")
End If

' facultatif
xlApp.Visible = True

' création d'un nouveau classeur
Set xlBook = xlApp.Workbooks.Add(xlWBATWorksheet)
xlBook.Worksheets.Add

Set xlSheet = xlBook.Worksheets(1)
xlApp.ActiveSheet.Name = "DA20 5620"

'Pavé parametres
xlSheet.Range("O2") = "CA=RM"
xlSheet.Range("O3") = "DP= 2004.04"
xlSheet.Range("O4") = "PE= 2004.04"
xlSheet.Range("O5") = "AU=0LIA01"
xlSheet.Range("O6") = "RU"4003"

xlSheet.Range("F8") = "F00"
xlSheet.Range("H8") = "F99"
xlSheet.Range("J8") = "F15"
xlSheet.Range("K8") = "F50"
xlSheet.Range("L8") = "F60"
xlSheet.Range("M8") = "F70"

xlSheet.Range("Q8") = "FLù9"
xlSheet.Range("S8") = "FLñ5"
xlSheet.Range("T8") = "FLõ0"
xlSheet.Range("U8") = "FLö0"
xlSheet.Range("V8") = "FL÷0"

xlSheet.Range("A10") = "Dettes fournisseurs"

xlSheet.Range("B10") = "P40000"

xlSheet.Range("B11") = "P40000"
xlSheet.Range("C11") = "LEMARECHAL"
xlSheet.Range("D11") = "112003"

xlSheet.Range("O11") = "AC=P40000"
xlSheet.Range("P11") = "T12003"


'ci dessous c'est la formule que je veux placer dans une
cellule de la feuille
'=PutCtData("PK-
AMOUNT";"AMOUNT";$O$2:$O$6;S$8;$O11:$P11;J11)

'LA C'EST LE CODE QUE J'UTILISE SACHANtQUE LA FORMULE
'N'EST PAS COMPLETE

xlSheet.Range("Q11") = "=PutCtData(" & """" & "PK-
AMOUNT """";""""AMOUNT" & " )"