Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déterminer une plage de données selon un critère.

4 réponses
Avatar
apt
Bonjour,

J'aimerais savoir comment d=E9terminer une plage de donn=E9es dans la
colonne B avec le d=E9but et la fin de cette plage selon un crit=E8re
donn=E9 dans la colonne A ?
Par exemple :

Si valeur1 =3D critere alors Maplage =3D "cette plage commence =E0 "
DebutPlg " et se termine =E0 " FinPlg"

ensuite j'aimerais savoir quel est le test qui m'informe si cette
valeur1 donn=E9e est le debut ou la fin de cette plage ?

Merci.

4 réponses

Avatar
apt
Bon j'ai pu adopte un code de Daniel;

'--------------------------------------------------------
Private Sub testvaleur(Val As Integer)
Dim Debut, Fin
ctr = Application.Match(Val * 1, Range("A:A"), 0)
If IsNumeric(ctr) Then
Debut = Range("B2")(ctr, 1).Value 'Valeur de la 2eme Col qui
corresponde
'et puis on doit continuer pour trouver la derniere occurence
Fin = Range("B2")(ctr + 7, 1).Value
MsgBox "La valeur " & Val & " se trouve dans la plage de " & Debut
& " au " & Fin
End If
End Sub
'-------------------------------------------------------

mais voila au lieu de m'avoir cette phrase :

La valeur 14 se trouve dans la plage de 01-04-06 au 07-08-06

dans les données suivantes :

13 28-03-06
13 29-03-06
13 30-03-06
13 31-03-06
14 01-04-06
14 02-04-06
14 03-04-06
14 03-04-06
14 05-04-06
14 06-04-06
14 07-04-06
15 08-04-06
15 09-04-06
15 10-04-06

J'ai toujours cela :

La valeur 14 se trouve dans la plage de 02-04-06 au 08-08-06

Ou est le problème ?
Avatar
apt
Un petit rectificatif de dates :

voila ce que j'ai :

La valeur 14 se trouve dans la plage de 02-04-06 au 08-04-06

et voila ce que je voudrais avoir :

La valeur 14 se trouve dans la plage de 02-04-06 au 07-04-06
Avatar
apt
Bon j'ai changer la procedure pour fonctionner en generale :

Private Sub testvaleur(Val As Integer)
Dim Debut, Fin, vFin, ComptPlg
ctr = Application.Match(Val * 1, Range("A:A"), 0)
If IsNumeric(ctr) Then
Debut = Range("B2")(ctr, 1).Value 'Valeur de la 2eme Col qui
corresponde
ComptPlg = 0
While IsNumeric(vFin)
vFin = Application.Match(Val * ComptPlg, Range("A:A"), 0)
ComptPlg = ComptPlg + 1
Wend
Fin = Range("B2")(vFin, 1).Value
End If
MsgBox "La valeur " & Val & " se trouve dans la plage de " & Debut &
" au " & Fin
End Sub
'------------------------------------------------------

mais elle ne marche pas !!!

Qqn peut me renseigner ?

Merci.
Avatar
apt
Toujours pas de réponses ?