J
julien
Guest
Bonjour a tous,
Voila mon problème:
j'aimerai à partir d'un calendrier (Monthview2control) selectionnées des données pour les afficher sur un graphe et faire des calculs dessus.
Voila j'ai donc attaquer avec visual basic mais je suis débutant et g qulques soucis...
c pourquoi je vous demande un petit coup de pouce :S
voici la macro de mon projet
merci d'avance pour vos conseils
Const DateDebut = #1/1/2004#
Dim DateFin As Date
Dim date_select As Date
Dim debut_plage As Integer
Dim fin_plage As Integer
Dim fin_plage_2 As Integer
Dim debut_new As Integer
Dim i, j As Integer
Dim x
Dim nb_jours As Integer
Public Sub calendrier()
Sheets('Données').Activate
ActiveSheet.Cells(1, 1).Select
Selection.End(xlDown).Select
DateFin = Format(ActiveCell.Value, 'dd/mm/yyyy')
Sheets('Principal').Activate
If (date_select > DateDebut) And (date_select < DateFin) Then
'conversion de la date choisie en plage de donnée
debut_plage = (date_select - DateDebut) * 96 + 2
fin_plage = debut_plage + 95
'mise à jour des valeurs max du jour
Range('A9').Select
ActiveCell.Value = 'Sélection : ' & Format(date_select, 'dd mmmm yyyy')
End If
'conversion de la date choisie en plage de donnée
debut_plage = (date_select - DateDebut) * 96 + 2
fin_plage = debut_plage + 7 * 95
Range('B6').Select
ActiveCell.Value = '=Données!A' & debut_plage
Range('B7').Select
ActiveCell.Value = '=Données!A' & fin_plage
'If ActiveCell.Value = 0 Then ActiveCell.Value = ' '
Range('C6').Select
ActiveCell.Value = debut_plage
Range('C7').Select
ActiveCell.Value = fin_plage
If (date_select < DateDebut) Or (date_select > DateFin) Then
Range('A9').Select
ActiveCell.Value = 'Erreur !'
Range('B10').Select
ActiveCell = ''
Range('B11').Select
ActiveCell = ''
Range('B12').Select
ActiveCell = ''
Range('B13').Select
ActiveCell = ''
Range('B14').Select
ActiveCell = ''
Range('A1').Select
ActiveCell.Value = date_select
End If
End Sub
Public Sub actualiser_valeurs()
Range('B10').Select
ActiveCell = '=MAX(Données!B' & debut_plage & ':B' & fin_plage & ')'
Range('B11').Select
ActiveCell = '=MAX(Données!C' & debut_plage & ':C' & fin_plage & ')'
Range('B12').Select
ActiveCell = '=MAX(Données!I' & debut_plage & ':I' & fin_plage & ')'
Range('B13').Select
ActiveCell = '=MIN(Données!H' & debut_plage & ':H' & fin_plage & ')'
Range('B14').Select
ActiveCell = '=MAX(Données!H' & debut_plage & ':H' & fin_plage & ')'
Range('A1').Select
ActiveCell.Value = date_select
End Sub
Public Sub actualiser_graphiques()
'graphique 1
'mise à jour des plage de donnée des graphiques
'choix de la feuille source de données
ActiveSheet.ChartObjects('Graphique 1').Activate
ActiveChart.SeriesCollection(1).Values = '=Données!R' & debut_plage & 'C2:R' & fin_plage & 'C2'
ActiveChart.SeriesCollection(1).XValues = '=Données!R' & debut_plage & 'C1:R' & fin_plage & 'C1'
End Sub
[file name=Classeur3_20050414101845.zip size=44800]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20050414101845.zip[/file]
Voila mon problème:
j'aimerai à partir d'un calendrier (Monthview2control) selectionnées des données pour les afficher sur un graphe et faire des calculs dessus.
Voila j'ai donc attaquer avec visual basic mais je suis débutant et g qulques soucis...
c pourquoi je vous demande un petit coup de pouce :S
voici la macro de mon projet
merci d'avance pour vos conseils
Const DateDebut = #1/1/2004#
Dim DateFin As Date
Dim date_select As Date
Dim debut_plage As Integer
Dim fin_plage As Integer
Dim fin_plage_2 As Integer
Dim debut_new As Integer
Dim i, j As Integer
Dim x
Dim nb_jours As Integer
Public Sub calendrier()
Sheets('Données').Activate
ActiveSheet.Cells(1, 1).Select
Selection.End(xlDown).Select
DateFin = Format(ActiveCell.Value, 'dd/mm/yyyy')
Sheets('Principal').Activate
If (date_select > DateDebut) And (date_select < DateFin) Then
'conversion de la date choisie en plage de donnée
debut_plage = (date_select - DateDebut) * 96 + 2
fin_plage = debut_plage + 95
'mise à jour des valeurs max du jour
Range('A9').Select
ActiveCell.Value = 'Sélection : ' & Format(date_select, 'dd mmmm yyyy')
End If
'conversion de la date choisie en plage de donnée
debut_plage = (date_select - DateDebut) * 96 + 2
fin_plage = debut_plage + 7 * 95
Range('B6').Select
ActiveCell.Value = '=Données!A' & debut_plage
Range('B7').Select
ActiveCell.Value = '=Données!A' & fin_plage
'If ActiveCell.Value = 0 Then ActiveCell.Value = ' '
Range('C6').Select
ActiveCell.Value = debut_plage
Range('C7').Select
ActiveCell.Value = fin_plage
If (date_select < DateDebut) Or (date_select > DateFin) Then
Range('A9').Select
ActiveCell.Value = 'Erreur !'
Range('B10').Select
ActiveCell = ''
Range('B11').Select
ActiveCell = ''
Range('B12').Select
ActiveCell = ''
Range('B13').Select
ActiveCell = ''
Range('B14').Select
ActiveCell = ''
Range('A1').Select
ActiveCell.Value = date_select
End If
End Sub
Public Sub actualiser_valeurs()
Range('B10').Select
ActiveCell = '=MAX(Données!B' & debut_plage & ':B' & fin_plage & ')'
Range('B11').Select
ActiveCell = '=MAX(Données!C' & debut_plage & ':C' & fin_plage & ')'
Range('B12').Select
ActiveCell = '=MAX(Données!I' & debut_plage & ':I' & fin_plage & ')'
Range('B13').Select
ActiveCell = '=MIN(Données!H' & debut_plage & ':H' & fin_plage & ')'
Range('B14').Select
ActiveCell = '=MAX(Données!H' & debut_plage & ':H' & fin_plage & ')'
Range('A1').Select
ActiveCell.Value = date_select
End Sub
Public Sub actualiser_graphiques()
'graphique 1
'mise à jour des plage de donnée des graphiques
'choix de la feuille source de données
ActiveSheet.ChartObjects('Graphique 1').Activate
ActiveChart.SeriesCollection(1).Values = '=Données!R' & debut_plage & 'C2:R' & fin_plage & 'C2'
ActiveChart.SeriesCollection(1).XValues = '=Données!R' & debut_plage & 'C1:R' & fin_plage & 'C1'
End Sub
[file name=Classeur3_20050414101845.zip size=44800]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20050414101845.zip[/file]