Macro qui n'en fait qu'=c3=a0 sa t=c3=aate.

Le
Daniel
Bonjour,

Voilà mon souci,
J'ai tenté d'écrire une macro qui cherche dans les cellules de la
colonne A si Toto est contenu dans le texte ou pas.
S'il est contenu alors en B (même ligne) il s'écrit Masculin sinon c'est
féminin qu'il s'écrit.
Voilà mes 2 tentatives :

Sub Autre()
Dim derLig As Long
Dim c As Range
derLig = ActiveSheet.Range("A" & Cells.Rows.Count).End(xlUp).Row

For Each c In Range("A4:A" & derLig)
If c Like "*MESSIEUR*" Then
c.Offset(0, 1).Value = "MASCULIN"
Else
c.Offset(0, 1).Value = "FEMININ"
End If
Next c
End Sub

Sub Autre2()
Dim derLig As Long
Dim c As Range
derLig = ActiveSheet.Range("A" & Cells.Rows.Count).End(xlUp).Row

For Each c In Range("A4:A" & derLig)
If c.Find(MESSIEUR) Is Nothing Then
Cells(c.Row, 2).Value = "MASCULIN"
Else
Cells(c.Row, 2).Value = "FEMININ"
End If
Next

End Sub

Alors la macro Autre() ne me donne que des "FEMININ" et Autre2() ne me
donne que des "MASCULIN" mais aucune ne fait correctement ce qu'il est
attendu. Grrrhh

Si l'un ou l'une d'entre vous pouvait m'éclairer, ce serait bien aimable.

Petite question supplémentaire : Est-ce que la casse du mot cherché
jouerait sur le résultat ?

Merci d'avance à celui ou celle qui prendra un peu de temps pour mon cas.
Daniel
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ThierryP
Le #26433435
Bonsoir Daniel,
Afin de t'affranchir du problème de la casse (effectivement prise en c ompte), utilise pour la macro Autre :
If ucase(c) Like "*MESSIEUR*"
etc...
Pour la deuxième macro, même chose !
Bonne soirée,
Le jeudi 11 mai 2017 19:25:38 UTC+2, Daniel a écrit :
Bonjour,
Voilà mon souci,
J'ai tenté d'écrire une macro qui cherche dans les cellules de la
colonne A si Toto est contenu dans le texte ou pas.
S'il est contenu alors en B (même ligne) il s'écrit Masculin si non c'est
féminin qu'il s'écrit.
Voilà mes 2 tentatives :
Sub Autre()
Dim derLig As Long
Dim c As Range
derLig = ActiveSheet.Range("A" & Cells.Rows.Count).End(xlUp).Row
For Each c In Range("A4:A" & derLig)
If c Like "*MESSIEUR*" Then
c.Offset(0, 1).Value = "MASCULIN"
Else
c.Offset(0, 1).Value = "FEMININ"
End If
Next c
End Sub
Sub Autre2()
Dim derLig As Long
Dim c As Range
derLig = ActiveSheet.Range("A" & Cells.Rows.Count).End(xlUp).Row
For Each c In Range("A4:A" & derLig)
If c.Find(MESSIEUR) Is Nothing Then
Cells(c.Row, 2).Value = "MASCULIN"
Else
Cells(c.Row, 2).Value = "FEMININ"
End If
Next
End Sub
Alors la macro Autre() ne me donne que des "FEMININ" et Autre2() ne me
donne que des "MASCULIN" mais aucune ne fait correctement ce qu'il est
attendu. Grrrhh
Si l'un ou l'une d'entre vous pouvait m'éclairer, ce serait bien aim able.
Petite question supplémentaire : Est-ce que la casse du mot cherch é
jouerait sur le résultat ?
Merci d'avance à celui ou celle qui prendra un peu de temps pour mon cas.
Daniel
Geo
Le #26433442
Bonjour
Afin de t'affranchir du problème de la casse (effectivement prise en compte),
utilise pour la macro Autre : If ucase(c) Like "*MESSIEUR*"
etc...

C'est sûr qu'on écrit plutôt messieurs ou monsieur.
Pour la deuxième macro, même chose !

... avec des guillemets.
Comme quoi l'option explicit a un intérêt.
JièL
Le #26433446
Hello
Le 12/05/2017 à 07:33, Geo a écrit :
Bonjour
Afin de t'affranchir du problème de la casse (effectivement prise en
compte), utilise pour la macro Autre : If ucase(c) Like "*MESSIEUR*"
etc...


Et si on met Option Compare Text en début de module ça résout pas le pb
de casse ?
C'est sûr qu'on écrit plutôt messieurs ou monsieur.
Pour la deuxième macro, même chose !

... avec des guillemets.
Comme quoi l'option explicit a un intérêt.

C'est carrément une option IN-DIS-PEN-SABLE !
Publicité
Poster une réponse
Anonyme