Bonjour,

J'ai une macro VBA qui me permet d'aller lire un compteur dans une base access.
Je souhaiterai la modifier pour introduire une variable dans ce code. j'aimerai changer la sélection sur 'Facture' et la remplacer par une variable. je supprimerai par la même occasion la condition "if then..... else...."
Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub lcpt()
' Dim enr As Recordset, base As Database
Dim chemin As String
chemin = "O:\facture openspace\OpenSpace.accdb"
Set base = DBEngine.OpenDatabase(chemin)
If ActiveSheet.Range("TypePiece") = "Facture" Then
Set enr = base.OpenRecordset("SELECT cpt.code , cpt.libelle , cpt.vn , cpt.va from cpt where cpt.libelle = 'Facture'", dbOpenDynaset)
Else
Set enr = base.OpenRecordset("SELECT cpt.code , cpt.libelle , cpt.vn , cpt.va from cpt where cpt.libelle ='Avoir' ", dbOpenDynaset)
End If
    ActiveSheet.Range("NPiece").Value = (enr.Fields("va").Value) & Format((enr.Fields("vn").Value + 1), "000")
    ActiveSheet.Range("Dt").Value = Format(Date, "mm/dd/yyyy")
    enr.Close
    base.Close
    Set enr = Nothing
    Set base = Nothing
End Sub
Quand je modifie, j'ai une erreur de syntaxe
vtp est déclarée en string et lui affecte une valeur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set enr = base.OpenRecordset("SELECT cpt.code , cpt.libelle , cpt.vn , cpt.va from cpt where cpt.libelle = vtp ", dbOpenDynaset)
Merci pour votre aide....