Bonjour à toutes et tous.
Je demande votre aide au nom d'un ami dans le trouble. Je vous dis ça car je ne pourrai pas trop vous aider si vous avez des questions sur le fichier proprement dit.
Tout ce que je sais, c'est qu'il s'agit de macros en VB qui font appel à une BDD et qui inscrivent le résultat obtenu dans une case.
Macro 1 :
Macro 2 :
Macro 3 :
Si je lance la macro 1 seule, ça marche (J'ai mon résultat en E16)
Si je lance la macro 2 seule, ça marche (J'ai mon résultat en E17)
Le problème est le suivant :
Si je lance la macro 3 (1+2), le résultat de la macro 1 s'affiche en E16 mais celui de la macro 2 s'affiche en F17.
Le plus bizarre est que ce problème n'a pas lieu si je lance la macro 2 en 1er, puis la 1 ensuite.
J'en déduis qu'il y a un problème de code qui fait qu'il insère une colonne E...enfin je dis ça...
Qulqu'un a une idée sur une erreur de syntaxe ?
J'espère avoir été clair.
Merci d'avance
Guillaume B.
Je demande votre aide au nom d'un ami dans le trouble. Je vous dis ça car je ne pourrai pas trop vous aider si vous avez des questions sur le fichier proprement dit.
Tout ce que je sais, c'est qu'il s'agit de macros en VB qui font appel à une BDD et qui inscrivent le résultat obtenu dans une case.
Macro 1 :
Code:
Sub CountSql()
NbOutFin = "Select count (EXTRANS.EXIdTrans) FROM BulkProd.dbo.EXTRANS where ((EXTRANS.EXTraDt Between '" & Worksheets("Stats").Range("I11") & "' And '" & Worksheets("Stats").Range("J11") & "') AND (EXTRANS.EXResoCode=2) AND (EXTRANS.EXTraMnTr<>$0))"
With Worksheets("Sheet1").QueryTables.Add(Connection:=ConnectionString, Destination:=Worksheets("Sheet1").Range("e16"))
.CommandText = NbOutFin
.Name = "MyQuery"
.FieldNames = False
.Refresh BackgroundQuery:=True
End With
End Sub
Macro 2 :
Code:
Sub CountSql2()
NbOutAutres = "SELECT count (EXTRANS.EXIdTrans) FROM BulkProd.dbo.EXTRANS WHERE ((EXTRANS.EXTraDt Between '" & Worksheets("Stats").Range("I11") & "' And '" & Worksheets("Stats").Range("J11") & "') AND (EXTRANS.EXResoCode Not In (2,4,5,7,8)) AND (EXTRANS.EXTraMnTr<>$0))"
With Worksheets("Sheet1").QueryTables.Add(Connection:=ConnectionString, Destination:=Worksheets("Sheet1").Range("e17"))
.CommandText = NbOutAutres
.Name = "MyQuery"
.FieldNames = False
.Refresh BackgroundQuery:=True
End With
End Sub
Macro 3 :
Code:
Sub runQuery()
CountSql
CountSql2
End Sub
Si je lance la macro 1 seule, ça marche (J'ai mon résultat en E16)
Si je lance la macro 2 seule, ça marche (J'ai mon résultat en E17)
Le problème est le suivant :
Si je lance la macro 3 (1+2), le résultat de la macro 1 s'affiche en E16 mais celui de la macro 2 s'affiche en F17.
Le plus bizarre est que ce problème n'a pas lieu si je lance la macro 2 en 1er, puis la 1 ensuite.
J'en déduis qu'il y a un problème de code qui fait qu'il insère une colonne E...enfin je dis ça...
Qulqu'un a une idée sur une erreur de syntaxe ?
J'espère avoir été clair.
Merci d'avance
Guillaume B.