XL 2019 Chercher des mots sauf ..

Fipat

XLDnaute Occasionnel
Bonjour,

Je recherche à faire une recherche Vba mais je n'y parvient pas.
Par exemple dans la plage A1:M50
Je voudrais donc compter tous les mots présent sauf Toto, TicTac et Lulu.
Merci pour votre aide.
 
Solution
Tu peux tout mettre sur 1 ligne une ligne et éviter les variables intermédiaires, mais si ça te parait plus clair ainsi laisse donc.

Tu pourrais aussi faire :
VB:
-SOMMEPROD(NB.SI(A1:M50;{"toto";"tactac";"lulu"}))
pas sûr que tu sois gagnant en consommation de ressource mais comme la plage est petite ça ne se sentira pas.

Un peu confus mais si j'ai bien compris, oui, c'est comme ça qu'il faut faire.
Ou bien tu peux tenter une union() de plages, ou tu nommes ta plage faite en 2 sélections et tu utilises le nom, mais pas sur que nb.si() aime ça.
eric

Fipat

XLDnaute Occasionnel
Merci pour cette réponse qui m'a bien aiguillé :)
Cela donne :
VB:
Sub Trouver()
Dim R1 As Integer
Dim R2 As Integer
Dim R3 As Integer
Dim R4 As Integer
Dim Rfinal As Integer
Dim Plage As Range

Set Plage = Range("A1:M50")
R1 = WorksheetFunction.CountA(Range("A1:M50"))
R2 = WorksheetFunction.CountIf(Range("A1:M50"), "Toto")
R3 = WorksheetFunction.CountIf(Range("A1:M50"), "TicTac")
R4 = WorksheetFunction.CountIf(Range("A1:M50"), "Lulu")
Rfinal = R1 - R2 - R3 - R4
MsgBox Rfinal
End Sub

Peux-t'on simplifier ?
Je complique ma demande si je veux faire ma recherche à compter non pas de A1 mais par exemple D1.
Suis-je obliger de faire un CountA de D1 à M1 et refaire un autre CountA de A2 à M50 et les additionner ?
Merci.
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Tu peux tout mettre sur 1 ligne une ligne et éviter les variables intermédiaires, mais si ça te parait plus clair ainsi laisse donc.

Tu pourrais aussi faire :
VB:
-SOMMEPROD(NB.SI(A1:M50;{"toto";"tactac";"lulu"}))
pas sûr que tu sois gagnant en consommation de ressource mais comme la plage est petite ça ne se sentira pas.

Un peu confus mais si j'ai bien compris, oui, c'est comme ça qu'il faut faire.
Ou bien tu peux tenter une union() de plages, ou tu nommes ta plage faite en 2 sélections et tu utilises le nom, mais pas sur que nb.si() aime ça.
eric
 

Discussions similaires

Réponses
6
Affichages
256