Aide sur Marco, extraction lettre Gauche sur fond couleur

Bonjour à toute la communauté qui n'est pas en vacance^^

Je cherche dans un tableau à extraire Le nombre de cellules dont :

  • La première lettre à Gauche est un S (par exemple)
  • Et dont le fond de la cellule est coloré en Blanc

J'utilise habituellement une Macro, pour extraire le nombre de cellules dont un texte est présent et dont le fond est d'une couleur.

Là j'ai inséré la fonction "Gauche" dans la formulation de ma macro. Et ça ne marche pas. Cela fonctionne comme si "Gauche" n'existait pas.

Et je ne comprend pas pourquoi.

Si quelqu'un à une solution?

Ou une autre macro à me proposer. Je suis preneur

Je vous met en copie la situation concrète

Je vous remercie

17classeur1.xlsm (25.31 Ko)

Bonjour,

effectivement "gauche" n'existe pas en vba (étant donnée que vba c'est en anglais )

utilisez "left"(c'est comme "gauche" rien ne change ^^)

Mmh

Je ne mets pas Gauche à l'intérieur de la programmation de la Macro, je veux dire par là que j'ai récupéré une macro et que dans sa formulation/application je mets "Gauche"

Je ne sais pas programmer en VBA

Donc si possibilité de m'expliquer ce qui coince... Ou comment modifier la macro que j'utilise...

Je te remercie

je peut voir la macro en question ou formule svp ??

C'est celle qui est sur la pièce jointe du classeur

La macro est inclue.


Mais sinon c'est ça:

Option Explicit

Option Compare Text

Function NBTXTCLR(s$, cellule, plage As Range)

Dim cpt%, i%, o

Application.Volatile

cpt = 0

For Each o In plage

If o.Interior.Color = cellule.Interior.Color Then

Debug.Print o

Debug.Print s

Debug.Print InStr(o, s)

If InStr(o, s) > 0 Then

Debug.Print s

cpt = cpt + 1

End If

End If

Next

NBTXTCLR = cpt

End Function

j'ai modifier un peu le code (sous excel 2007 la couleur blanche est : 16777215 a adapter pour votre version)

15classeur1.xlsm (21.98 Ko)

ça n'a pas l'air de marcher...

C'est pas l'identification du fond qui pose problème. C'est vraiment faire en sorte que ce soit bien la première lettre à Gauche qui soit prise en compte. Avec un fond blanc voir autre...

Mais je n'arrive pas à isoler cette première lettre et faire en sorte que le nombre de cases d'une couleur, dont la première lettre est déterminée (S ou M ou tout ce qu'on voudra) ET dont le fond est blanc soit comptabilisées.

ha j'avais mal compris le problème dans ce cas ^^

remplace le

instr(s,o)

par

instr(s,left(o.value,1))

dans le code de mon fichier et le tour est jouer =)


attention au Majuscule et minuscule lors de la comparaison (qui pourrai être corriger avec "ucase" ou "lcase")

Désolé mais je n'y arrive toujours pas.

Tu pourrais me faire un test pour voir comment tu utilise cette formule.

Parce que quand moi je l'applique ça me mets la même chose qu'au tout départ.

C'est à dire que ça ne me prend pas en considération seulement les cellules dont la première lettre est un S et le fond blanc; mais toutes les cellules contenant un S où qu'il soit dans le texte, et dont le fond est blanc...

moi j'ai ce code et sa marche :

Function NBTXTCLR(s As String, plage As Range) As Integer
Application.Volatile
NBTXTCLR = 0
Dim o As Range
For Each o In plage
   If o.Interior.Color = 16777215 Then
         'Debug.Print o
         'Debug.Print s
         'Debug.Print InStr(o, s)
        If InStr(Left(CStr(o.Value), 1), s) > 0 Then
       ' Debug.Print s
         NBTXTCLR = NBTXTCLR + 1
         End If
   End If
Next o
End Function

et pour utiliser il faut :

 =NBTXTCLR("S";O4:O9)  'O4:O9 est ma plage de teste

j'ai appliquer la macros sur la ligne 33

7classeur1.xlsm (22.13 Ko)

Ok autant pour moi, c'est moi qui me suis trompé.

Je ne comparait pas les résultats obtenu avec le bon tableau

Non ben ça marche impec ton truc

Même avec des lettres différentes de "S" donc c'est ce que je voulais au final c'est impec

Je te remercie t'es un boss

de rien =)

Rechercher des sujets similaires à "aide marco extraction lettre gauche fond couleur"