OVH Cloud OVH Cloud

Requete Excel avec critères

1 réponse
Avatar
Martin
Bonjour =E0 tous,

Je voudrais ex=E9cuter une requ=EAte MS-Query qui utilise des=20
crit=E8res (date) saisient dans des cellules Excel.
Comment fait-on pour ex=E9cuter une requ=EAte avec Excel qui=20
utilise des cellules comme crit=E8res ???

Merci =E0 l'avance !!!

1 réponse

Avatar
michdenis
Bonjour Martin,

Je suppose que tu as défini une requête paramétrée dans query. Pour ce faire, directement dans la fenêtre "Query", tu
utilises les crochets droits et tu insères un petit texte significatif pour l'usager pour définir les paramètres de ta
requête. Les symboles ">" et "<" sert à déterminer l'intervalle entre les dates choisies.

Exemple :

Dans la fenêtre "Critères"

NomDuChamp : Date
critère : >[Date de début] Et <[Date de fin]


Tu retournes le résultat de la requête dans une feuille de ton classeur.

Avec un clic droit sur la plage de résultat, dans le menu déroulant , choisi : "Paramètre"

Dans la fenêtre qui s'ouvre : Tu sélectionnes dans la partie gauche de la fenêtre : " Date de début" et tu sélectionne le
bouton radio :"Obtenir la valeur de la cellule suivante" : Tu indiques la cellule devant servir pour ce critère. Et pour
finir, Tu coches le bouton radio si tu veux qu'excel actualise les données dès que tu modifieras le contenu de cette cellule
(date de début) . Maintenant il te reste à faire la même chose concernant "Date de fin" . Voilà.

Si tu voulais obtenir le même résultat à partir d'une macro qui servirait à actualiser ton "querytable", tu pourrais
t'inspirer de ceci. À copier dans la feuille module où l'action se déroule :

'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'il est pris pour acquis que G1, G2 contiennent des dates
'ET
'G1 est plus petit que G2 ... tu peux ajouter une gestion
'd'erreur le cas échéant....! ( pas défini ici ! )

If Target.Address = [G1].Address Or _
Target.Address = [G2].Address Then
'En supposant que ton QueryTable se situe
'sur la feuille "Feuil1"
'Plage de critère de tes dates :
'Date de début : "Feuil1!G1"
'Date de Fin : "Feuil1!G2"

Dim P1 As Parameter
Dim P2 As Parameter

'utilise l'index ou le nom de la requête
With Worksheets("Feuil1").QueryTables(1)
Set P1 = .Parameters(1)
Set P2 = .Parameters(2)
P1.SetParam xlRange, Range("Feuil1!G1")
P2.SetParam xlRange, Range("Feuil1!G2")
.Refresh False
End With
End If

End Sub
'----------------------------------


Salutations!




"Martin" a écrit dans le message de news:0a6201c3dec6$160e1b60$
Bonjour à tous,

Je voudrais exécuter une requête MS-Query qui utilise des
critères (date) saisient dans des cellules Excel.
Comment fait-on pour exécuter une requête avec Excel qui
utilise des cellules comme critères ???

Merci à l'avance !!!