Aide formule VBA

Résolu
gambleway Messages postés 9 Statut Membre -  
gambleway Messages postés 9 Statut Membre -
Bonjour,

Je dois optimiser une macro déja existante. J'ai récupéré deux fragments de code VBA ( je sais que ce n'est pa forcément trés indiqué ) que j'essaie de comprendre.
L'un de vous peut-il m'aider à traduire cette ligne en franÇais correct ?

Dim Number_employees As Byte
Number_employees = 0
While Len(Range("A103").Offset(Number_employees, 0).Value) <> 0
Number_employees = Number_employees + 1
Wend

Dim m As Byte
m = Number_employees
While Range("A103").Offset(m, 0).Value <> "Legend"
Range("A103:G103").Offset(m, 0).Interior.ColorIndex = 0
m = m + 1
Wend

Merci d'avance et bonne journée.

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Le code que tu as pompé est loin d'^tre idéal....

    grossomodo
    Number_employees = 0
    While Len(Range("A103").Offset(Number_employees, 0).Value) <> 0
    Number_employees = Number_employees + 1
    Wend

    Le nombre d'employés est inférieur à 256 (Dim Number_employees As Byte )tant que la longueur du mot est différente de Zéro:
    Ajouter 1 au nombre d'employé

    Le deuxième fait pareil avec le test la celule est différente de " légend"
    mais
    m= ajoute 1 à m (au départ M=nbre d'employés)
    et met le numéro de la couleur à 0 (je vérifie: ca me semble bizarre) --->
    le cellules sont colorées au départ

    Si par exemple tu as 240 employés et plus de 15 "légend" ca plante pour dépassament de capacité ( m déclaré en Byte)

    concluusion: Très mauvais code
     Michel
    0
  2. gambleway Messages postés 9 Statut Membre
     
    Merci pour ton aide rapide une fois de plus.
    Bonne journée à toi
    0