Autres Afficher résultat avec boucle VBA

KRUG WOO

XLDnaute Nouveau
Bonjour les amis,
Encore perdu avec l'outil boucle, je cherche à trouver le meilleur moyen rapide pour avoir un Résultat : "Admis" si note d’évaluation (note/100) est >=55.
le problème c'est que je peux pas écrire la formule: If Range("e8").Value >= 55 Then Range("g8").Value = "ADMIS" jusqu'à 250ligne ou 250 employés.
Aussi j'espère que je respecte les chartes :D
Super merci les amis 👍
 

Pièces jointes

  • Evaluation.xlsm
    18.1 KB · Affichages: 3

Jacky67

XLDnaute Barbatruc
Bonjour les amis,
Encore perdu avec l'outil boucle, je cherche à trouver le meilleur moyen rapide pour avoir un Résultat : "Admis" si note d’évaluation (note/100) est >=55.
le problème c'est que je peux pas écrire la formule: If Range("e8").Value >= 55 Then Range("g8").Value = "ADMIS" jusqu'à 250ligne ou 250 employés.
Aussi j'espère que je respecte les chartes :D
Super merci les amis 👍
Bonjour,
Y a t'il quelque chose qui empêche cette formule en G5
VB:
=SI(E5>=55;"Admis";"")
Et recopier vers le bas
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Krug Woo,
un essai en PJ avec une boucle For :
VB:
Sub resultat()
Application.ScreenUpdating = False
For L = 5 To Cells(Cells.Rows.Count, "B").End(xlUp).Row
    If Cells(L, "E") >= 55 Then Cells(L, "G") = "ADMIS"
Next L
End Sub

Il existe d'autres méthode plus rapide, mais plus complexe, au cas où cette méthode se révélerait trop lente.
 

Pièces jointes

  • Evaluation.xlsm
    16.6 KB · Affichages: 2

Jacky67

XLDnaute Barbatruc
Merci Jacky67,
Non, pas de soucis avec les formules, sauf qu'avec VBA c'est mieux en utilisation une boucle, l'enregistrement allant jusqu'à 100000 écritures, les recopier c'est pas évident.
Re..
On écrit la formule une seule fois
On sélectionne la cellule contenant cette formule
On double clique sur le coin inférieur droit jusqu'à obtenir la grosse croix
Et la formule est recopier sur tout le tableau
En vba
VB:
Sub resultat()
    For Each c In Range("E5:e" & Cells(Rows.Count, "e").End(xlUp).Row)
        If c >= 55 Then c.Offset(, 2) = IIf(c.Offset(, -1) = "Homme", "Admis", "Admise")
    Next
End Sub
 

KRUG WOO

XLDnaute Nouveau
Bonjour @KRUG WOO

Edit Bonjour Jacky et Sylvain

Je te propose ce fichier

Tu as le choix entre la formule ou la version VBA avec boucle

Merci de ton retour
Bonjour Phil69970, bonjour Sylvanu,
Merci beaucoup les amis, ça marche à merveille, surtout en rajoutant le vide par "Recalé".
Je demande trop mais si on ajoute le formule exemple: ligne 11 "Recaler" et on ajoute vous devez completer vos points de 55 pour être admis.
Enfin, si c'est possible :D
 

KRUG WOO

XLDnaute Nouveau
Bonjour,
Ouaouuuuu, c'est fort 👍 , ça marche
Merci Phil69970
Bonjour,
@KRUG WOO

Voici la V2 comme demandé et toujours par formule et VBA ;)
Bonsoir Phil69970,
Je ne sais plus si je devrais écrire dans une nouvelle discussion ou nouveau message, en fait c'est en rapport avec ta formule, si je dois utiliser un userform pour la saisie, avec ton boucle je n'arrive plus à cadrer le range et cells 😭 , c'est vraiment la casse têt. J'utilise Range("...........").ListObject.ListRows.Add.Range, mais 0 résultat. J'aimerai continuer avec tes formules si possible
Merci, je demande trop :D
 

Pièces jointes

  • Boucle ou formule V2.xlsm
    23.8 KB · Affichages: 1

Phil69970

XLDnaute Barbatruc
@KRUG WOO

1700842685059.png


De plus , le fichier que tu as mis dans le post #10 ne correspond en rien avec ce bout de code qui concerne des tableaux structurés !!!
J'utilise Range("...........").ListObject.ListRows.Add.Range,

Bonne lecture
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 334
Membres
103 189
dernier inscrit
Bob34000