Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2007, 20h44   #1
Membre à l'essai
 
Inscription : août 2007
Messages : 79
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2007
Messages : 79
Points : 22
Points : 22
Par défaut case sur tout ou partie d'une chaine

Bonjour,

Je travaille avec les codes NAF (3 chiffres + 1 lettre) que j'ai besoin de trier par secteur d'activité.

Je voudrais faire quelquechose du genre :
Code :
1
2
3
4
5
6
7
8
 
select case code_naf
    case 01*                ' pour prendre tous ceux qui débutent par 01
        ........
    case 0520A to 0522B
        .............
     else case
end select
Le problème c'est que 01* ou "01*" ne passent pas.

Emmanuel
manu971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 22h01   #2
Membre à l'essai
 
Inscription : août 2007
Messages : 79
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2007
Messages : 79
Points : 22
Points : 22
Une solution consiste à faire des "case" imbriqués en commençant par tester la chaine sur les 2 premiers caractères (left(var,2)), puis sur les 3 premiers (left(var,3)), puis sur la chaine entière (var).

Mais si quelqu'un a plus simple, je suis preneur.

Emmanuel
manu971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 22h17   #3
Modérateur
 
Avatar de mout1234
 
Inscription : novembre 2006
Messages : 2 200
Détails du profil
Informations personnelles :
Âge : 43
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 2 200
Points : 2 699
Points : 2 699
TU as essayé avec quelque chose du genre?
Code :
Case "01000" To "01ZZZ"
__________________
............................................................................................

Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.


Les FAQs les tutos Les Sources Access Profitez de ces mines d'or...

Postez dans le bon sous forum et mentionnez la version
mout1234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2007, 12h12   #4
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Une autre solution :

tricher un peu avec le select case :

Code :
1
2
3
4
5
6
7
Dim code_naf As String
code_naf = "0523Z"
Select Case True
    Case code_naf Like "01*": MsgBox "Cas 1"
    Case code_naf >= "0520A" And code_naf <= "0522B": MsgBox "Cas 2"
    Case Else: MsgBox "Cas 3"
End Select
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2007, 17h38   #5
Modérateur
 
Avatar de mout1234
 
Inscription : novembre 2006
Messages : 2 200
Détails du profil
Informations personnelles :
Âge : 43
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 2 200
Points : 2 699
Points : 2 699
Citation:
Envoyé par Tofalu Voir le message
Une autre solution :

tricher un peu avec le select case :

Code :
1
2
3
4
5
6
7
Dim code_naf As String
code_naf = "0523Z"
Select Case True
    Case code_naf Like "01*": MsgBox "Cas 1"
    Case code_naf >= "0520A" And code_naf <= "0522B": MsgBox "Cas 2"
    Case Else: MsgBox "Cas 3"
End Select
Sympa l'astuce
Mais dans ce cas, autant faire des if ...elseif ... non ?
__________________
............................................................................................

Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.


Les FAQs les tutos Les Sources Access Profitez de ces mines d'or...

Postez dans le bon sous forum et mentionnez la version
mout1234 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2007, 19h55   #6
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Ben tu evites les imbrications, la maintenance et la lisibilité sont facilitées
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2007, 15h49   #7
Membre à l'essai
 
Inscription : août 2007
Messages : 79
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2007
Messages : 79
Points : 22
Points : 22
C'est tout à fait ce qu'il me fallait, merci.

Emmanuel
manu971 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web