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

Creer un formulaire à partir d'une requête enregistrée via ODBC qui me permet de filtrer des données sur excel

2 réponses
Avatar
francisco
Bonjour tout le monde
J'ai cette macro enregistée qui me permet via un lien ODBC à me connecter à
une base Access et d'obtenir le resultat de cette requete sur excel
La macro nommée requête me permet de filtrer des données et d'agir sur les
champs Grammage de la Table Ventes 1999 et sur le champs volume de la Table
Ventes 1999 La macro Requête se trouve sur excel ainsi que le resultat de la
requête ce que je voudrais apprendre à faire c'est créer un formulaire sur
excel ou je puisse choisir n'importe quel grammage un grammage de 70 75 120
130 par exemple et différents volume Comment je dois faire pour creer le
formulaire et qu'est ce que je dois modifier dans ma requête pour que les
grammages et les volummes soient considérés comme des variables Je sais que
je dois modifier cette partie de ma macro requête "WHERE
(Ventes_1999.Grammage=80) AND (Ventes_1999.Volume>7.24" , "7)") mais comment
faire pour la lier à un formulaire

Amicalement Francisco
La macro est la suivante
Sub requête()
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DBQ=C:\Documents and Settings\francisco\Mes
documents\test.mdb;DefaultDir=C:\Documents and Settings\francisco\Mes
documents;Dri" _
), Array( _
"ver={Driver do Microsoft Access (*.mdb)};DriverId=281;FIL=MS
Access;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransact" _
), Array("ions=0;Threads=3;UserCommitSync=Yes;")),
Destination:=Range("A1"))
.CommandText = Array( _
"SELECT Ventes_1999.CodeProduct, Ventes_1999.CodeConditionnement,
Ventes_1999.CodeCouleur, Ventes_1999.Grammage, Ventes_1999.PM,
Ventes_1999.Volume, Ventes_1999.AverageExMill, Ventes_1999.VariablesCost" _
, _
"s, Ventes_1999.FixedCosts, Ventes_1999.TonnesHeures" & Chr(13) & ""
& Chr(10) & "FROM `C:\Documents and Settings\francisco\Mes
documents\test`.Ventes_1999 Ventes_1999" & Chr(13) & "" & Chr(10) & "WHERE
(Ventes_1999.Grammage=80) AND (Ventes_1999.Volume>7.24" _
, "7)")
.Name = "Lancer la requête à partir de aa"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=72
End Sub

2 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Si le grammage est saisi dans une TextBox1 de ton formulaire, tu pourrais
essayer ce genre de syntaxe dans ta requête :

"WHERE (Ventes_1999.Grammage=" & TextBox1.Text & ") etc..

Idem pour le volume.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde
J'ai cette macro enregistée qui me permet via un lien ODBC à me connecter à
une base Access et d'obtenir le resultat de cette requete sur excel
La macro nommée requête me permet de filtrer des données et d'agir sur les
champs Grammage de la Table Ventes 1999 et sur le champs volume de la Table
Ventes 1999 La macro Requête se trouve sur excel ainsi que le resultat de la
requête ce que je voudrais apprendre à faire c'est créer un formulaire sur
excel ou je puisse choisir n'importe quel grammage un grammage de 70 75 120
130 par exemple et différents volume Comment je dois faire pour creer le
formulaire et qu'est ce que je dois modifier dans ma requête pour que les
grammages et les volummes soient considérés comme des variables Je sais que
je dois modifier cette partie de ma macro requête "WHERE
(Ventes_1999.Grammage€) AND (Ventes_1999.Volume>7.24" , "7)") mais comment
faire pour la lier à un formulaire

Amicalement Francisco
La macro est la suivante
Sub requête()
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DBQ=C:Documents and SettingsfranciscoMes
documentstest.mdb;DefaultDir=C:Documents and SettingsfranciscoMes
documents;Dri" _
), Array( _
"ver={Driver do Microsoft Access (*.mdb)};DriverId(1;FIL=MS
Access;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;SafeTransact" _
), Array("ions=0;Threads=3;UserCommitSync=Yes;")),
Destination:=Range("A1"))
.CommandText = Array( _
"SELECT Ventes_1999.CodeProduct, Ventes_1999.CodeConditionnement,
Ventes_1999.CodeCouleur, Ventes_1999.Grammage, Ventes_1999.PM,
Ventes_1999.Volume, Ventes_1999.AverageExMill, Ventes_1999.VariablesCost" _
, _
"s, Ventes_1999.FixedCosts, Ventes_1999.TonnesHeures" & Chr(13) & ""
& Chr(10) & "FROM `C:Documents and SettingsfranciscoMes
documentstest`.Ventes_1999 Ventes_1999" & Chr(13) & "" & Chr(10) & "WHERE
(Ventes_1999.Grammage€) AND (Ventes_1999.Volume>7.24" _
, "7)")
.Name = "Lancer la requête à partir de aa"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
ActiveWindow.SmallScroll Down:r
End Sub


Avatar
francisco
Merci Frédéric
Amicalement Francisco
"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

Si le grammage est saisi dans une TextBox1 de ton formulaire, tu pourrais
essayer ce genre de syntaxe dans ta requête :

"WHERE (Ventes_1999.Grammage=" & TextBox1.Text & ") etc..

Idem pour le volume.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde
J'ai cette macro enregistée qui me permet via un lien ODBC à me
connecter à


une base Access et d'obtenir le resultat de cette requete sur excel
La macro nommée requête me permet de filtrer des données et d'agir sur
les


champs Grammage de la Table Ventes 1999 et sur le champs volume de la
Table


Ventes 1999 La macro Requête se trouve sur excel ainsi que le resultat
de la


requête ce que je voudrais apprendre à faire c'est créer un formulaire
sur


excel ou je puisse choisir n'importe quel grammage un grammage de 70 75
120


130 par exemple et différents volume Comment je dois faire pour creer le
formulaire et qu'est ce que je dois modifier dans ma requête pour que
les


grammages et les volummes soient considérés comme des variables Je sais
que


je dois modifier cette partie de ma macro requête "WHERE
(Ventes_1999.Grammage€) AND (Ventes_1999.Volume>7.24" , "7)") mais
comment


faire pour la lier à un formulaire

Amicalement Francisco
La macro est la suivante
Sub requête()
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DBQ=C:Documents and SettingsfranciscoMes
documentstest.mdb;DefaultDir=C:Documents and SettingsfranciscoMes
documents;Dri" _
), Array( _
"ver={Driver do Microsoft Access (*.mdb)};DriverId(1;FIL=MS
Access;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;SafeTransact" _
), Array("ions=0;Threads=3;UserCommitSync=Yes;")),
Destination:=Range("A1"))
.CommandText = Array( _
"SELECT Ventes_1999.CodeProduct,
Ventes_1999.CodeConditionnement,


Ventes_1999.CodeCouleur, Ventes_1999.Grammage, Ventes_1999.PM,
Ventes_1999.Volume, Ventes_1999.AverageExMill,
Ventes_1999.VariablesCost" _


, _
"s, Ventes_1999.FixedCosts, Ventes_1999.TonnesHeures" & Chr(13)
& ""


& Chr(10) & "FROM `C:Documents and SettingsfranciscoMes
documentstest`.Ventes_1999 Ventes_1999" & Chr(13) & "" & Chr(10) &
"WHERE


(Ventes_1999.Grammage€) AND (Ventes_1999.Volume>7.24" _
, "7)")
.Name = "Lancer la requête à partir de aa"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
ActiveWindow.SmallScroll Down:r
End Sub