Comptabiliser des valeurs identiques cote à cote dans une plage

sellig 29

XLDnaute Occasionnel
Bonjour à tous,

J'aimerais pouvoir comptabiliser à l'aide d'une formule le nombre de fois que la lettre R se trouve cote à cote avec une autre lettre R dans la plage donnée.
J'ai donné des précisions dans la pièce jointe!
D'avance merci à tous ceux qui pourront m'aider.
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage.xls
    17.5 KB · Affichages: 95
  • 2 valeurs cote à cote dans une plage.xls
    17.5 KB · Affichages: 102
  • 2 valeurs cote à cote dans une plage.xls
    17.5 KB · Affichages: 105

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir et merci à tous pour vos réponses et l'aide précieuse que vous m'avez apportée.:D:D:D

JHA, j'ai commencé un travail un peu similaire au tien (double tableau) en employant la formule "concatener", la difficulté persistante concerne toujours les 3 "R" cote à cote qui doivent compter pour une seule valeur... Ce point n'est pas non plus résolu dans ton fichier.
CISCO, ta formule "somme prod" correspond tout à fait à mon attente, toutes les subtilités liées aux reports de lignes et les 3 "R" y sont intégrés!
Paritec, à la relecture de ma demande initiale, je n'ai pas trouvé d'incohérences dans mon souhait? Mes explications me semblent claires, dans tous les cas, merci pour ta disponibilité.
Bonne soirée à vous tous!

Gilles
 

CISCO

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir

Bonsoir et merci à tous pour vos réponses et l'aide précieuse que vous m'avez apportée.:D:D:D

CISCO, ta formule "somme prod" correspond tout à fait à mon attente, toutes les subtilités liées aux reports de lignes et les 3 "R" y sont intégrés!

Gilles

Très bien si cela fonctionne. Le principe, c'est de compter 1 seulement lorsqu'il y a trois cellules à la suite du type R, R, et autre chose que R. Ainsi on ne prend en compte que les deux derniers R de toutes les séries de R, qu'il y en ai 2, 3 ou plus dans la série. Et il y a trois SOMMEPROD parce qu'il y a trois lignes.

@ plus
 

Paritec

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir Cisco le forum
oui alors si je lis bien tes explications, qui sont elles très claires, le fichier joint ne donne donc pas 14 comme le demandait Sellig dans son premier post? ou bien??
Pour la première ligne 4 la deuxième 5 et la troisième 4, donc un total de 13 et non 14 comme le demandait Sellig!!!
à te relire Cisco et merci d'avance
a+
Papou:eek:
 

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir à tous



Une fonction personnalisée conforme à l'interprétation de CISCO :​
VB:
Function toto&(r As Range)
Application.Volatile
Dim i&, n&
    For i = 1 To r.Cells.Count
        If r(i).Value = "R" Then
            n = n + 1
        Else
            If n > 1 Then toto = toto + 1
            n = 0
        End If
    Next
    If n > 1 Then toto = toto + 1
End Function
Malheureusement, =toto(B6:AJ8) renvoie 13 au lieu du 14 attendu.

En voici deux autres, équivalentes, qui renvoie le fameux 14 :​
VB:
Function tata&(r As Range)
Application.Volatile
Dim i&, n&
    For i = 1 To r.Cells.Count
        If r(i).Value = "R" Then
            n = n + 1
        Else
            n = 0
        End If
        If n > 1 Then tata = tata + 1
    Next
End Function
VB:
Function tutu&(r As Range)
Application.Volatile
Dim i&, n&
    For i = 1 To r.Cells.Count: n = -(n + 1) * (r(i).Value = "R"): tutu = tutu - (n > 1): Next
End Function



ROGER2327
#5991


Dimanche 8 Gidouille 139 (Sainte Boudouille, bayadère - fête Suprême Tierce)
4 Messidor An CCXX, 0,0020h - véronique
2012-W25-5T00:00:17Z
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour à tous, bonjour Roger, bonjour Paritec.

La dernière ligne donne 5 à cause du R en C6 et du O en D6, qui sont à placer à la suite de AK8.

@ plus
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage ter.xls
    58.5 KB · Affichages: 61
  • 2 valeurs cote à cote dans une plage ter.xls
    58.5 KB · Affichages: 79
  • 2 valeurs cote à cote dans une plage ter.xls
    58.5 KB · Affichages: 68

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Re...


Bonjour à tous, bonjour Roger, bonjour Paritec.

La dernière ligne donne 5 à cause du R en C6 et du O en D6, qui sont à placer à la suite de AK8.

@ plus
Très fort !​




ROGER2327
#5993


Dimanche 8 Gidouille 139 (Sainte Boudouille, bayadère - fête Suprême Tierce)
4 Messidor An CCXX, 3,1804h - véronique
2012-W25-5T07:37:59Z
 

