Calculer la moyenne avec des conditions
Résolu/Fermé
hamid marseille
-
Modifié par hamid marseille le 7/10/2016 à 10:11
hamidmarseille - 8 oct. 2016 à 13:00
hamidmarseille - 8 oct. 2016 à 13:00
A voir également:
- Calculer la moyenne avec des conditions
- Comment calculer la moyenne sur excel - Guide
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Google sheet mise en forme conditionnelle 2 conditions ✓ - Forum Bureautique
- Calculer alimentation pc - Guide
- Fonction rang excel avec plusieurs conditions ✓ - Forum Excel
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 7/10/2016 à 14:04
Modifié par michel_m le 7/10/2016 à 14:04
bonjour
as tu essayer les Tableaux croisés Dynamiques avant de parler VBA ?
un exemple réalisé en 5 minutes
http://www.cjoint.com/c/FJhmeELPgKm
Michel
as tu essayer les Tableaux croisés Dynamiques avant de parler VBA ?
un exemple réalisé en 5 minutes
http://www.cjoint.com/c/FJhmeELPgKm
Michel
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
7 oct. 2016 à 15:08
7 oct. 2016 à 15:08
je n'aurais pas le temps aujourdhui mais une idée qui trotte dans ma tite tête...
Les 3 valeurs indiquées CCO Lyon... sont elles les seules dans tes tableaux ?
le mieux serait que tu mettes en PJ la structure des tes tableaux et + particulièrement : ent^tes ? nbre de lignes; les 2 colonnes N O suffiront
30 onglets et pas d'autres genre page de garde ou... ?
Les 3 valeurs indiquées CCO Lyon... sont elles les seules dans tes tableaux ?
le mieux serait que tu mettes en PJ la structure des tes tableaux et + particulièrement : ent^tes ? nbre de lignes; les 2 colonnes N O suffiront
30 onglets et pas d'autres genre page de garde ou... ?
non finalement voila j'a réussi a inclure le fichier en PJ
voici le lien du fichier : http://www.cjoint.com/c/FJhoIYO7VZF
NON y'en a plusieurs valeurs dans le tableau.
oui je te passe en pièce jointe les deux colonne mais y'aura 30 feuils dans le fichier + une feuille ou je dois afficher les moyenne.
merci d'avance pour ton aide! je suis vraiment dans la merde
voici le lien du fichier : http://www.cjoint.com/c/FJhoIYO7VZF
NON y'en a plusieurs valeurs dans le tableau.
oui je te passe en pièce jointe les deux colonne mais y'aura 30 feuils dans le fichier + une feuille ou je dois afficher les moyenne.
merci d'avance pour ton aide! je suis vraiment dans la merde
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 8/10/2016 à 12:14
Modifié par michel_m le 8/10/2016 à 12:14
Bonjour
Calculs fait sur 4 jours pour essais à modifier dans macro
calcul des moyennes que pour les unités annoncées: "CCO LYON ou ULRPP ou ULRM"
http://www.cjoint.com/c/FJikkBFXBEm
le code
Michel
Calculs fait sur 4 jours pour essais à modifier dans macro
calcul des moyennes que pour les unités annoncées: "CCO LYON ou ULRPP ou ULRM"
http://www.cjoint.com/c/FJikkBFXBEm
le code
Option Explicit
Dim T_jour
'------------
Sub compiler()
Dim Mois As Byte, Cptr As Byte
Application.ScreenUpdating = False
'nbre de jours dans le mois
With Sheets("les MOYENNE")
'nbre de jours dans le mois
Mois = Application.CountA(.Range("A5:A35"))
'mémorise les jours du mois
ReDim T_jour(1 To Mois)
'For Cptr = 1 To Mois A ACTIVER APRES ESSAIS
For Cptr = 1 To 4 ' A SUPPRIMER APRES ESSAIS
'appelle le calcul de la moyenne du mois
Call Moyenne_jour(Cptr)
Next
'restitue les moyennes du mois
.Range("B5").Resize(Mois, 1) = Application.Transpose(T_jour)
End With
End Sub
'------------------------------------------------------------------------------
Sub Moyenne_jour(Jour)
Dim Onglet As String, Derlig As Integer, T_in, Cptr As Integer, Unite(), Test, Nbre As Integer, Total As Double
'mise au format de la feuille étudiée
Onglet = Format(Jour, "00")
With Sheets(Onglet)
Derlig = .Columns("N").Find(what:="*", searchdirection:=xlPrevious).Row
'mémorise les colonnes N-O
T_in = .Range("N2:O" & Derlig)
'mémorise les unités à prendre en compte
Unite = Array("CCO LYON", "ULPRR", "ULRM UFNA")
'apurage sur unités sélectionnées
For Cptr = 1 To UBound(T_in)
Test = Filter(Unite, T_in(Cptr, 2), True)
'si l 'unit existe dans la colonne O
If UBound(Test) = 0 Then
Nbre = Nbre + 1 'nombre de prise en compte
Total = Total + T_in(Cptr, 1) 'cumul des ecarts colonne N
End If
Next
'calcul de la moyenne du jour
If Nbre > 0 Then
T_jour(Jour) = Total / Nbre
Else
T_jour(Jour) = "vide"
End If
End With
End Sub
Michel
7 oct. 2016 à 14:35
donc il me demande faire ça en automatqiue
7 oct. 2016 à 14:54
bon WE
7 oct. 2016 à 15:04
mation que tu trouve l'un de ces mot clés va dans a cellule juste avant ( colonne N) et prend l'écart a coté et calcule la moyenne.
explication: si tu trouve trois cellules dans chaque cellule ya CCO lyon, UL RM et UL PRR, tu prend les écart de ces 3 cellule et calcule la moyenne tu me l'affiche dans la cellule auquel j'ai affecté la macro
voici le code :
Sub recherche()
Dim plage As Range
Set plage = ThisWorkbook.Worksheets("30").Range("o8:o180") 'la feuil numero 30 de la cellule o8 a o180
Monchiffre = "CCO LYON" 'adefinir suivant la recherche
For Each cell In plage
If cell.Value = Monchiffre Then
MsgBox cell.Address & " est l' adresse de la valeur: " & cell.Value
End If
Next cell
Dim plage1 As Range
Set plage1 = ThisWorkbook.Worksheets("30").Range("o8:o180") 'la feuil numero 30 de la cellule o8 a o180
Monchiffre1 = "UL RM" 'adefinir suivant la recherche
For Each cell In plage1
If cell.Value = Monchiffre1 Then
MsgBox cell.Address & " est l' adresse de la valeur: " & cell.Value
End If
Next cell
Dim plage2 As Range
Set plage2 = ThisWorkbook.Worksheets("30").Range("o8:o180") 'la feuil numero 30 de la cellule o8 a o180
Monchiffre2 = "UL PRR" 'adefinir suivant la recherche
For Each cell In plage2
If cell.Value = Monchiffre2 Then
MsgBox cell.Address & " est l' adresse de la valeur: " & cell.Value
End If
Next cell
End Sub