Tout d'abord, Bonjour à tous ceux qui passeront sur ce fil !
Je coince sérieusement sur une partie de ma macro...🙁
J'ai 3 colonnes A, B et C
Ligne 1 les titres
Ligne 2 à N(N variable définie au début de ma macro) :
-Colonne A, des temps en seconde.
-Colonne B, des temps en seconde, qui sont initialement rangés par ordre croissant, MAIS quand la macro travaille ils ne sont plus rangés de la sorte.
-Colonne C, des entiers positifs
Ce que je voudrais faire, c'est définir un plage de cellule qui serait ma plage de recherche initiale ( toute la colonne B de la ligne 2 à N)
Ensuite faire une boucle de i=2 jusqu'à N qui :
Va chercher la plus petite des valeurs des cellules comprises dans la plage de recherche ET entre cellule(2,"B") et cellule (i,-1,"B")(Intersection), par exemple cellule (j,"B")
Si la valeur de la cellule (i,"A") est > à la valeur de la cellule (j,"B"), alors la valeur de la cellule (i,"C") prend la valeur de la cellule (j,"C") ET la cellule (j,"B") est éliminée de la plage de recherche. C'est à dire qu'au i suivant, elle ne sera pas prise en compte lors de la recherche de la plus petite des valeurs.
Sinon la cellule (i,"C") prend la valeur de la cellule (i-1,"C") + 1.
Dans l'idée, je voudrais faire quelque chose du genre :
maplage=Range(Cells(2,"B"),Cells(N,"B"))
Et dans la boucle, redéfinir maplage à chaque fois que nécessaire
maplage= maplage - Range (Cells(j,"B")
Il n'est apparemment pas possible de faire de telles opérations sur les Range, mais si quelqu'un a une idée je suis preneur !
Merci.
CampaSC
Je coince sérieusement sur une partie de ma macro...🙁
J'ai 3 colonnes A, B et C
Ligne 1 les titres
Ligne 2 à N(N variable définie au début de ma macro) :
-Colonne A, des temps en seconde.
-Colonne B, des temps en seconde, qui sont initialement rangés par ordre croissant, MAIS quand la macro travaille ils ne sont plus rangés de la sorte.
-Colonne C, des entiers positifs
Ce que je voudrais faire, c'est définir un plage de cellule qui serait ma plage de recherche initiale ( toute la colonne B de la ligne 2 à N)
Ensuite faire une boucle de i=2 jusqu'à N qui :
Va chercher la plus petite des valeurs des cellules comprises dans la plage de recherche ET entre cellule(2,"B") et cellule (i,-1,"B")(Intersection), par exemple cellule (j,"B")
Si la valeur de la cellule (i,"A") est > à la valeur de la cellule (j,"B"), alors la valeur de la cellule (i,"C") prend la valeur de la cellule (j,"C") ET la cellule (j,"B") est éliminée de la plage de recherche. C'est à dire qu'au i suivant, elle ne sera pas prise en compte lors de la recherche de la plus petite des valeurs.
Sinon la cellule (i,"C") prend la valeur de la cellule (i-1,"C") + 1.
Dans l'idée, je voudrais faire quelque chose du genre :
maplage=Range(Cells(2,"B"),Cells(N,"B"))
Et dans la boucle, redéfinir maplage à chaque fois que nécessaire
maplage= maplage - Range (Cells(j,"B")
Il n'est apparemment pas possible de faire de telles opérations sur les Range, mais si quelqu'un a une idée je suis preneur !
Merci.
CampaSC