Compteur longeur chaine de cellule identique

Bonjour a tout le monde du forum,

Je n'arrive plus a avancer dans ma recherche, alors si qqn peut m'aider ..........

Alors que je vous explique

Je n'arrive pas a trouver une manière efficace pour réaliser ma Macro qui me permettrait de compter pour chaque ligne le max de la longeur 'p' et le min de la longeur 'vide' ( je n'arrive pas en balayant la ligne a savoir si les cellules contenant "p" sont coller ou pas)

ainsi on aurra le temps max de présence et le temps min de libre pr chaque personne et de sa présence sur un jour par "1" et si aucun "p" dans le jour mettre "0" dans les dernieres colonnes.

Merci a vs !!!!

Je vous mets un doc qui récapitule ( il y a 400 lignes ds le fichier original)

si c'est pas clair ou des questions dites moi.

Bonne journée

16compteurjour.zip (7.61 Ko)

Bonjour

Je ne peux pas vous fournir une macro, mais ces formules-ci matricielles (confirmez avec CTRL+MAJ+ENTRÉE, non seulement ENTRÉE) vous donneront ce dont vous avez besoin :

Pour Compteur-min-longeur-vide, dans BO7 et copiez vers le bas :

=MIN(SI(FREQUENCE(SI($E7:$BN7="";COLONNE($E7:$BN7));SI($E7:$BN7<>"";COLONNE($E7:$BN7)))<>0;FREQUENCE(SI($E7:$BN7="";COLONNE($E7:$BN7));SI($E7:$BN7<>"";COLONNE($E7:$BN7)))))

Pour compteur max longeur p, dans BP7 et copiez vers le bas :

=MAX(FREQUENCE(SI($E7:$BN7="P";COLONNE($E7:$BN7));SI($E7:$BN7="";COLONNE($E7:$BN7))))

Cordialement

BonjourXOR,

Tes formules donnent exactement le résultat attendu.

Ayant toujours pas trouvé comment faire dans ma macro pour calculer la longueur de cellule identique collé sur une ligne ,et ainsi avoir la valeur des min ds une variable et les max dans une autre.

Donc j'utilise ta méthodes en rajoutant 2 colonnes et récupère la valeurs de chacune dans ma macros, car a l'origine je n'ai pas les colonnes que j'ai rajouter a la fin dans le doc transféré.

Merci encore pour ta technique en formules matricielles.

Cdt,

Je vous en prie et bonne journée

Peux tu me dire XOR comment dans ta formule je peux rajouter la condition cellule = "P" ou " A"

( que si la cellule contient un "A" il fait comme si elle contient "P" du genre....( la PPPPP=5 et que APPAP=5 aussi)

pr:

=MAX(FREQUENCE(SI($E7:$BN7="P";COLONNE($E7:$BN7));SI($E7:$BN7="";COLONNE($E7:$BN7))))

merci par avance,

Re-bonjour!

S’il ne s’agit que de compter une lettre quelconque, alors ça suffit écrire :

=MAX(FREQUENCE(SI($E7:$BN7<>"";COLONNE($E7:$BN7));SI($E7:$BN7="";COLONNE($E7:$BN7))))

Si non (vous envisagez peut-être d’autres conditions différents pour chaque lettre), alors :

=MAX(FREQUENCE(SI(($E7:$BN7="P")+($E7:$BN7="A");COLONNE($E7:$BN7));SI($E7:$BN7="";COLONNE($E7:$BN7))))

Cordialement

Merci XOR.

B journée

Bonjour a tous, ( et a XOR bien sur )

Il me reste juste une dernière formule que je n'arrive pas a fabriqué en manipulant celle données précedemment.

J'ai expliqué ce que j'aimerais qu'elle calcule ds le doc partagé.

en résumé

Il s'agit de calculer une longeur maximum de cellule a la suite non vide mais en prenant que les cellules "p" comme point de démarage de décompte et arréter que si cellule vide ..

ex/ dans le doc

17compteurjourap.zip (7.38 Ko)

Bonjour,

Proposition de fonction personnalisée en vba à mettre dans un module standard (Alt+F11 pour ouvrir VBE).

Tant que j'y étais j'ai intégré les 2 autres fonctions dedans.

Syntaxe :

=compter($E7:$AZ7;"paMax")

(ou "pMax" ou "vMin")

Par contre pour le nombre pMax je ne trouve pas pareil sur les 2 dernières lignes. Il me manque qcq chose sur la logique de comptage.

eric

10classeur2.zip (12.05 Ko)

Salut!

Pas aussi élégant cette fois (!), mais dans la cellule BC7 et à copier vers le bas:

=MAX(SIERREUR((GRANDE.VALEUR(GRANDE.VALEUR(SI(ESTVIDE($E7:$AZ7);(COLONNE($E7:$AZ7)-COLONNE($E7)));LIGNE(INDIRECT("1:"&SOMME(--ESTVIDE($E7:$AZ7)))));EQUIV(PETITE.VALEUR(SI($E7:$AZ7="P";COLONNE($E7:$AZ7)-COLONNE($E7));LIGNE(INDIRECT("1:"&NB.SI($E7:$AZ7;"P"))));GRANDE.VALEUR(SI(ESTVIDE($E7:$AZ7);(COLONNE($E7:$AZ7)-COLONNE($E7)));LIGNE(INDIRECT("1:"&SOMME(--ESTVIDE($E7:$AZ7)))));-1)))-PETITE.VALEUR(SI($E7:$AZ7="P";COLONNE($E7:$AZ7)-COLONNE($E7));LIGNE(INDIRECT("1:"&NB.SI($E7:$AZ7;"P"))));""))

Cordialement

Merci eriiic et Xor,

Oui eriiic j'ai vu la divergence sur les dernieres lignes.

J'ai compris vos réponse et j'ai pu enfin terminer ce que je voulais grace en partie à votre aide,

alors merci encore

Bonne journée

Rechercher des sujets similaires à "compteur longeur chaine identique"