pouvez vous m'aidez pour la création d'une macro pour cette fonction Excel , je suis débutant
ci joint le ficher ExcelCode:=SOMME(NBCAR(A1) - NBCAR(SUBSTITUE(A1; "pratique"; "")))/NBCAR("pratique")
merci d'avance
Version imprimable
pouvez vous m'aidez pour la création d'une macro pour cette fonction Excel , je suis débutant
ci joint le ficher ExcelCode:=SOMME(NBCAR(A1) - NBCAR(SUBSTITUE(A1; "pratique"; "")))/NBCAR("pratique")
merci d'avance
Bonjour,
que cherches-tu exactement à faire ?
Tu nous donnes une formule et un fichier, mais ce n'est pas assez explicite sans avoir à ouvrir ton fichier.
Un peu d'effort et de détails stp :)
Bonjour
SOMME ne sert à rien dans une opération arithmétique.
Code:
1
2
3 Function NbFoisMot(Cellule As Range, Mot As String) As Integer NbFoisMot = (Len(Cellule.Value) - Len(Replace(UCase(Cellule.Value), UCase(Mot), ""))) / Len(Mot) End Function
merci chris
peux tu intégré ce macros sur le fichier joint et me l'uploader pour moi stp
je ne peux pas le faire tout seul
:D
Re
C'est en forgeant, qu'on devient forgeron.
Tu utilises le raccourci Alt F11 : tu seras dans la fenêtre de l'éditeur VBA.
A gauche tu verras "VBAprojet" suivi du nom de ton classeur.
Tu fais un clic droit sur ce nom : Insertion, Module. Cela créer un module1.
Dans le volet de droite, qui correspond au contenu de ce module1, tu colles le code.
Tu fermes la fenêtre de l'éditeur VBA et tu sauvegardes ton classeur.
La fonction est générique : on peut l'utiliser pour d'autres mots que "pratique" et elle pourrait donc être stockée dans le classeur de macros personnelles ou dans un complément afin d'être utilisable dans tout classeur...
bon ! ce que tu m'a expliqué c'est facile à faire , j'ai essaye de reformuler l'écriture comme ceci , mais ne fonctionne pas
je ne sais pas si me trompe quelque part , désolé je suis un débutant de macroCode:
1
2
3 Function NbFoisMot("G2"As Range, "pratique" As String) As Integer NbFoisMot = (Len("G2".Value) - Len(Replace(UCase("G2".Value), UCase(pratique), ""))) / Len(pratique) End Function
déjà il mets cette écriture en rouge quand je colle sur le module 1:
-------Code:
1
2
3 Function NbFoisMot("G2"As Range, "pratique" As String) As Integer NbFoisMot = (Len("G2".Value) - Len(Replace(UCase("G2".Value), UCase(pratique), ""))) / Len(pratique) End Function
peux-tu vérifier ? stp , merci
Bonjour,
quel dommage de revenir sur un point quasiment 11 mois plus tard :(
Ton passage de parametre est mauvais, essaie avec
Et dans ta cellule resultat tu pourras ecrireCode:
1
2
3 Function NbFoisMot(a As Range, pratique As String) As Integer NbFoisMot = (Len(a.Value) - Len(Replace(UCase(a.Value), UCase(pratique), ""))) / Len(pratique) End Function
Code:=NbFoisMot(G2;"pratique")
bon maint elle n'est pas en rouge et le module est enregsitré
ET LA =NbFoisMot(G2;"pratique") fonctionneCode:
1
2
3 Function NbFoisMot(a As Range, pratique As String) As Integer NbFoisMot = (Len(a.Value) - Len(Replace(UCase(a.Value), UCase(pratique), ""))) / Len(pratique) End Function
comment l'affecter à une macro ?
quand je fait crée une macro sous le nom " NbFoisMot ", il me mets :
Code:
1
2
3 Sub NbFoisMot() End Sub
Bonjour
Je t'avais donné un code qui marche et qu'il n'y avait pas lieu d’interpréter : la correction de Jean-Philippe André revient à ce que j'avais écrit sauf que Mot est plus générique que Pratique.
Le souci c'est que tu ne lis pas les commentaires qui accompagnaient tant mon post que celui de Jean-Philippe André.
C'est une fonction pas une macro : cela s'utilise dans les cellules. Au lieu de mettrecomme tu le faisais dans ton fichier joint il y a un an, tu écris le mot à compter dans le cellule K1 (par exemple), pratique dans ton exemple, et tu metsCode:=SOMME(NBCAR(A1) - NBCAR(SUBSTITUE(A1; "pratique"; "")))/NBCAR("pratique")
dans les cellules de la colonne B.Code:=NbFoisMot(A1;$K$1)
Si tu veux compter le mot Nul tu écrit Nul en K1 et cela comptera automatiquement le nombre de mots Nul...