IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création macros excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut Création macros excel
    pouvez vous m'aidez pour la création d'une macro pour cette fonction Excel , je suis débutant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(NBCAR(A1) - NBCAR(SUBSTITUE(A1; "pratique"; "")))/NBCAR("pratique")
    ci joint le ficher Excel

    merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    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
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 584
    Par défaut
    Bonjour

    SOMME ne sert à rien dans une opération arithmétique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    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

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 584
    Par défaut
    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...

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    bon ! ce que tu m'a expliqué c'est facile à faire , j'ai essaye de reformuler l'écriture comme ceci , mais ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    je ne sais pas si me trompe quelque part , désolé je suis un débutant de macro
    déjà il mets cette écriture en rouge quand je colle sur le module 1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    Bonjour,

    quel dommage de revenir sur un point quasiment 11 mois plus tard

    Ton passage de parametre est mauvais, essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Et dans ta cellule resultat tu pourras ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NbFoisMot(G2;"pratique")
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2011
    Messages : 17
    Par défaut
    bon maint elle n'est pas en rouge et le module est enregsitré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    ET LA =NbFoisMot(G2;"pratique") fonctionne

    comment l'affecter à une macro ?
    quand je fait crée une macro sous le nom " NbFoisMot ", il me mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub NbFoisMot()
     
    End Sub

  9. #9
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 584
    Par défaut
    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 mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(NBCAR(A1) - NBCAR(SUBSTITUE(A1; "pratique"; "")))/NBCAR("pratique")
    comme 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 mets dans les cellules de la colonne B.

    Si tu veux compter le mot Nul tu écrit Nul en K1 et cela comptera automatiquement le nombre de mots Nul...

Discussions similaires

  1. création macro excel
    Par alejoo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/05/2014, 10h39
  2. création d'un graphe via macro excel
    Par anaylane dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 02/04/2010, 09h08
  3. création d'une macro excel compliquée
    Par V i n c e n t dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 31/03/2009, 15h15
  4. Macro Excel VBA : création automatique de 140 graphes/graphiques
    Par techneric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/02/2007, 11h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo