Macro MIN & MAX automatisée

daniel1949

XLDnaute Occasionnel
Bonjour le forum,
Je souhaiterais une macro qui, à chaque fois qu'un nom de produit (ex: produit 1) est nommé, enclenche les fonctions MIN dans la colonne C & MAX dans la colonne D et ce, jusqu'à la dernière cellule AVANT UN AUTRE PRODUIT. Soit pour l'exemple MIN de C4 à C17 et MAX de D4 à D17 et MIN de C19 à C25 et MAX de D19 à D25. Etc.
Le fichier ci-joint sera plus compréhensif.
Merci de votre collaboration.
Daniel
 

daniel1949

XLDnaute Occasionnel
Re : Macro MIN & MAX automatisée

Bonjour Robert,
Effectivement c'est édité (tapé) dans une cellule. La solution TCD de Tototiti est bonne mais ce n'est pas ce que je recherche. J'ai des jalons de dates à poser PAR produit (un peu comme MS Project) mais à la différence que ces jalons ne peuvent être calculés qu'après avoir édité les sous-produits et là, le pb se corse car je n'ai jamais le même nombre de lignes de sous-produit.
Merci de ta réponse.
A bientôt ?...
Daniel
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Macro MIN & MAX automatisée

Bonjour Daniel, bonjour le forum,

La macro événementielle Change ci-dessous s'exécutera à chaque nouvelle édition dans la colonne A. Si tu respectes la structure de ton exemple elle dervrait te convenir. Macro à placer par VBE dans le composant WorkSheet de l'onglet concerné (Feuil1(Feuil1) par exemple).
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim ld As Long 'déclare la variable ld (Ligne de Début)
Dim lf As Long 'déclare la variable lf (Ligne de Fin)
Dim cel As Range 'déclare la variable cel (CELlule)
 
If Target.Column > 1 Then Exit Sub 'si le changement à lieu ailleurs que dans la colonne A, sort dela procédure
Set cel = Range("A1") 'définit la variable cel
 
Do 'exécute
    Set cel = cel.End(xlDown) 'redéfinit la variable cel
    ld = cel.Row + 1 'définit la ligne du début
    lf = cel.End(xlDown).Row - 1 'définit la ligne de fin
    If lf + 1 = 65536 Then Exit Sub 'condition : si la ligne de fin est la dernière du tableau, sort de la procédure
    Cells(ld - 1, 3).Formula = "= Min(C" & ld & ":C" & lf & ")" 'place la formule MIN
    Cells(ld - 1, 4).Formula = "= Max(D" & ld & ":D" & lf & ")" 'place la formule MAX
Loop 'boucle
 
End Sub
 

Discussions similaires

Réponses
0
Affichages
192

Statistiques des forums

Discussions
312 747
Messages
2 091 606
Membres
105 007
dernier inscrit
adla