Se connecter avec
S'enregistrer | Connectez-vous

possibilité de faure un select case

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Non cette ligne est dans un programme

mais au lieu de faire

  1. if mid(Num,1,6)= 456219 then sortie=12739
  2.  
  3. if mid(Num,1,6)= 456220 then sortie=12740
  4.  
  5. if mid(Num,1,6)= 456222 then sortie=12741
  6.  
  7. 40 autres ligne dans le même style suivent


j'aimerais faire un

  1. select case num
  2.  
  3. case mid(num,1,6) = 45619
  4.  
  5. case etc....
  6.  
  7. end select


Expert Programmation

Tu ne peux avoir que des constantes après Case !
Donc :
  1. Select Case mid(num,1,6)
  2. Case "456219": sortie=12739
  3. Case "456220": sortie=12740
  4. Case "456222": sortie=12741
  5. ' x 40 -3
  6. End Select


En passant, Mid() renvoie une chaîne de caractères (un Variant/String pour les puristes), pas un entier. Donc, Case "456219", pas Case 456219 :o 
Expert Programmation

La ligne 3, c'est pas du VB :o  (euh, c'est juste mid qu'il faut virer ?)
Et ça sert à quoi que je te dise de mettre des guillemets ?

Bon, et ça :
  1. If Mid(num, 1, 6) ) = "123456" Then: Sortie = 654321
  2. ElseIf num = 123456 Then: Sortie = 654321
  3. ElseIf num = 154587 Then: Sortie = 856486
  4. ElseIf ..
  5. End If
Ou encore :
  1. Dim tab_enreg(39) As enreg
  2. Dim i As Integer
  3.  
  4. tab_enreg(0).borne1 = 1: tab_enreg(0).borne2 = 6: tab_enreg(0).entree = 456219: tab_enreg(0).sortie = 12739
  5. tab_enreg(1).borne1 = 1: tab_enreg(1).borne2 = 100: tab_enreg(1).entree = 45622065: tab_enreg(1).sortie = 12740
  6. tab_enreg(2).borne1 = 1: tab_enreg(2).borne2 = 4: tab_enreg(2).entree = 4565: tab_enreg(2).sortie = 12741
  7. ' // x 40 - 3 ...
  8.  
  9. For i = 0 To 39
  10. With tab_enreg(i)
  11. If Mid(Num, .borne1, .borne2) = .entree Then
  12. sortie = .sortie
  13. Exit For
  14. End If
  15. End With
  16. Next

Qu'en penses-tu ?
Expert Programmation

Comme tu veux. :o 

Second code : ceux qui ont connu les tous premiers programmes BASIC des années 80's peuvent se payer un tranche de rigolade en faisant une analogie entre ma proposition et les lignes DATA de l'époque.

Qui qui s'en souvient ?

voila mon code que me fait faire cette jolie erreur

  1. If Mid(num, 1, 6) = "456219" Then: Nom_entites = 12739
  2. ElseIf Mid(num, 1, 6) = "456220" Then: Nom_entites = 12739
  3. ElseIf Mid(num, 1, 6) = "497219" Then: Nom_entites = 12739
  4. ElseIf Mid(num, 1, 6) = "497220" Then: Nom_entites = 12739
  5.  
  6.  
  7. ElseIf Mid(num, 1, 6) = "456256" Then: Nom_entites = 17499
  8. ElseIf Mid(num, 1, 6) = "457256" Then: Nom_entites = 17499
  9.  
  10.  
  11. ElseIf Mid(num, 1, 6) = "455809" Then: Nom_entites = 43799
  12. ElseIf Mid(num, 1, 6) = "455832" Then: Nom_entites = 43799
  13.  
  14.  
  15. ElseIf Mid(num, 1, 6) = "497625" Then: Nom_entites = 41539
  16. ElseIf Mid(num, 1, 6) = "497665" Then: Nom_entites = 41539
  17.  
  18.  
  19. ElseIf Mid(num, 1, 6) = "456164" Then: Nom_entites = 24659
  20. ElseIf Mid(num, 1, 6) = "497364" Then: Nom_entites = 24659
  21.  
  22.  
  23. ElseIf num = "49739930" Then: Nom_entites = 16960
  24. ElseIf num = "49739931" Then: Nom_entites = 16960
  25. ElseIf num = "49739932" Then: Nom_entites = 16960
  26.  
  27.  
  28. ElseIf num(bin, 1, 6) = "497645" Then: Nom_entites = 19139
  29. ElseIf num(bin, 1, 6) = "497985" Then: Nom_entites = 19139
  30. End If
Expert Programmation

Mon pauvre darkspoilt, il faut arrêter d'être logique avec VB. :pfff: 
Ce langage est le pire qui soit. :pfff:  :pfff: 

Et comme ça ?
  1. If Mid(num, 1, 6) = "456219" Then
  2. Nom_entites = 12739
  3. ElseIf Mid(num, 1, 6) = "456220" Then
  4. Nom_entites = 12739
  5. ElseIf Mid(num, 1, 6) = "497219" Then
  6. Nom_entites = 12739
  7. ElseIf Mid(num, 1, 6) = "497220" Then
  8. Nom_entites = 12739
  9. ElseIf Mid(num, 1, 6) = "456256" Then
  10. Nom_entites = 17499
  11. ElseIf Mid(num, 1, 6) = "457256" Then
  12. Nom_entites = 17499
  13. ElseIf Mid(num, 1, 6) = "455809" Then
  14. Nom_entites = 43799
  15. ElseIf Mid(num, 1, 6) = "455832" Then
  16. Nom_entites = 43799
  17. ElseIf Mid(num, 1, 6) = "497625" Then
  18. Nom_entites = 41539
  19. ElseIf Mid(num, 1, 6) = "497665" Then
  20. Nom_entites = 41539
  21. ElseIf Mid(num, 1, 6) = "456164" Then
  22. Nom_entites = 24659
  23. ElseIf Mid(num, 1, 6) = "497364" Then
  24. Nom_entites = 24659
  25. ElseIf num = "49739930" Then
  26. Nom_entites = 16960
  27. ElseIf num = "49739931" Then
  28. Nom_entites = 16960
  29. ElseIf num = "49739932" Then
  30. Nom_entites = 16960
  31. ElseIf num(bin, 1, 6) = "497645" Then
  32. Nom_entites = 19139
  33. ElseIf num(bin, 1, 6) = "497985" Then
  34. Nom_entites = 19139
  35. End If
Expert Programmation

Nan. C'est pas bon. Ca marche, c'est tout.
Ce serait bon si VB n'était pas une merde finie en matière de syntaxe.

(j'trouve plus le bouton pour quitter le mode "vieux con grincheux" :fou:  )
Lassé par la pub ? Créez un compte