Modifications en masse de formule Excel

Fermé
kloy - 8 déc. 2010 à 13:46
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 8 déc. 2010 à 18:32
Bonjour,

J'ai une usine a gaz sous excel pour une asso sportive qui donne des editions de résultats de rencontres...

en gros j'ai a peu près 400 cellules avec des formules de ce type

=SI(ET(RES!$B12>RES!$B19;RES!$B12<>"");1;0)+
SI(ET(RES!$C12>RES!$C18;RES!$C12<>"");1;0)+
SI(ET(RES!$D12>RES!$D17;RES!$D12<>"");1;0)+
SI(ET(RES!$E12>RES!$E16;RES!$E12<>"");1;0)+
SI(ET(RES!$F12>RES!$F15;RES!$F12<>"");1;0)+
SI(ET(RES!$G12>RES!$G14;RES!$G12<>"");1;0)+
SI(ET(RES!$H12>RES!$H13;RES!$H12<>"");1;0)-H12


pour situer le truc, RES!$B12 et RES!$B19 sont les résultats de la 1er rencontre : ca ressemble à 12 / 18

Mon soucis est qu'aujourd'hui, on me dit que s'il y a forfait ou pénalité, ce ne sera plus un chiffre, mais une lettre F ou P et cela entraine automatiquement une valeur de 0

du coup, pour déterminer les valeurs, j'ai donc penser a la fonction N(), ce qui me donnerait

=SI(ET(N(RES!$B12)>N(RES!$B19);RES!$B12<>"");1;0)+
SI(ET(N(RES!$C12)>N(RES!$C18);RES!$C12<>"");1;0)+
SI(ET(N(RES!$D12)>N(RES!$D17);RES!$D12<>"");1;0)+
SI(ET(N(RES!$E12)>N(RES!$E16);RES!$E12<>"");1;0)+
SI(ET(N(RES!$F12)>N(RES!$F15);RES!$F12<>"");1;0)+
SI(ET(N(RES!$G12)>N(RES!$G14);RES!$G12<>"");1;0)+
SI(ET(N(RES!$H12)>N(RES!$H13);RES!$H12<>"");1;0)-H12

Y'a-t-il un moyen quelconque d'automatiser ce remplacement ?

J'ai testé
De désactiver le calcul automatique et de faire un rechercher/remplacer de

'ET(RES' par 'ET(N(RES'

(je comptais faire ensuite '>RES' par ')>N(RES' et finir par remplacer ';RES' par ');RES'

mais il me met une erreur "Vous avez tape un nombre trop important d'arguments pour cette fonction' lors de la première étape du remplacement....

Je suis sous excel 2002

Merci d'avance

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
8 déc. 2010 à 16:20
Bonjour

Ou se trouve "P"ou "F"? B12, B19 ?
0
Il se trouve potentiellement effectivement dans l'une des cellules de la feuille RES

j'ai testé avec ma deuxième formule et cela me donne satisfaction, il faut juste que je le fasse sur les 399 autres :)

Kloy
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 8/12/2010 à 18:24
Message annulé: erreur
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 8/12/2010 à 18:47
re,
une fonction personnalisée réduisant le boulot. l'architecture doit être similaire: N sur 1 ligne
avec décalage De N lignes et remontée en escalier vers la ligne (N=7 dans ton exemple)

Function compter_points(plage As Range, debut As Range) As Byte  
Application.Volatile  
fin = plage.Count - 1  
col = plage.Column  
lig1 = plage.Row  
Lig2 = debut.Row  

For cptr = 0 To fin  
    If IsNumeric(Cells(lig1, col + cptr)) And IsNumeric(Cells(Lig2 - cptr, col + cptr)) Then  
        somme = somme + (Cells(lig1, col + cptr) > Cells(Lig2 - cptr, col + cptr))  
    End If  
    compter_points = -somme - (Cells(lig1, col + cptr) 
Next  
End Function  

Suivant la disposition de ton usine à gaz il est peut-être possible de faire une macro ==> boulot de saisie tendant vers zéro... :-)

edit 18:45 pris en compte "H12" à la fin
0