Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de code (VBA)

  • Initiateur de la discussion Initiateur de la discussion Birone
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Birone

XLDnaute Nouveau
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 :
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.
 
Re : Problème de code (VBA)

bonjour Birone
essaye d'écrire cette ligne: Destination:=Worksheets("Sheet1").Range("e16"))
comme ce qui suit: Destination:=.Range("e16"))
idem pour e17
à bientôt
 
Re : Problème de code (VBA)

Bonjour à tous,

les QueryTables (données externes ?) maintiennent un lien avec la source et n'apprécient pas trop de se trouver dans des cellules adjacentes, je crois.
Je ne sais pas si elles doivent continuer à se mettre à jour après ça. si ce n'est pas le cas, essaye avec un

.Delete

après le

.Refresh

dans chaque macro.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
126
Réponses
1
Affichages
265
Réponses
2
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…