Donner une valeur sous condition [Résolu]

Signaler
Messages postés
15
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
12 août 2008
-
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
-
Salut tout le monde,
J'aimerais assigner une valeurs (parmis 4 possibles en string) aux cellules de la colonne D en fonction de la valeur string aussi que prennent les cellules de la colonne C. Je ne sais pas trop comment m'y prendre. J'ai commencé à esquisser un début de programme. Dites moi ce que vous en pensez et d'après vous comment je devrais le continuer.
'Macro créée le 08/07/08 par MOI
'Attribution des code plateforme aux centres



Sub code_pt_centre()
    counter = 0
    Range("C3").Select
    C = C3 + counter
    D = D3 + counter



While C <> ""
'BO? utilisé pour renvoyer toutes les cellules ayant BO+1 caractère _
 même principe pour HO?
    if C="BIS" or "BO?" or "CFS" or "CPL" or "HO?" or "LAC" or "LLJ" or "MIM" _
          or "MES" or "MOC" or "POR" or "PAL" or "SME" or "SEB" or "SEI" _
          or "SSC"
         
    then D="BAC"
    End If
      
   
    counter = counter + 1
Wend



End Sub

Comme vous le voyez déjà, j'ai un problème avec mon if. Il me dit que derrière le if il me faut un then alors qu'il est présent et derrière le then qu'il attend un numéro de ligne ou étiquette ou instruction ou fin d'instruction. Je ne sais pas comment faire pour le débogage. Aidez moi svp !!!

Merci bcp !

1 réponse

Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Salut,

1. Tu as mal posté c'est du vba et non du vb6
2. Utilise "Select Case"
Ton code n'est pas très "propre"
Sub code_pt_centre()
    counter = 0
    Range("C3").Select
    C = C3 + counter
    D = D3 + counter

While C <> ""
'BO? utilisé pour renvoyer toutes les cellules ayant BO+1 caractère _
 même principe pour HO?
    if C="BIS" or "BO?" or "CFS" or "CPL" or "HO?" or "LAC" or "LLJ" or "MIM" _
          or "MES" or "MOC" or "POR" or "PAL" or "SME" or "SEB" or "SEI" _
          or "SSC"
         
    then D="BAC"
--> Ton erreur est au niveau de ton then. Il doit etre sur la meme ligne que ton if
      if conditions then
         Traitement1
      else
         Traitement2
      end if
De plus si ta condition ne renvoit qu'une ligne tu peux l'écrire : if condition then résultat
    End If
      
   
    counter = counter + 1
Wend

End Sub

Sinon pour ton programe dans ta boucle utilise le select
   Select case C
         Case "BIS"
            D="BAC"
         Case ..
            |
            |
   End Select

Bon courage

S.L.B.

<hr />