FORUM Tom's Hardware » Programmation » VB / VBA / VBS » possibilité de faure un select case
 

possibilité de faure un select case

Il y a 164 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : possibilité de faure un select case
 
Plus d'informations

Bonjour j'ai un code kom cela

Code :
  1. if mid(Num,1,6)= 456219 then sortie=12739



et je voudrais utilise un select case car j'en ai 40 kom ca

si quelqu'un peut me dire si c possible si oui comment

Merci d'avance

Plus d'informations

peux tu explicité ta demande ?
tu voudrais copier cette formula ou repeter la formule ?

si tu veux répéter la formule, tu la met dans un programme a part et ensuite tu rappel ce programe quand tu en a besoin...


---------------
akela

Un sourire ne coûte rien et produit beaucoup.
Plus d'informations

Non cette ligne est dans un programme

mais au lieu de faire

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



j'aimerais faire un

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



Plus d'informations

et pourquoi pas avec un for :

Code :
  1. dim i as integer
  2. for i = 0 to 39
  3.   if mid(Num,1,6)= 456219+i then sortie=12739+i
  4. Next


comme cela, il repete la même opération 40 fois....


Message édité par loic_akela le 28-11-2007 à 11:50:55

---------------
akela

Un sourire ne coûte rien et produit beaucoup.
Plus d'informations

non mais les nombres ne se suivent pas

zeb
Profil : Modérateur libre

Tu ne peux avoir que des constantes après Case !
Donc :

Code :
  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


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

C'est plutot un truc dans ce style la que j'aurais, donc tout mélangé

Code :
  1. if mid(Num,1,6)= 456219 then sortie=12739
  2. if mid Num= 45622065 then sortie=12740
  3. if mid(Num,1,4)= 4565 then sortie=12741



vaut mieux ke je reste avec mes if

zeb
Profil : Modérateur libre

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 :

Code :
  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 :

Code :
  1. Dim tab_enreg(39) As enreg
  2. Dim i As Integer
  3. tab_enreg(0).borne1 = 1: tab_enreg(0).borne2 = 6:  tab_enreg(0).entree = 456219:  tab_enreg(0).sortie = 12739
  4. tab_enreg(1).borne1 = 1: tab_enreg(1).borne2 = 100: tab_enreg(1).entree = 45622065: tab_enreg(1).sortie = 12740
  5. tab_enreg(2).borne1 = 1: tab_enreg(2).borne2 = 4:  tab_enreg(2).entree = 4565:    tab_enreg(2).sortie = 12741
  6. ' // x 40 - 3 ...
  7. For i = 0 To 39
  8.     With tab_enreg(i)
  9.         If Mid(Num, .borne1, .borne2) = .entree Then
  10.             sortie = .sortie
  11.             Exit For
  12.         End If
  13.     End With
  14. Next


Qu'en penses-tu ?


Message édité par zeb le 28-11-2007 à 17:47:32

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

je prendsl a premier la deuxième me conviens pas

zeb
Profil : Modérateur libre

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 ?


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

j'ai fais ton premier code il me met erreur de compilation else sans if

zeb
Profil : Modérateur libre

ElseIf n'est pas Else If :o


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

j'ai écris exactement kom tu me l'a indiqué donc voila

zeb
Profil : Modérateur libre

... :whistle: ... regarde mieux ... :whistle: ...


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

voila mon code que me fait faire cette jolie erreur

Code :
  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.     ElseIf Mid(num, 1, 6) = "456256" Then: Nom_entites = 17499
  6.     ElseIf Mid(num, 1, 6) = "457256" Then: Nom_entites = 17499
  7.    
  8.     ElseIf Mid(num, 1, 6) = "455809" Then: Nom_entites = 43799
  9.     ElseIf Mid(num, 1, 6) = "455832" Then: Nom_entites = 43799
  10.    
  11.     ElseIf Mid(num, 1, 6) = "497625" Then: Nom_entites = 41539
  12.     ElseIf Mid(num, 1, 6) = "497665" Then: Nom_entites = 41539
  13.    
  14.     ElseIf Mid(num, 1, 6) = "456164" Then: Nom_entites = 24659
  15.     ElseIf Mid(num, 1, 6) = "497364" Then: Nom_entites = 24659
  16.     ElseIf num = "49739930" Then: Nom_entites = 16960
  17.     ElseIf num = "49739931" Then: Nom_entites = 16960
  18.     ElseIf num = "49739932" Then: Nom_entites = 16960
  19.    
  20.     ElseIf num(bin, 1, 6) = "497645" Then: Nom_entites = 19139
  21.     ElseIf num(bin, 1, 6) = "497985" Then: Nom_entites = 19139
  22.     End If

zeb
Profil : Modérateur libre

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 ?

Code :
  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


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations
n°36856
29-11-2007 à 10:36:48