Test conditionnel en VBA

Test conditionnel en VBA - VB/VBA/VBS - Programmation

Marsh Posté le 12-02-2004 à 10:01:51    

Bonjour,  
Voilà mon pb : comment écrire en VBA le test suivant :
de B5 à B8,mes cellules comportent des lettres : A, B ou C.
Si la lettre C est présente dans la plage B5:B8 celà doit me donner C;  
Si la lettre C n'est pas présente, je teste si B éxiste dans ce cas celà me donne B;
Si C et B ne sont pas présente celà doit me donner A.
Merci pour l'aide


---------------
Miguel69
Reply

Marsh Posté le 12-02-2004 à 10:01:51   

Reply

Marsh Posté le 12-02-2004 à 10:34:15    

En VBA ? ou simplement en utilisant les fonctions d'excel ?
 
Dans ce dernier cas la fonction SI permettra de résoudre le problème. L'aide en ligne d'excel te serait utile.

Reply

Marsh Posté le 12-02-2004 à 10:58:56    

Salut Itela,
mon niveau en excel ne me permet pas d'imbriquer autant de SI, alors si tu as une solution ?


---------------
Miguel69
Reply

Marsh Posté le 12-02-2004 à 13:37:48    

salut,
 
voici une solution rapide même si peu élégante. Mais ça marche :
 
 
Sub Test() 'Cherche si une des valeurs est "C" sinon "B" sinon "A"
 
' On peut faire bien plus élégant mais pas le temps !
 
    trouvé = ""
     
    For i = 5 To 8
        If Cells(i, 2) = "C" Then 'Balaye les lignes de 5 à 8 dans la colonne "B"
            [EDIT] valeur = "C" ==> trouvé = "C"
            Exit For 'Inutile de continuer
        End If
    Next i
    If trouvé = "" Then
        For i = 5 To 8
            If Cells(i, 2) = "B" Then
                [EDIT] valeur = "B" ==> trouvé = "B"
                Exit For 'Inutile de continuer
            End If
        Next i
    End If
    If trouvé = "" Then
        For i = 5 To 8
            If Cells(i, 2) = "A" Then
               [EDIT] valeur = "A" ==> trouvé = "A"
                Exit For 'Inutile de continuer
            End If
        Next i
    End If
    Cells.Range("C5" ) = trouvé 'Affiche le résultat dans la cellue "C5" du tableur
End Sub


Message édité par itela le 12-02-2004 à 16:19:39
Reply

Marsh Posté le 12-02-2004 à 15:05:13    

Je te remercie beaucoup, mais celà ne donne aucun résultat.
Ou dois-je mettre le code. Je l'ai placé dans la feuille. Rien alors je l'ai placé dans un module standard. Idem !!


---------------
Miguel69
Reply

Marsh Posté le 12-02-2004 à 16:15:37    

C'est normal : j'ai fait une bourde.
 
Remplace toute les occurences de la variable "valeur" par "trouvé" ; ça devrait mieux le faire.
 
Après tu mets le code où tu veux !
 
A+

Reply

Marsh Posté le 12-02-2004 à 16:40:22    

Eh Bien ça marche et je te remercie encore
A+


---------------
Miguel69
Reply

Marsh Posté le 12-02-2004 à 18:33:39    

De rien !  :)

Reply

Marsh Posté le 11-03-2004 à 11:22:07    

Ne t?embête pas avec une macro pour cela :
 
=SI(NB.SI($B$5:$B$7;"B" )>0;"C";SI(NB.SI($B$5:$B$7;"B" )>0;"B";"A" ))
 
@+

Reply

Marsh Posté le 11-03-2004 à 11:28:20    

Erreur dû à un copie/coller trop hâtif!
 
=SI(NB.SI(B$5:B$8;"C" )>0;"C";SI(NB.SI($B$5:$B$8;"B" )>0;"B";"A" ))
 
Désolé!

Reply

Marsh Posté le 11-03-2004 à 11:28:20   

Reply

Marsh Posté le 15-03-2004 à 08:19:24    

:hello: Merci pour ta réponse
A+


---------------
Miguel69
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed