Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
Sub defmaplg()
dim maplg as range, c as range
For each c in [B2:B21].cells
If isempty(maplg) then
On Jul 26, 12:39 am, campasc wrote:
> Bonjour,
> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
> Ce que j'entends par variable :
> On commence par exemple par d finir la plage de cellules initiale entre B1 et
> B20.
> Selon certain crit res, on en vient comparer la valeur de A5 celle de
> B2(par exemple).
> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
> plage de cellules (on ne la supprime pas car elle sert calculer d'autre s
> cellules sur la feuille).
> Et ainsi de suite...
> Merci pour votre aide.
> CampaSC
Sub defmaplg()
dim maplg as range, c as range
For each c in [B2:B21].cells
If isempty(maplg) then
On Jul 26, 12:39 am, campasc <camp...@domain-xyz.in> wrote:
> Bonjour,
> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
> Ce que j'entends par variable :
> On commence par exemple par d finir la plage de cellules initiale entre B1 et
> B20.
> Selon certain crit res, on en vient comparer la valeur de A5 celle de
> B2(par exemple).
> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
> plage de cellules (on ne la supprime pas car elle sert calculer d'autre s
> cellules sur la feuille).
> Et ainsi de suite...
> Merci pour votre aide.
> CampaSC
Sub defmaplg()
dim maplg as range, c as range
For each c in [B2:B21].cells
If isempty(maplg) then
On Jul 26, 12:39 am, campasc wrote:
> Bonjour,
> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
> Ce que j'entends par variable :
> On commence par exemple par d finir la plage de cellules initiale entre B1 et
> B20.
> Selon certain crit res, on en vient comparer la valeur de A5 celle de
> B2(par exemple).
> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
> plage de cellules (on ne la supprime pas car elle sert calculer d'autre s
> cellules sur la feuille).
> Et ainsi de suite...
> Merci pour votre aide.
> CampaSC
Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
..autre possibilité si on veut que la plage soit redéfinie
lorsqu'on
entre une valeur (et en plus on colore pour y voir)
'dans le codeModule de la feuille concernée
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range
Set iSect = Intersect(Target, [b2:b21])
Application.EnableEvents = False
If Not iSect Is Nothing Then Call defmaplage
Application.EnableEvents = True
[maplage].Cells.Interior.ColorIndex = 40
End Sub
'dans un module standard
Sub defmaplage()
Dim maplg As Range, c As Range
[b2:b21].Cells.Interior.ColorIndex = xlNone
For Each c In [b2:b21].Cells
If c.Value < [A5] Then
If maplg Is Nothing Then
Set maplg = Range(c.Address)
Else
Set maplg = Union(maplg, Range(c.Address))
End If
End If
Next
Names.Add Name:="maplage", RefersTo:="=" &
maplg.Address
Set maplg = Nothing
End Sub
'LSteph
On Jul 26, 12:39 am, campasc wrote:Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
..autre possibilité si on veut que la plage soit redéfinie
lorsqu'on
entre une valeur (et en plus on colore pour y voir)
'dans le codeModule de la feuille concernée
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range
Set iSect = Intersect(Target, [b2:b21])
Application.EnableEvents = False
If Not iSect Is Nothing Then Call defmaplage
Application.EnableEvents = True
[maplage].Cells.Interior.ColorIndex = 40
End Sub
'dans un module standard
Sub defmaplage()
Dim maplg As Range, c As Range
[b2:b21].Cells.Interior.ColorIndex = xlNone
For Each c In [b2:b21].Cells
If c.Value < [A5] Then
If maplg Is Nothing Then
Set maplg = Range(c.Address)
Else
Set maplg = Union(maplg, Range(c.Address))
End If
End If
Next
Names.Add Name:="maplage", RefersTo:="=" &
maplg.Address
Set maplg = Nothing
End Sub
'LSteph
On Jul 26, 12:39 am, campasc wrote:
Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
..autre possibilité si on veut que la plage soit redéfinie
lorsqu'on
entre une valeur (et en plus on colore pour y voir)
'dans le codeModule de la feuille concernée
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range
Set iSect = Intersect(Target, [b2:b21])
Application.EnableEvents = False
If Not iSect Is Nothing Then Call defmaplage
Application.EnableEvents = True
[maplage].Cells.Interior.ColorIndex = 40
End Sub
'dans un module standard
Sub defmaplage()
Dim maplg As Range, c As Range
[b2:b21].Cells.Interior.ColorIndex = xlNone
For Each c In [b2:b21].Cells
If c.Value < [A5] Then
If maplg Is Nothing Then
Set maplg = Range(c.Address)
Else
Set maplg = Union(maplg, Range(c.Address))
End If
End If
Next
Names.Add Name:="maplage", RefersTo:="=" &
maplg.Address
Set maplg = Nothing
End Sub
'LSteph
On Jul 26, 12:39 am, campasc wrote:Bonjour,
Pour une macro, j'ai besoin de d finir un plage de cellules variable.
Ce que j'entends par variable :
On commence par exemple par d finir la plage de cellules initiale entre B 1 et
B20.
Selon certain crit res, on en vient comparer la valeur de A5 celle de
B2(par exemple).
Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
plage de cellules (on ne la supprime pas car elle sert calculer d'autres
cellules sur la feuille).
Et ainsi de suite...
Merci pour votre aide.
CampaSC
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le premier était un peu dur à déchiffrer.
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale entr e B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de l a
>> plage de cellules (on ne la supprime pas car elle sert calculer d'autr es
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, par exemp le
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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le premier était un peu dur à déchiffrer.
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale entr e B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de l a
>> plage de cellules (on ne la supprime pas car elle sert calculer d'autr es
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, par exemp le
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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le premier était un peu dur à déchiffrer.
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale entr e B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de l a
>> plage de cellules (on ne la supprime pas car elle sert calculer d'autr es
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, par exemp le
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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le premier était
un peu dur à déchiffrer.
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale entre
>> B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
>> plage de cellules (on ne la supprime pas car elle sert calculer
>> d'autres
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, 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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le premier était
un peu dur à déchiffrer.
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale entre
>> B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
>> plage de cellules (on ne la supprime pas car elle sert calculer
>> d'autres
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, 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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le premier était
un peu dur à déchiffrer.
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale entre
>> B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2 de la
>> plage de cellules (on ne la supprime pas car elle sert calculer
>> d'autres
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, 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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
Il m'avais semblé que tu cherchais à définir une plage de
cellule.
C'est ce que fait le code proposé , selon la cellule A5 comme
indiqué.
Je ne sais pas si tu l'as testé
Maintenant tu parles de valeur qui deviennent plus petite et de
recherche de petite valeur, Il existe des fonctions pour petite.valeur
et grande.valeur
cette fois en jonglant avec une 3 ème colonne C.. Cela n'a plus rien
à
voir.J'esp re avoir t plus clair :D Non c'est pire! Déjà que le
premier était un peu dur à déchiffrer.
Donc là tu nous dit le comment tu essayerais de faire on ne sait
finalement pas quoi..
au lieu du à quoi il faudrait arriver et à partir de quoi.
Peux - être devrais tu mettre ton classeur en http:www.cjoint.com
et expliquer ce que tu veux obtenir.
Cordialement.
--
LSteph
On Jul 26, 1:45 pm, campasc wrote:LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale
entr e B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2
de l a
>> plage de cellules (on ne la supprime pas car elle sert calculer
d'autr es
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, par exemp le
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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
Il m'avais semblé que tu cherchais à définir une plage de
cellule.
C'est ce que fait le code proposé , selon la cellule A5 comme
indiqué.
Je ne sais pas si tu l'as testé
Maintenant tu parles de valeur qui deviennent plus petite et de
recherche de petite valeur, Il existe des fonctions pour petite.valeur
et grande.valeur
cette fois en jonglant avec une 3 ème colonne C.. Cela n'a plus rien
à
voir.
J'esp re avoir t plus clair :D Non c'est pire! Déjà que le
premier était un peu dur à déchiffrer.
Donc là tu nous dit le comment tu essayerais de faire on ne sait
finalement pas quoi..
au lieu du à quoi il faudrait arriver et à partir de quoi.
Peux - être devrais tu mettre ton classeur en http:www.cjoint.com
et expliquer ce que tu veux obtenir.
Cordialement.
--
LSteph
On Jul 26, 1:45 pm, campasc wrote:
LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale
entr e B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2
de l a
>> plage de cellules (on ne la supprime pas car elle sert calculer
d'autr es
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, par exemp le
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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC
Il m'avais semblé que tu cherchais à définir une plage de
cellule.
C'est ce que fait le code proposé , selon la cellule A5 comme
indiqué.
Je ne sais pas si tu l'as testé
Maintenant tu parles de valeur qui deviennent plus petite et de
recherche de petite valeur, Il existe des fonctions pour petite.valeur
et grande.valeur
cette fois en jonglant avec une 3 ème colonne C.. Cela n'a plus rien
à
voir.J'esp re avoir t plus clair :D Non c'est pire! Déjà que le
premier était un peu dur à déchiffrer.
Donc là tu nous dit le comment tu essayerais de faire on ne sait
finalement pas quoi..
au lieu du à quoi il faudrait arriver et à partir de quoi.
Peux - être devrais tu mettre ton classeur en http:www.cjoint.com
et expliquer ce que tu veux obtenir.
Cordialement.
--
LSteph
On Jul 26, 1:45 pm, campasc wrote:LSteph a crit le 26/07/2011 11h26 :
> ..autre possibilit si on veut que la plage soit red finie
> lorsqu'on
> entre une valeur (et en plus on colore pour y voir)
> 'dans le codeModule de la feuille concern e
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim iSect As Range
> Set iSect = Intersect(Target, [b2:b21])
> Application.EnableEvents = False
> If Not iSect Is Nothing Then Call defmaplage
> Application.EnableEvents = True
> [maplage].Cells.Interior.ColorIndex = 40
> End Sub
> 'dans un module standard
> Sub defmaplage()
> Dim maplg As Range, c As Range
> [b2:b21].Cells.Interior.ColorIndex = xlNone
> For Each c In [b2:b21].Cells
> If c.Value < [A5] Then
> If maplg Is Nothing Then
> Set maplg = Range(c.Address)
> Else
> Set maplg = Union(maplg, Range(c.Address))
> End If
> End If
> Next
> Names.Add Name:="maplage", RefersTo:="=" &
> maplg.Address
> Set maplg = Nothing
> End Sub
> 'LSteph
> On Jul 26, 12:39 am, campasc wrote:
>> Bonjour,
>> Pour une macro, j'ai besoin de d finir un plage de cellules variable.
>> Ce que j'entends par variable :
>> On commence par exemple par d finir la plage de cellules initiale
entr e B 1
et
>> B20.
>> Selon certain crit res, on en vient comparer la valeur de A5 celle de
>> B2(par exemple).
>> Si la valeur de A5 est > la valeur de B2, on limine la cellule B2
de l a
>> plage de cellules (on ne la supprime pas car elle sert calculer
d'autr es
>> cellules sur la feuille).
>> Et ainsi de suite...
>> Merci pour votre aide.
>> CampaSC
par exemple 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 dans plage de recherche, par exemp le
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.
J'esp re avoir t plus clair :D
Merci par avance
CampaSC