OVH Cloud OVH Cloud

Procedure stockée et excel

4 réponses
Avatar
fred
Bonjour,
est il possible de faire un tableau croisé dynamique sous excel en
s'appuyant sur des données renvoyés par un procedure stockée d'excel.

merci de votre aide
fred

4 réponses

Avatar
Laurent HOUTANT
erreur dans le post precedent il faut lire "données renvoyés par un
procedure stockée
SQL SERVER".
pardon pur cette erreur.
fred

"fred" a écrit dans le message de news:
%
Bonjour,
est il possible de faire un tableau croisé dynamique sous excel en
s'appuyant sur des données renvoyés par un procedure stockée d'excel.

merci de votre aide
fred



Avatar
Oliv'
Hellooo,
Oui bien sûr il s'agit de 2 choses différentes
tu commences par importer tes données
puis tu fais un Tableau croisé dynamique dessus.
Oliv'

"Laurent HOUTANT" a écrit dans le
message de news:
erreur dans le post precedent il faut lire "données renvoyés par un
procedure stockée
SQL SERVER".
pardon pur cette erreur.
fred

"fred" a écrit dans le message de news:
%
Bonjour,
est il possible de faire un tableau croisé dynamique sous excel en
s'appuyant sur des données renvoyés par un procedure stockée d'excel.

merci de votre aide
fred



Avatar
CASoft
Mais lorsque j'importe les donnés il ne me propose que les tables alors que
je voudrais recuperer le resultat d'une fonction ou procedure stockée.

"Oliv'" <(supprimerceci) a écrit dans le
message de news: 420730b8$0$15775$
Hellooo,
Oui bien sûr il s'agit de 2 choses différentes
tu commences par importer tes données
puis tu fais un Tableau croisé dynamique dessus.
Oliv'

"Laurent HOUTANT" a écrit dans le
message de news:
erreur dans le post precedent il faut lire "données renvoyés par un
procedure stockée
SQL SERVER".
pardon pur cette erreur.
fred

"fred" a écrit dans le message de news:
%
Bonjour,
est il possible de faire un tableau croisé dynamique sous excel en
s'appuyant sur des données renvoyés par un procedure stockée d'excel.

merci de votre aide
fred








Avatar
Oliv'
Si tu passes par MS QUERY tu peux écrire directement en sql en faisant
"Affichage/SQL"
et là tu peux entrer une procédure stockée et ses parametres.

sinon tu peux aussi utiliser une macro vba

exemple
Sub sql()
'
' Macro3 Macro
' Macro enregistrée le 14/11/2003 par Olivier CATTEAU
'

'
Sheets("Parc").Select
Cells.Select
Selection.Delete Shift:=xlUp


Dim cie As Variant
dateDe = Sheets("Parametres").Range("B1").Value
dateA = Sheets("Parametres").Range("B2").Value
Contrat = Sheets("Parametres").Range("B3").Value
cie = Sheets("Parametres").Range("B4").Formula

