Function If avec Exit

Bonjour,

J'explique mon problème :)

Je voudrais faire une fonction en VBA, ou par exemple en A1 j'ai un résultat qui peut etre soit un code à 6 chiffres soit 0. Si j'ai un code à 6 chiffre ou tout simplement, pas zero, je voudrais quitter ma fonction mais si j'ai 0 en A1, je voudrais incrémenter une case de 1, par exemple B1.

J'ai pas forcement les compétences sur la syntaxe en VBA, je sais que ca doit paraitre simple pour certains comme fonction mais je galère à l'écrire donc si quelqu'un peut m'aider ça serait magnifique :)

Un fichier, GomJu, un fichier !
Si tu as une idée derrière la tête, tu dois pouvoir l'illustrer sur un fichier !


A+

Pardon :)

En gros c'est le meme fichier que sur lequel tu as travaillé déjà mais avec une solution plus à ma porté on va dire :)

En gros en I31 je recupére un code qui est dans l'onglet HSV data sauf que je récupére à chaque fois la valeur correspondante de la case supérieure à D31. Or des fois je n'ai pas de code dans la case supérieur donc j'aimerai incrémenté de 1 D31 jusqu'à que j'obtienne un code à chaque fois :)

Et si j'ai un code bah je quitte la fonction.

Voila je sais pas si j'ai été très claire, je pense que tu comprendras vu qye tu m'as déjà aidé sur ce fichier :)

4boms-b.xlsm (234.28 Ko)

Remplace D31 par 40 par exemple pour comprendre mon propos :)

Salut GomJu,

pour arriver à ce résultat, tu dois parcourir toute la colonne de valeurs disponibles en 'HSV Data' en testant à la fois :
- si la longueur est égale ou supérieure à la longueur recherchée ;
- ET si un code existe pour cette longueur ;
- si la longueur en HSV correspond au critère ET que son code existe, alors seulement on sort de la boucle : Exit For ;
- sinon, on boucle sur la valeur suivante.

For y = 1 To Fin_de_colonne
    If HSV_Lg >= O1_Lg And HSV_Code <> "" Then
        Rep_O1_Code = HSV_Code
        Rep_O1_Lg = HSV_Lg
        Exit For
    End If
Next
For y = rHSV_T.Row + 2 To sWk.Range(fctCol(rHSV_T.Column) & Rows.Count).End(xlUp).Row
    If CInt(sWk.Cells(y, rHSV_T.Column)) >= CInt(.Cells(x, rCel.Column + 1)) And sWk.Cells(y, rHSV_M.Column) <> "" Then _
        iOK = 1: _
        .Cells(x, rCel.Column).Offset(0, 3) = sWk.Cells(y, rHSV_M.Column): _
        .Cells(x, rCel.Column).Offset(0, 4) = sWk.Cells(y, rHSV_T.Column): _
        Exit For
Next

C'est cette partie du fichier de tout à l'heure qui fait ce boulot.


A+

Rechercher des sujets similaires à "function exit"