pierrejean

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour à tous

Une fonction personnalisée à tester
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage.xls
    36.5 KB · Affichages: 36
  • 2 valeurs cote à cote dans une plage.xls
    36.5 KB · Affichages: 40
  • 2 valeurs cote à cote dans une plage.xls
    36.5 KB · Affichages: 40
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Re

Version avec fonction parametrée
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage_b.xls
    40.5 KB · Affichages: 39
  • 2 valeurs cote à cote dans une plage_b.xls
    40.5 KB · Affichages: 39
  • 2 valeurs cote à cote dans une plage_b.xls
    40.5 KB · Affichages: 40

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir à tous,
pierrejean, ton fichier correspond également à ce que je souhaitais, je te remercie (j'ai le choix maintenant entre celui de CISCO et le tien!). ROGER2327, je n'ai pas réussi à appliquer ton code, j'ai surement du zapper quelque chose? Merci toutefois pour ton aide.
Bonne soirée à tous
Gilles
 

ROGER2327

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir à tous,
Re...

(...)
ROGER2327, je n'ai pas réussi à appliquer ton code, j'ai surement du zapper quelque chose?
(...)
Pas plus difficile à appliquer que la fonction de pierrejean (que je salue au passage) : Coller le code dans un module standard, puis saisir la fonction dans la feuille la formule indiquée plus haut. Ce que j'ai fait dans le classeur joint.

J'en ai profité pour ajouter cette fonction qui semble devoir donner les même résultats que la formule de CISCO et la fonction de pierrejean.​
VB:
Function titi&(r As Range)
Application.Volatile
Dim i&, n&
    For i = 1 To r.Cells.Count
        If r(i).Value = "R" Then
            n = n + 1
        Else
            If n > 1 Then titi = titi + 1
            n = 0
        End If
    Next
    If n > 1 Or (n > 0 And r(1).Value = "R") Then titi = titi + 1
End Function


ROGER2327
#5994


Dimanche 8 Gidouille 139 (Sainte Boudouille, bayadère - fête Suprême Tierce)
4 Messidor An CCXX, 9,4157h - véronique
2012-W25-5T22:35:52Z
 

Pièces jointes

  • XLD_187001_Comptage.xls
    49 KB · Affichages: 43

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour ROGER2327,
A la lecture de votre fichier, j'ai compris ce qui m'avait échappé! J'avais omis d'indiquer dans la cellule du résultat la formule =titi($B$6:$AJ$8) ou toto..... :eek:
J'ai pu tout au long des ces derniers mois, années... me rendre compte combien vos compétences en VBA étaient affirmées, je crois que vous faites partie des occupants de la maison "excel" qui connaissent parfaitement tous ses coins et recoins! :)
Merci
Gilles
 

pierrejean

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Re

J'ai un doute sur la validité de ma fonction
En effet dans le fichier joint ,l'ajout d'un R en C6 produit une divergence entre mon resultat et celui de ROGER
SI gilles voulait bien jeter un oeil
 

Pièces jointes

  • 2 valeurs cote à cote dans une plage_b.xls
    40 KB · Affichages: 38
  • 2 valeurs cote à cote dans une plage_b.xls
    40 KB · Affichages: 36
  • 2 valeurs cote à cote dans une plage_b.xls
    40 KB · Affichages: 38

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour pierrejean,
J'avais testé des "R" de manière aléatoire dans les différentes cellules des fichiers respectifs des uns et des autres, je n'avais pas trouvé de divergences (je ne les avais pas toutes faites non plus!). Et effectivement, en C6, une erreur apparait (par rapport à mon souhait) dans le fichier de ROGER2327: AJ8, B6 et C6 renseignées par des "R" donne 2 valeurs au lieu de 1 souhaitée!
L'oeil d'un maitre!! Merci pierrejean;)
 

Paritec

XLDnaute Barbatruc
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonsoir à Tous
le fichier modifié pour tenir compte de la Subtilité de comparer la première cellule de la permière ligne avec la dernière cellule de la dernière ligne!!
a+
papou:eek:
 

Pièces jointes

  • Sellig V2.xls
    30.5 KB · Affichages: 47

sellig 29

XLDnaute Occasionnel
Re : Comptabiliser des valeurs identiques cote à cote dans une plage

Bonjour Papou,
Il existe un petit "hic"! S'il n'y a pas de "R" en AJ8 et un "R" en B6 et C6, ton code ne considère pas ces 2 "R" cote à cote comme une valeur.
Ceci dit, ce n'est pas bien grave puisque la formule de CISCO ou le code de pierrejean intègre cette subtilité! Merci pour ton aide.
Cordialement
Gilles
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
187