Dim qt As QueryTable
If Sheets("Parametres").Range("B5").Value = "TERME" Then
sqlstring = "SELECT Pol_Contrat, Pol_Fractionnement_id, date='" & dateDe &
"', Pol_DteEcheance, PP_Contrats_Transports.PolC9_FLOT_COEF_BDG_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_BG,
PP_Contrats_Transports.PolC9_FLOT_COEF_DATE_N,
PP_Contrats_Transports.PolC9_FLOT_COEF_DATE_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_DR,
PP_Contrats_Transports.PolC9_FLOT_COEF_DR_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_DTA,
PP_Contrats_Transports.PolC9_FLOT_COEF_DTA_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_INC,
PP_Contrats_Transports.PolC9_FLOT_COEF_INC_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_RC,
PP_Contrats_Transports.PolC9_FLOT_COEF_RC_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_ANNEXES,
PP_Contrats_Transports.PolC9_FLOT_COEF_ANNEXES_N1,
FL_Risque.Flor_Immat_Risque, NATURE=left(FL_Risque.Flor_Nature_id,2),
FL_Risque.Flor_Tarif_id, FL_Risques_4Roues.FloC1_FLOTTE_PLACES,
FL_Risques_4Roues.FloC1_FLOTTE_DATE_1MEC,
FL_Risques_4Roues.FloC1_AUTOCAR_Capital_BDG,
FL_Risques_4Roues.FloC1_AUTOCAR_DBL_VITRAGE," _
& " FL_Risques_4Roues.FloC1_AUTOCAR_USAGE,
FL_Risques_4Roues.FloC1_FLOTTE_GROUPE,
FL_Risques_4Roues.FloC1_FLOTTE_CLASSE, FL_Risques_4Roues.FloC1_FLOTTE_USAGE,
FL_Risques_4Roues.FloC1_FLOTTE_VUL_CHARGE_UTILE,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_DATE_N,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_DATE_N1,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_N,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_N1,
FL_GarantiesRisque.Flog_Code_Garantie, FL_GarantiesRisque.Flog_Franchise,
FL_GarantiesRisque.Flog_Capital, FL_Risque.Flor_Risque_id,
FL_GarantiesRisque.Flog_Ordre, FL_Risque.Flor_DteEntree,
FL_Risque.Flor_DteSortie, FL_GarantiesRisque.Flog_HT" _
& " FROM ((FL_Risque left join FL_Risques_4Roues on
FL_Risque.Flor_Risque_id = FL_Risques_4Roues.FloC1_Risque_id) left join
FL_GarantiesRisque on FL_GarantiesRisque.Flog_Risque_id =
FL_Risque.Flor_Risque_id), PP_Contrats left join PP_Contrats_Transports on
Pol_Contrat_id = PP_Contrats_Transports.PolC9_Contrat_id" _
& " WHERE Pol_Flotte_id = FL_Risque.Flor_Flotte_id AND
(Pol_LastSituation=1) AND" _
& " Pol_Cie_id='" & cie & "' AND Pol_Contrat='" & Contrat & "'
AND FL_GarantiesRisque.Flog_Code_Garantie In ('dta','inc','bdg','dep','imm')
AND FL_Risque.Flor_DteEntree<='" & dateDe & "' AND (FL_Risque.Flor_DteSortie
Is Null or FL_Risque.Flor_DteSortie>='" & dateDe & "')" _
& " ORDER BY FL_Risque.Flor_Immat_Risque"
Else
sqlstring = "SELECT Pol_Contrat, Pol_Fractionnement_id, date='" & dateDe &
"', Pol_DteEcheance, PP_Contrats_Transports.PolC9_FLOT_COEF_BDG_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_BG,
PP_Contrats_Transports.PolC9_FLOT_COEF_DATE_N,
PP_Contrats_Transports.PolC9_FLOT_COEF_DATE_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_DR,
PP_Contrats_Transports.PolC9_FLOT_COEF_DR_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_DTA,
PP_Contrats_Transports.PolC9_FLOT_COEF_DTA_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_INC,
PP_Contrats_Transports.PolC9_FLOT_COEF_INC_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_RC,
PP_Contrats_Transports.PolC9_FLOT_COEF_RC_N1,
PP_Contrats_Transports.PolC9_FLOT_COEF_ANNEXES,
PP_Contrats_Transports.PolC9_FLOT_COEF_ANNEXES_N1,
FL_Risque.Flor_Immat_Risque, NATURE=left(FL_Risque.Flor_Nature_id,2),
FL_Risque.Flor_Tarif_id, FL_Risques_4Roues.FloC1_FLOTTE_PLACES,
FL_Risques_4Roues.FloC1_FLOTTE_DATE_1MEC,
FL_Risques_4Roues.FloC1_AUTOCAR_Capital_BDG,
FL_Risques_4Roues.FloC1_AUTOCAR_DBL_VITRAGE," _
& " FL_Risques_4Roues.FloC1_AUTOCAR_USAGE,
FL_Risques_4Roues.FloC1_FLOTTE_GROUPE,
FL_Risques_4Roues.FloC1_FLOTTE_CLASSE, FL_Risques_4Roues.FloC1_FLOTTE_USAGE,
FL_Risques_4Roues.FloC1_FLOTTE_VUL_CHARGE_UTILE,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_DATE_N,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_DATE_N1,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_N,
FL_Risques_4Roues.FloC1_FLOTTE_VALEUR_N1,
FL_GarantiesRisque.Flog_Code_Garantie, FL_GarantiesRisque.Flog_Franchise,
FL_GarantiesRisque.Flog_Capital, FL_Risque.Flor_Risque_id,
FL_GarantiesRisque.Flog_Ordre, FL_Risque.Flor_DteEntree,
FL_Risque.Flor_DteSortie, FL_GarantiesRisque.Flog_HT" _
& " FROM ((FL_Risque left join FL_Risques_4Roues on
FL_Risque.Flor_Risque_id = FL_Risques_4Roues.FloC1_Risque_id) left join
FL_GarantiesRisque on FL_GarantiesRisque.Flog_Risque_id =
FL_Risque.Flor_Risque_id), PP_Contrats left join PP_Contrats_Transports on
Pol_Contrat_id = PP_Contrats_Transports.PolC9_Contrat_id" _
& " WHERE Pol_Flotte_id = FL_Risque.Flor_Flotte_id AND
(Pol_LastSituation=1) AND" _
& " Pol_Cie_id='" & cie & "' AND Pol_Contrat='" & Contrat & "'
AND FL_GarantiesRisque.Flog_Code_Garantie In ('dta','inc','bdg','dep','imm')
AND (FL_Risque.Flor_DteEntree between dateadd(day,1,'" & dateDe & "') and '"
& dateA & "' or FL_Risque.Flor_DteSortie between '" & dateDe & "' and '" &
dateA & "')" _
& " ORDER BY FL_Risque.Flor_Immat_Risque"
End If
connstring = _
"ODBC;DSN=DSNODBC;UID=TOTO;Trusted_Connection=Yes;Database=MABASE"
Sheets("Parametres").Range("B8").Value = sqlstring
'GoTo fin
Sheets("Parc").Select
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Sheets("Parc").Range("A1"), sql:=sqlstring)
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:úlse
.SavePassword = True
.SaveData = True
'.Refresh

End With

Cells.Select
Cells.EntireColumn.AutoFit
fin:
Sheets("Parametres").Select
MsgBox prompt:="Cliquez sur CALCUL"
'Range("A1").Value = sqlstring
End Sub

Oliv'


"CASoft" a écrit dans le message de news:

Mais lorsque j'importe les donnés il ne me propose que les tables alors que
je voudrais recuperer le resultat d'une fonction ou procedure stockée.

"Oliv'" <(supprimerceci) a écrit dans le
message de news: 420730b8$0$15775$
Hellooo,
Oui bien sûr il s'agit de 2 choses différentes
tu commences par importer tes données
puis tu fais un Tableau croisé dynamique dessus.
Oliv'

"Laurent HOUTANT" a écrit dans le
message de news:
erreur dans le post precedent il faut lire "données renvoyés par un
procedure stockée
SQL SERVER".
pardon pur cette erreur.
fred

"fred" a écrit dans le message de news:
%
Bonjour,
est il possible de faire un tableau croisé dynamique sous excel en
s'appuyant sur des données renvoyés par un procedure stockée d'excel.

merci de votre aide
fred