en VBA, comment trouver dans une plage, rangée par ordre croissant, la
dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que
le nom de ma plage est une variable VBA du genre strPlage(i), donc pas
reconnue dans Excel.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour bourby,
=INDEX(plg;EQUIV(valeur;plg;1)-1)
On Error Resume Next Set t = Rows(Application.Match(strPlage(i), [plg], 0)) If t <> Empty Then x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1) - 1) Else x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1)) End If
isabelle
bonjour,
en VBA, comment trouver dans une plage, rangée par ordre croissant, la dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que le nom de ma plage est une variable VBA du genre strPlage(i), donc pas reconnue dans Excel.
D'avance merci.
Bourby
bonjour bourby,
=INDEX(plg;EQUIV(valeur;plg;1)-1)
On Error Resume Next
Set t = Rows(Application.Match(strPlage(i), [plg], 0))
If t <> Empty Then
x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1) - 1)
Else
x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1))
End If
isabelle
bonjour,
en VBA, comment trouver dans une plage, rangée par ordre croissant, la
dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que
le nom de ma plage est une variable VBA du genre strPlage(i), donc pas
reconnue dans Excel.
On Error Resume Next Set t = Rows(Application.Match(strPlage(i), [plg], 0)) If t <> Empty Then x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1) - 1) Else x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1)) End If
isabelle
bonjour,
en VBA, comment trouver dans une plage, rangée par ordre croissant, la dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que le nom de ma plage est une variable VBA du genre strPlage(i), donc pas reconnue dans Excel.
D'avance merci.
Bourby
bourby
isabelle wrote:
bonjour bourby,
=INDEX(plg;EQUIV(valeur;plg;1)-1)
On Error Resume Next Set t = Rows(Application.Match(strPlage(i), [plg], 0)) If t <> Empty Then x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1) - 1) Else x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1)) End If
isabelle
bonjour,
en VBA, comment trouver dans une plage, rangée par ordre croissant, la dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que le nom de ma plage est une variable VBA du genre strPlage(i), donc pas reconnue dans Excel.
D'avance merci.
Bourby
Bonjour Isabelle et merci pour ton aide.
Tu m'as mis sur la bonne voie; j'ai un peu modifié ton code, pour récupérer le rang de la valeur dans la plage:
Sub trouver() strplage = Array("maPlage1", "maPlage2") monRéel = 3.35 On Error Resume Next For i = LBound(strplage) To UBound(strplage) t = Application.Match(monRéel, Range(strplage(i)), 1) MsgBox i & " " & t Next i End Sub
Cordialement
Bourby
isabelle wrote:
bonjour bourby,
=INDEX(plg;EQUIV(valeur;plg;1)-1)
On Error Resume Next
Set t = Rows(Application.Match(strPlage(i), [plg], 0))
If t <> Empty Then
x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1) - 1)
Else
x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1))
End If
isabelle
bonjour,
en VBA, comment trouver dans une plage, rangée par ordre croissant, la
dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que
le nom de ma plage est une variable VBA du genre strPlage(i), donc pas
reconnue dans Excel.
D'avance merci.
Bourby
Bonjour Isabelle et merci pour ton aide.
Tu m'as mis sur la bonne voie; j'ai un peu modifié ton code, pour
récupérer le rang de la valeur dans la plage:
Sub trouver()
strplage = Array("maPlage1", "maPlage2")
monRéel = 3.35
On Error Resume Next
For i = LBound(strplage) To UBound(strplage)
t = Application.Match(monRéel, Range(strplage(i)), 1)
MsgBox i & " " & t
Next i
End Sub
On Error Resume Next Set t = Rows(Application.Match(strPlage(i), [plg], 0)) If t <> Empty Then x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1) - 1) Else x = Application.Index([plg], Application.Match(strPlage(i), [plg], 1)) End If
isabelle
bonjour,
en VBA, comment trouver dans une plage, rangée par ordre croissant, la dernière valeur inférieure à un nombre (réel)?
Je ne veux/peux pas employer evaluate + les fonctions Excel, parce que le nom de ma plage est une variable VBA du genre strPlage(i), donc pas reconnue dans Excel.
D'avance merci.
Bourby
Bonjour Isabelle et merci pour ton aide.
Tu m'as mis sur la bonne voie; j'ai un peu modifié ton code, pour récupérer le rang de la valeur dans la plage:
Sub trouver() strplage = Array("maPlage1", "maPlage2") monRéel = 3.35 On Error Resume Next For i = LBound(strplage) To UBound(strplage) t = Application.Match(monRéel, Range(strplage(i)), 1) MsgBox i & " " & t Next i End Sub