XL 2013 Loop à rebour pour un nombre fixe de répétitions

alsim82

XLDnaute Nouveau
Bonjour à tous,

Mon problème est le premier auquel je suis confronté qui nécessite une solution VBA.

En gros, je désire, en partant de la dernière entrée, trouver les 28 dernières (incluant la dernière de la liste, dont le nom est celui de référence) qui ont le même nom concaténé sur 2 paramètres Ensuite, en considérant les données de la colonne intitulée "Res" je dois sortir la moyenne ainsi que le coefficient de variation des 28 données.

Les deux résultats devront être retournés dans les 2 cellules au bout des rangées et ne pas s'effacer de semaine en semaine, de façon à pouvoir faire un suivi des données dans le temps avec un graphique simple.

Je commence à apprendre le VBA depuis cette semaine et je n'arrive toujours pas à formuler mon problème en langage Visual Basic. C'est pourquoi des explications sont les bienvenues, j'espère m'améliorer rapidement.

Merci pour votre aide qui sera très appréciée!

Alex
 

Pièces jointes

  • Test QSL Alex.xlsm
    63.3 KB · Affichages: 21
  • Test QSL Alex.xlsm
    63.3 KB · Affichages: 20
Dernière modification par un modérateur:

Paritec

XLDnaute Barbatruc
Re : Loop à rebour pour un nombre fixe de répétitions

Bonjour Alexsim82 le forum
aucune explications dans le fichier de ce qu'il faut obtenir !!!!
qui ont le même nom concaténé sur 2 paramètres
bah oui mais quel nom ???
Les deux résultats devront être retournés dans les 2 cellules au bout des rangées
quelle rangées??? c'est quoi une rangée une colonne ?? et la moyenne de quoi?? quelle colonne?
(incluant la dernière de la liste, dont le nom est celui de référence)
bah oui il est ou le nom de référence?? et tu veux lancer la macro comment ??
bref une demande qui nécessite une boule de cristal pour arriver à deviner, j'en ai pas !
a+
Papou:)
 
Dernière édition:

alsim82

XLDnaute Nouveau
Re : Loop à rebour pour un nombre fixe de répétitions

Bonjour,

J'avoue, ça manquait un peu d'indices. D'abord, ca pourrait etre un bouton qui active la macro, mais idéalement, dès que les champs sont remplis, la valeur de la moyenne s'affiche au bout de la rangée automatiquement.

Les rangées sont remplies l'une à la suite de l'autre, donc la valeur de départ est toujours la plus récente, c'est la référence. La moyenne fonctionne seulement sur les rangées dont le nom est identique à celui de la rangée de départ, la valeur calculée dans chaque rangée est celle de la colonne "res", la colonne Q.

La moyenne prend donc les 28 (incluant la référence) valeurs de "res" les plus récentes en ne considérant que les rangées qui ont le même nom dans la colonne "nom".

Le nom des tests est dans la colonne "nom". Ces nom regroupe l'essence en abrégé et le grade. Le nom du dernier échantillon est celui qui dirige le calcul de la moyenne.

En faisant cela, le calcul de la moyenne se fait selon la condition que, par ex.: If nom_courant = nom_référence
Si le nom ne correspond pas, on cherche dans la rangée précédente, jusqu'à n=28.


J'espère avoir amené les précisions nécessaire à votre précieuse aide!

Merci,

AS
 

Pièces jointes

  • Test QSL Alex.xlsm
    56.7 KB · Affichages: 23
  • Test QSL Alex.xlsm
    56.7 KB · Affichages: 25

alsim82

XLDnaute Nouveau
Re : Loop à rebour pour un nombre fixe de répétitions

J'en suis arrivé à faire ça:

Dim row_depart As String, nom_depart As String, nom_courant As String, Dates_Mfg As Date, Essence As String, Count_depart As Integer, Count As Integer, Grade As String, Dim_nom As String, Res As Integer, Mode As Integer
Sub QSL()

'row_depart = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
nom_depart = Cells(row_depart, 2)
For I = 28 To 1 Step -1
nom_courant = Cells(row_depart - 1, 2)

Dim Sum As Long

Sum = 0

row_depart = ActiveCell.SpecialCells(xlCellTypeLastCell).Row 'tes données démarrent à partir de la seconde ligne

Do While nom_courant = nom_depart


Sum = Sum + Cells(row_depart, 17).Value 'Montants B1


row_depart = row_depart - 1
nom_depart = Cells(row_depart - 1, 2)

Loop



Cells(row_depart - 1, 18).Value = Sum

Next I

MsgBox Sum


End Sub

Ça marche pas comme je voudrais, mais c'est un départ. La Msgbox à la fin servait à vérifier des valeurs, mais pour l'instant j'obtient zéro. De plus, j'ai fait un bouton pour la macro, je verrai pour l'automatisation plus tard.

Merci encore!
 

Discussions similaires

Statistiques des forums

Discussions
312 793
Messages
2 092 162
Membres
105 242
dernier inscrit
Titeuf999