Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2905 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Bloqué sur une condition logique VB......[Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bloqué sur une condition logique VB......[Résolu]

n°1645794
la tortue ​ninja
Posté le 20-11-2007 à 14:03:59  profilanswer
 

Salut à tous!
je bloque sur une condition logique VBA:
je cherche à tester si le contenu de cellules commence par "Monsieur".
 
Par ex, je veux dénombrer le nombre d'hommes parmi une liste excel où est indiqué "Monsieur X", "madame Y" etc...,
donc je test si le nom est précédé de "Monsieur".
J'ai essayé la condition logique suivante:  If Cells(1,3)= "Monsieur" Then
                                                        nombre_de_Mr = nombre_de_Mr + 1
                                                        Endif
Le pb de cette condition logique, c'est que "Monsieur" est différent de "Monsieur Jean"....
Savez vous s'il est possible de tester uniquement le début de cette chaine de caractère? (sans utiliser de tableau de chaine de caractère)????
 
Merci d'avance :)


Message édité par la tortue ninja le 20-11-2007 à 15:25:33
mood
Publicité
Posté le 20-11-2007 à 14:03:59  profilanswer
 

n°1645834
tegu
Posté le 20-11-2007 à 14:44:21  profilanswer
 

Avec InStr(...) tu peux tester si ta cellule contient une valeur.
Avec Left$(chaine, x) tu peux récupérer les x premiers caractères de ta cellule et les tester par rapport à une valeur.
Tu peux aussi utiliser l'opérateur Like qui accepte le caractère joker *.
Ainsi,

"Monsieur Jean" Like "Monsieur*"

renvoie True (gaffe à la casse des caractères quand même).

n°1645836
eric455
Posté le 20-11-2007 à 14:44:34  profilanswer
 

Bonjour à tous
 
Essaie ce code :
 

Code :
  1. Sub cherche_monsieur()
  2. lenom = "Monsieur"
  3. With Sheets("Feuil1" ).Range("a1:z100" )
  4.     Set c = .Find(lenom, LookIn:=xlValues)
  5.     If Not c Is Nothing Then
  6.         firstAddress = c.Address
  7.         Do
  8.             Set c = .FindNext(c)
  9.             a = a + 1
  10.         Loop While Not c Is Nothing And c.Address <> firstAddress
  11.     End If
  12. End With
  13. End Sub


a = le nombre de "monsieur"
Eric

n°1645890
la tortue ​ninja
Posté le 20-11-2007 à 15:24:06  profilanswer
 

Merci bcp de votre aide!!
J'ai d'abord testé le InStr() et ça marche très bien :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Bloqué sur une condition logique VB......[Résolu]

 

Sujets relatifs
[résolu] [boost] problèmes avec copy_file[Résolu] Créer flux RSS en fonction d'une DB
pb redirection selon une condition[resolu]images non alignées CSS
largeur des DIV sous firefox [ Resolu ][Résolu] Image : haut absolu ?
Type de paramètre dans une fonction [RESOLU][résolu] select avec données uniques
[RESOLU] pb Listbox + condition 
Plus de sujets relatifs à : Bloqué sur une condition logique VB......[Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR