Optimisation d'une fonction
Fermé
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
-
30 juin 2014 à 10:43
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 1 juil. 2014 à 10:24
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 1 juil. 2014 à 10:24
A voir également:
- Optimisation d'une fonction
- Fonction si et - Guide
- Optimisation pc - Guide
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Optimisation windows 10 - Guide
- Fonction somme excel - Guide
2 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
30 juin 2014 à 14:41
30 juin 2014 à 14:41
Bonjour
avec une macro paramètée- on peut transformer en function si on le préfère
avec une macro paramètée- on peut transformer en function si on le préfère
Option Explicit
Dim critère()
'------
Sub test()
Dim Derlig As Long, T_in
With Sheets(1)
critère = Array("Oui", "Ja")
Derlig = .Columns("A").Find("*", , , , , xlPrevious).Row
T_in = Application.Transpose(Range("A2:A" & Derlig))
compterunmotoudeux T_in
End With
End Sub
'-----
Sub compterunmotoudeux(Tablo)
Dim cptr As Long, nbre As Long
For cptr = 1 To UBound(Tablo)
If UCase(Tablo(cptr)) = UCase(critère(0)) _
Or _
UCase(Tablo(cptr)) = UCase(critère(1)) Then nbre = nbre + 1
Next
MsgBox "nombre total de " & critère(0) & " et de " & critère(1) & " : " & nbre
End Sub
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
28 décembre 2023
7 212
1 juil. 2014 à 00:06
1 juil. 2014 à 00:06
Bonjour à tous,
Si tes celulles contiennent ces mots seuls (pas inclus dans des phrases) tu peux tenter ça :
Ca devrait être rapide.
eric
Si tes celulles contiennent ces mots seuls (pas inclus dans des phrases) tu peux tenter ça :
Public Function CompterCelMot(plageTexte As Range, listeMots As Range) As Long Dim cTexte As Range, cMot As Range For Each cMot In listeMots CompterCelMot = CompterCelMot + Application.CountIf(plageTexte, cMot) Next cMot End Function
Ca devrait être rapide.
eric
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
54
1 juil. 2014 à 10:24
1 juil. 2014 à 10:24
Oui c'est beaucoup mieux :)
Merci beaucoup vos aides.
Ça fait du bien de repasser en mode de calcule Automatique :)
Merci beaucoup vos aides.
Ça fait du bien de repasser en mode de calcule Automatique :)
Modifié par skk201 le 30/06/2014 à 16:56
Est-ce une jolie conversion ? :)
Edit :
Il me dit que critère(0) n'est pas un sub valide O.o (Ligne 18)