http://img203.imageshack.us/img203/7821/excelh.png
Voici la fiche qui bug...
IOn a actuellement un tableau excel plein de données issues d'Access (donc surtout ne pas changer ces données) sinon les deux programmes ne corresponderaient plus.
On a du, pour excel, faire des traitements statistiques (faits) et des représentation graphiques (fait aussi)
Il ne nous reste plus qu'à, via des Macros (en excell c'est donc simplement un moyen pour faire des programmes automatiques, pas hyper compliqués je pense.) J'en ai deja réalisé deux assez semblables, qui présentent un petit defaut c'est que je n'arrive pas à faire demarrer les "ordres" par defaut de la bonne case pour rendre le remplissage des cases semi automatique correct quel que soit la "Active Cell" au momenrt de lancer la macro (et de pousser sur le bouton donc, car on relie chaque programmation VBA (macro) à un bouton) (Tres simple à faire) J'ai commencé un programme dans lequel je voulais faire que toutes les donnees au dessus d'un chiffre (la moyenne dans notre cas) se mettent en une couleur et tout celles en dessous de la colonne total de la feuille "Fiches d'entretien" en une autre colonne
Voici les codes qu'on a utilisé pour ce faire :
Sub Total_Entretien()
Dim rng_total As Range
Dim compteur As Integer
Set rng_total = Sheets("Fiches_d'entretien" ).Range("rng_Total" )
compteur = 1
'La boucle commence ici
For Each valeir_total In rng_total
If valeur_total < 500 Then
Sheets("Fiches_d'entretien" ).Cells(compteur, 13).Value = "Petite réparation"
Else
Sheets("Fiches_d'entretien" ).Cells(compteur, 13).Value = "Grosse Réparatoin"
End If
compteur = compteur + 1
'On termine finit la boucle
Next
End Sub
Sub Somme_si_Couleurs()
'déclaration
Dim rng_total As Range
Dim compteur As Integer
Dim moyenne_compteur As Integer
Dim somme_total As Variant
Dim Moyenne_total As Variant
'Initialisation
Set rng_total = Sheets("Fiches_d'entretien" ).Range("rng_Total" )
compteur = 1
moyenne_compteur = 0
somme_total = 0
'On calcule la moyenne des la colonne Total
For Each valeur_total In rng_total
moyenne_compteur = moyenne_compteur + 1
somme_total = somme_total + valeur_solde
Next
Moyenne_total = somme_total / (moyenne_compteur)
'On donne une couleur aux cases
For Each valeur_total In rng_total
If valeur_total < Moyenne_total Then
Sheets("Fiches_d'entretien" ).Cells(compteur, 12).Font.ColorIndex = 20
Else
Sheets("Fiches_d'entretien" ).Cells(compteur, 12).Font.ColorIndex = 30
End If
compteur = compteur + 1
Next
End Sub
Et mon module (qui ne marche pas) :
Sub Macro1()
' Macro1 Macro
Range("L2,L3,L5,L7,L6,L8,L9,L10,L1," ).Select
Range("L2" ).Activate
With Selection.Font
.Color = -11489280
.TintAndShade = 0
End With
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("G38" ).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("L4,L11,L14,L16,L21,G39" ).Select
Range("L4" ).Activate
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("G39" ).Select
End Sub
Sub entretien_inférieur_moyenne()
'
' Entretien inférieur à la moyenne
'
'
Range("L2:L3" ).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("L5:L6:L8:L9:L10:L12:L13:L15:L17:L18:L19:L20" ).Select
Range("G38" ).Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Sub Entretien_suppérieur_moyenne()
'
' Entretien Suppérieur à la moyenne
'
'
Range("L4" ).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("L7:L11:L14:L16:L21" ).Select
Range("G39" ).Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("K29" ).Select
End Sub
Message édité par Leodarth le 02-01-2013 à 16:01:45