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

Bloqué sur une condition logique VB......[Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 20-11-2007 à 14:03:59    

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
Reply

Marsh Posté le 20-11-2007 à 14:03:59   

Reply

Marsh Posté le 20-11-2007 à 14:44:21    

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).

Reply

Marsh Posté le 20-11-2007 à 14:44:34    

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

Reply

Marsh Posté le 20-11-2007 à 15:24:06    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed