tijocanard
XLDnaute Nouveau
Bonour.
Alors mon problème est une question de mise en forme d'un résultat d'une macro.
Je m'explique: J'ai créé sous excel une macro qui se connecte à une base oracle et qui renvois le résultat sur ma feuille excel.
Ma macro:
Donc ma macro me renvoie bien une quantité à une heure donnée.
Le problème arrive: ma macro se rafraichit toutes les 15min et le nouveau résultat se met en cellulle A1
Normal car j'ai mis:
comment faire pour afficher les nouveau résultat en dessous du premier résultat?
J'espere que c'est clair!
L'autre problème est que à chaque rafraichissement, il me remet les entêtes des colonnes (quantité et sysdate), je ne voudrais que le résultat.
De sorte que j'obtienne un tableau pour générer plus tard un graphique.
J'ai bien essayé de bidoullier dans ces options mais j'y arrive pas.
Je débute en vba et votre aide sera précieuse.
Alors mon problème est une question de mise en forme d'un résultat d'une macro.
Je m'explique: J'ai créé sous excel une macro qui se connecte à une base oracle et qui renvois le résultat sur ma feuille excel.
Ma macro:
Code:
Private Sub CommandButton1_Click()
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER={Microsoft ODBC for Oracle};UID=id;PWD=pwd;SERVER=server;", _
Destination:=Range("A1"))
.CommandText = Array( _
"SELECT Sum(histo_event_tr.QTE_PROD)as quantite, sysdate" & Chr(13) & "" & Chr(10) & "FROM DEPT_85.histo_event_tr histo_event_tr, DEPT_85.histo_tr histo_tr" & Chr(13) & "" & Chr(10) & "WHERE histo_event_tr.ID_HISTO = histo_tr.ID_HISTO AND ((histo_event_tr.ID_RESS_HIST" _
, _
"O='UPAV3_CU11_0') AND (histo_tr.DT_DEB_CONS>to_date(concat(to_char(sysdate,'yymmdd'),'0530'),'yymmddhhmi')) OR (histo_event_tr.ID_RESS_HISTO='UPAV3_CU12_0') AND (histo_tr.DT_DEB_CONS>to_date(concat(to" _
, _
"_char(sysdate,'yymmdd'),'0530'),'yymmddhhmi')) OR (histo_event_tr.ID_RESS_HISTO='UPAV3_CU21_0') AND (histo_tr.DT_DEB_CONS>to_date(concat(to_char(sysdate,'yymmdd'),'0530'),'yymmddhhmi')) OR (histo_even" _
, _
"t_tr.ID_RESS_HISTO='UPAV3_CU22_0') AND (histo_tr.DT_DEB_CONS>to_date(concat(to_char(sysdate,'yymmdd'),'0530'),'yymmddhhmi')))" _
)
.Name = "Lancer la requête à partir de oracle"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 15
.PreserveColumnInfo = False
.Refresh BackgroundQuery:=False
End With
End Sub
Donc ma macro me renvoie bien une quantité à une heure donnée.
Le problème arrive: ma macro se rafraichit toutes les 15min et le nouveau résultat se met en cellulle A1
Normal car j'ai mis:
Code:
Destination:=Range("A1"))
comment faire pour afficher les nouveau résultat en dessous du premier résultat?
J'espere que c'est clair!
L'autre problème est que à chaque rafraichissement, il me remet les entêtes des colonnes (quantité et sysdate), je ne voudrais que le résultat.
De sorte que j'obtienne un tableau pour générer plus tard un graphique.
J'ai bien essayé de bidoullier dans ces options mais j'y arrive pas.
Code:
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 15
.PreserveColumnInfo = False
.Refresh BackgroundQuery:=False
Je débute en vba et votre aide sera précieuse.
Pièces jointes
Dernière édition: