Problème avec ma fonction Left

Tempio

XLDnaute Occasionnel
Salut à tous, j'ai un souci avec la fonction Left (qui me renvoie les 1er caractères à gauche d'une chaine). En fait, je fais la comparaison avec un texte ayant des espaces.

Par exple j'aimerais avoir les initiales "DG" de la chaine "DG / CA / MED". Pouriez vous m'aider s'il vous plait ? Merci d'avance.
 

Tempio

XLDnaute Occasionnel
Re : Problème avec ma fonction Left

Salut, je viens de tester la solution de Si....qui va dans le même sens que le script que j'ai déjà seulement j'ai un petit souci : j'ai oublié de vous dire que ma plage de donnée :
Dim pl As Range 'déclare la variable pl (PLage)
Set pl = Range("B8:B" & Range("B65536").End(xlUp).Row) 'définit la plage pl

ne se trouvait pas sur la même feuille que les cellules où je veux afficher les résultats et je pense que c'est ça le problème en ce moment (parce que rien ne s'affiche lorsque je compile).
 

Si...

XLDnaute Barbatruc
Re : Problème avec ma fonction Left

Re

un petite modification dans laquelle il faut le nom des onglets à la place de où se trouvent ...
Code:
Sub Macro1()
    Dim pl As Range
    'définit la plage pl de la feuille : où se trouvent les données
    With Sheets("où se trouvent les données")
        Set pl = .Range("B8:B" & .Cells(Rows.Count, "B").End(xlUp).Row)
    End With
    'cumule si ... dans la feuille : où se trouvent les réponses
    With Sheets("où se trouvent les réponses")
        .[D9] = Application.CountIf(pl, "*DG" & "*")
        .[H9] = Application.CountIf(pl, "*CA" & "*")
    End With
End Sub

Attention : ne peut oublier les . !
 

Tempio

XLDnaute Occasionnel
Re : Problème avec ma fonction Left

Merci, je vais tester ce code. Mais j'aurais encore une petite préocupation : est il possible de faire une requette multi-critères avec : Application.CountIf(pl, "*DG" & "*") ? Comme par exemple :

If Application.CountIf(plOld, "*DG" & "*") And z2.Offset(0, 6) = "CDD" Then compteur = compteur + 1

Parce que j'aimerais pouvoir compter les personnes appartenant à l'entité "DG" mais qui sont uniquement en CDD par exemple.
 

Tempio

XLDnaute Occasionnel
Re : Problème avec ma fonction Left

Salut, j'ai pu trouver une parade qui passe nickel : Application.CountIf(z2.Offset(0, 21), "*DG" & "*")
Mais j'ai toujours une question : Dans cette requête, il me compte les personnes dont les initiales "DG" font parti de la chaine de caractère "DG / CA / MED" et même pour ceux ayant "DGA / CA / MED". Alors que DGA n'est pas la même chose que "DG". Comment faire en sorte qu'il ne prenne pas en compte les "DGA" mais uniquement les "DG" ?
 

Si...

XLDnaute Barbatruc
Re : Problème avec ma fonction Left

Re

... DGA n'est pas la même chose que "DG". Comment faire en sorte qu'il ne prenne pas en compte les "DGA" mais uniquement les "DG" ?

essaie de compléter la ligne ainsi :
[D9] = Application.CountIf(pl, "*DG" & "*") - Application.CountIf(pl, "*DGA" & "*")

bien entendu, adapte les variables comme tu l'as déjà fait !
 

Tempio

XLDnaute Occasionnel
Re : Problème avec ma fonction Left

Salut Si..., j'y ai pensé mais je me demandais justement: Cela me donnera
If [D9]>0 then compteurDG = compteurDG + 1
else compteurDGA = compteurDGA + 1.

Pour distinguer les le nombre de personnes appartenant à "DG" et ceux de "DGA".
 

Tempio

XLDnaute Occasionnel
Re : Problème avec ma fonction Left

Salut à tous, pour l'instant j'avance tant bien que mal dans le projet et j'ai pu résoudre mon problème en modifiant : Application.CountIf(z2.Offset(0, 21), "*DG" & "*") en ceci : Application.CountIf(z2.Offset(0, 21), "*DG " & "*") (créant l'espace) pour distinguer "DG" de "DGA". il y aura certainement d'autres soucis en cours de route et donc je ne ferme pas le topic et j'espère également que vous restez connectés. Merci encore pour tout les gars A+.
 

Discussions similaires

Statistiques des forums

Discussions
312 339
Messages
2 087 401
Membres
103 537
dernier inscrit
alisafred974