Compter le nombre de cellules qui separe des valeur
Bonjour
Je suis nouveau sur ce site et je sais pas si je post au bonne endroit.
Voila je cherchais de l'aide afin de trouver une formule qui me permettrai de compter le nombre de cellules qui séparent deux valeurs sous certaines conditions. C'est un peu dur a expliquer alors je vais essayer avec un exemple.
A B C D E
0 1 2 3
10
15
12
13
34
20 5 Je veux connaitre en faite, pour chaque groupe de nombre (groupe des nombre se
21 finissant par 0, par 1, par 2, par 3, etc) dans une liste de nombre au bout de combien
23 4 de cellule un nombre faisant parti du même groupe réapparait.
35 exemple pour ce tableau. Apres le 10, le 20 apparait 5 cellules plus-tard
31 3 ou après le 21 le 31 apparait 3 cellules plus-tard
32 8
Voila j'espère que j'ai été clair et désolé d'avance si je ne suis pas au bonne endroit pour poster.
Merci de votre aide.
Bonjour,
Dans la mesure où j'ai compris votre demande voici une piste en VBA.
Copiez le code suivant dans un module standard
Sub NbCellulesEntreValeurs()
Dim S As Worksheet
Dim R As Range
Dim var
Dim Cible%
Dim i&
Dim j&
Dim A$
Dim T()
With Selection
If .Columns.Count > 1 Then
MsgBox "La sélection doit être sur une seule colonne."
Exit Sub
End If
If .Rows.Count = 1 Then Exit Sub
.Copy
End With
Set S = Sheets.Add
S.Paste
Application.CutCopyMode = False
Set R = S.UsedRange
var = R
For Cible% = 0 To 9
ReDim T(1 To UBound(var, 1), 1 To 1)
j& = 0
For i& = 1 To UBound(var, 1)
A$ = CStr(var(i&, 1))
If Right(A$, 1) = CStr(Cible%) Then
If j& = 0 Then
j& = i&
T(i&, 1) = 0
Else
T(i&, 1) = i& - j&
j& = i&
End If
End If
Next i&
Set R = R.Offset(0, 1)
R = T
Erase T
Next Cible%
S.Rows(1).Insert
Set R = S.Range("b1:k1")
R = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
R.Font.Bold = True
R.HorizontalAlignment = xlCenter
R.Interior.ColorIndex = 3
S.[a1].Select
End Sub1) Mettez des données numériques en colonne (ex : de A1 à A100)
2) Sélectionnez les données puis lancez la macro NbCellulesEntreValeurs. Le résultat s'affiche dans une nouvelle feuille.
Cordialement.
PMO
Patrick Morange
Bonsoir
Avec une formule Matricielle en B2 à incrémenter sur tout le tableau
(Formule à valider avec les 3 touches Ctrl+Maj+Entrée)
=SI(ET(SOMMEPROD(--(DROITE($A$2:$A3;1)=TEXTE(B$1;"Standard")))=2;DROITE($A3;1)*1=B$1);LIGNE()-EQUIV(DROITE($A3;1);DROITE($A$2:$A2;1);0)-1;"")Cordialement
bonsoir
un grand merci pour vos reponses je pensais ne jamais voir de réponse a mon problème. Un grand bravo a toi PMO, ta macro fonctionne parfaitement c'est exactement se que je voulais tu es vraiment trop fort! Je reve de pouvoir faire ça un jour...
Merci a tous encore et à bientot.