Repetition calcul

Bonjour,

J'effectue des calculs MIN et MAX sur VBA, seulement je bloque pour répéter ce calcul sur les lignes d'après.

Exemple :

Je calcul la valeur minimum et maximum pour la plage F5:S5 et afficher le résultat en cellule C5

Comment faire pour répéter cette action pour les plages F6:S6 et afficher en C6 etc...

Merci d'avance pour votre aide

Bonjour,

Je propose une piste de programme VBA:

For i = 5 To 10
    Range("C" & i) = "Min: " & WorksheetFunction.Min(Range("F" & i & ":S" & i)) & " Max: " & WorksheetFunction.Max(Range("F" & i & ":S" & i))
Next i

Il sera bien sûr à adapter à ton besoin, mais comme tu ne nous donnes pas beaucoup d'informations, je ne peux pas bien faire mieux...

Bonjour,

Je te joins un fichier pour que t'es l'exemple, en vue.

Par contre je ne peux pas télécharger de fichier de mon coté donc si tu peux m'aider par ici ce serait mieux.

A savoir que le nombre de colonne n'est pas forcément le même a chaque fois, je peux en avoir 10 aujourd'hui comme 50 demain

8classeur2.xlsx (20.56 Ko)

Re,

Dans ce cas je te propose le code suivant:

Sub calculs()
Application.ScreenUpdating = False
Dim ligDep, ligFin, colDep, colFin

ligDep = 5
colDep = 6
ligFin = Range("b" & Rows.Count).End(xlUp).Row
colFin = Cells(ligDep - 1, Columns.Count).End(xlToLeft).Column

For i = ligDep To ligFin
    Range("c" & i) = WorksheetFunction.Min(Range(Cells(i, colDep), Cells(i, colFin)))
    Range("d" & i) = WorksheetFunction.Average(Range(Cells(i, colDep), Cells(i, colFin)))
    Range("e" & i) = WorksheetFunction.Max(Range(Cells(i, colDep), Cells(i, colFin)))
Next i
Application.ScreenUpdating = True
End Sub

Le nombre de lignes et de colonnes est variable, il peut donc traiter 10, 50, 100 colonnes etc...

Re,

Génial merci beaucoup !!!!

J'essai de comprendre ton code et j'arrive pas vraiment a traduire cette ligne : Range("c" & i) = WorksheetFunction.Min(Range(Cells(i, colDep), Cells(i, colFin)))

Tu peux m'expliquer ?

Bonjour,

Oui bien sûr, je peux essayer d'expliquer:

Range("c" & i) : Cellule colonne C, ligne i

WorksheetFunction.Min(Range(Cells(i, colDep), Cells(i, colFin))) : Pour la fonction Min, on doit donner une plage de valeurs, cette plage de valeurs est la suivante: Range(Cells(i, colDep), Cells(i, colFin)), ici je donne un objet Range (plage de cellules), je donne deux valeurs pour définir cette plage de cellules, une cellule de départ Cells(i, colDep), et une cellule de fin Cells(i, colFin).

Exemple: si je donne Range("A1","C5"), toutes les cellules qui se trouvent entre A1 et C5 seront dans la plage de cellules.

Ici je définis comme cellule de départ la cellule qui se trouve à la colonne de départ (F), ligne i (celle que l'on traite actuellement), et en cellule de fin, la cellule se trouvant à la dernière colonne (R), ligne i, ça donnerait Range("F5","R5") ce qui est l'équivalent de "F5:R5".

J'ai mis des variables car la colonne de fin par exemple n'est pas toujours la même, et si on souhaite modifier la colonne de départ, il suffira de modifier au début du programme son numéro de colonne.

J'utilise Cells pour pouvoir écrire de la façon suivante : ligne 5, colonne 6.

J'espère que c'est déjà plus clair comme ça

Les lignes suivantes sont identiques, je modifie juste la cellule dans laquelle on écrit le résultat ainsi que la fonction qu'on utilise pour calculer le résultat.

Re,

D'accord je comprend un peu mieux avec les détails !

Merci beaucoup !

Rechercher des sujets similaires à "repetition calcul"