Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 25/08/2011, 15h54   #1
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
Par défaut Comparer 2 string

Bonjour,

Le test ci dessous ne fonctionne pas et je ne vois pas mon erreur.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
    For i = 1 To LvwDétail.ListItems.Count
    vTemp = LvwDétail.ListItems(i).ListSubItems(6)
        Select Case vTemp
            Case InStr("MO", vTemp) > 0
                TxtPrMo.Text = Val(TxtPrMo.Text) + ...            
            Case InStr("SOUS TRAITANCE", vTemp) > 0
                TxtPrSousTraitance.Text = Val(TxtPrSousTraitance.Text) + ...
            Case InStr("TRANSPORT", vTemp) > 0
                TxtPrTransport.Text = Val(TxtPrTransport.Text) + ...            
            Case Else
                TxtPrLivre.Text = Val(TxtPrLivre.Text) + ...      
        End Select
    Next i
Que vTemp soit chargée avec les valeurs "MO", "SOUS TRAITANCE", "TRANSPORT" ou mes autres familles tout est traité dans le Case Else

Merci de votre aide
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 16h25   #2
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
bjr,

ton code teste si vtemp est égal à toute l'instruction :
ce qui équivaut à comparer vtemp à un booléen (Vrai ou Faux) résultat du test de supériorité

case ne peut être utilisé pour de tels tests (on ne peut pas utiliser "case is like" par exemple)

donc il reste l'utilisation de if ... elsif .. elsif ...else ...endif
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 16h28   #3
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
re

Complément : on peut en fait garder un code similaire mais c'est tordu :
Il suffit de mettre :
et le code passera dans le premier test qui est Vrai

pas forcément facile à relire par rapport à une utilisation de else
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 17h43   #4
Nouveau Membre du Club
 
Homme Daniel CARROUE
Retraité actif passionné
Inscription : janvier 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Daniel CARROUE
Localisation : France

Informations professionnelles :
Activité : Retraité actif passionné

Informations forums :
Inscription : janvier 2011
Messages : 75
Points : 31
Points : 31
Par défaut Honte sur moi !

Re,

J'avais déjà utilisé cette méthode et c'est seulement maintenant que je me rends compte de mon erreur ! Instr est totalement inutile ici, Il suffisait d'écrire :
Code :
1
2
3
4
5
6
7
vTemp = LvwDétail.ListItems(i).ListSubItems(6)
        Select Case vTemp
            Case "MO"
            Case "SOUS TRAITANCE"
            Case "TRANSPORT"
            Case Else
         End Select
Select Case est bien plus pratique que IF... dans certains cas.
Merci quand même à ceux qui se sont dévoués.
Cordialement
Daniel
danisoaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 21h08   #5
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
Citation:
Envoyé par danisoaz Voir le message
Instr est totalement inutile ici
effectivement pour tester une égalité c'était plutôt compliqué!
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 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 02h54.


 
 
 
 
Partenaires

Hébergement Web